9.2
general documentation
cs_equation_param.h
Go to the documentation of this file.
1#ifndef CS_EQUATION_PARAM_H
2#define CS_EQUATION_PARAM_H
3
4/*============================================================================
5 * Functions related to the structure cs_equation_param_t storing the settings
6 * related to an equation.
7 *============================================================================*/
8
9/*
10 This file is part of code_saturne, a general-purpose CFD tool.
11
12 Copyright (C) 1998-2026 EDF S.A.
13
14 This program is free software; you can redistribute it and/or modify it under
15 the terms of the GNU General Public License as published by the Free Software
16 Foundation; either version 2 of the License, or (at your option) any later
17 version.
18
19 This program is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
21 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
22 details.
23
24 You should have received a copy of the GNU General Public License along with
25 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
26 Street, Fifth Floor, Boston, MA 02110-1301, USA.
27*/
28
29/*----------------------------------------------------------------------------
30 * Local headers
31 *----------------------------------------------------------------------------*/
32
34#include "alge/cs_param_sles.h"
38#include "cdo/cs_enforcement.h"
39#include "cdo/cs_hodge.h"
40#include "cdo/cs_iter_algo.h"
41#include "cdo/cs_param_cdo.h"
42#include "cdo/cs_property.h"
43#include "cdo/cs_xdef.h"
44
45/*============================================================================
46 * Macro definitions
47 *============================================================================*/
48
95#define CS_EQUATION_LOCKED (1 << 0) /* 1 */
96#define CS_EQUATION_UNSTEADY (1 << 1) /* 2 */
97#define CS_EQUATION_CONVECTION (1 << 2) /* 4 */
98#define CS_EQUATION_DIFFUSION (1 << 3) /* 8 */
99#define CS_EQUATION_CURLCURL (1 << 4) /* 16 */
100#define CS_EQUATION_GRADDIV (1 << 5) /* 32 */
101#define CS_EQUATION_REACTION (1 << 6) /* 64 */
102#define CS_EQUATION_FORCE_VALUES (1 << 7) /* 128 */
103#define CS_EQUATION_INSIDE_SYSTEM (1 << 8) /* 256 */
104#define CS_EQUATION_BUILD_HOOK (1 << 9) /* 512 */
105#define CS_EQUATION_USER_TRIGGERED (1 << 10) /* 1024 */
106
130#define CS_EQUATION_POST_BALANCE (1 << 0) /* 1 */
131#define CS_EQUATION_POST_PECLET (1 << 1) /* 2 */
132#define CS_EQUATION_POST_UPWIND_COEF (1 << 2) /* 4 */
133#define CS_EQUATION_POST_NORMAL_FLUX (1 << 3) /* 8 */
134
137/*============================================================================
138 * Type definitions
139 *============================================================================*/
140
169typedef enum {
170
178
180
182
183/*----------------------------------------------------------------------------*/
184
190typedef struct {
191
199 int dim;
207
214
221
222 /* Numerical settings */
223
232
492 int iconv;
493 int istat;
496 int idiff;
512 double theta;
513 double blencv;
514 double blend_st;
515 double epsilo;
516 double epsrsm;
517 double epsrgr;
518 double climgr;
519 double d_climgr;
522 double relaxv;
523
527
530
532
571
575
590
604
623
638
654
670
723
726
749
766
786
807
845
850
853 bool time_control_owner; /* Is this instance owner
854 of the pointer. */
855 cs_time_control_t *time_control; /* Time control for equations */
856
858
859/*----------------------------------------------------------------------------*/
860
1234typedef enum {
1235
1253 CS_EQKEY_ITSOL [[deprecated("Use CS_EQKEY_SOLVER")]],
1254 CS_EQKEY_ITSOL_ATOL [[deprecated("Use CS_EQKEY_SOLVER_ATOL")]],
1255 CS_EQKEY_ITSOL_DTOL [[deprecated("Use CS_EQKEY_SOLVER_DTOL")]],
1256 CS_EQKEY_ITSOL_EPS [[deprecated("Use CS_EQKEY_SOLVER_RTOL")]],
1257 CS_EQKEY_ITSOL_MAX_ITER [[deprecated("Use CS_EQKEY_SOLVER_MAX_ITER")]],
1258 CS_EQKEY_ITSOL_RESNORM_TYPE [[deprecated("Use CS_EQKEY_SOLVER_RESNORM_TYPE")]],
1259 CS_EQKEY_ITSOL_RESTART [[deprecated("Use CS_EQKEY_SOLVER_RESTART")]],
1260 CS_EQKEY_ITSOL_RTOL [[deprecated("Use CS_EQKEY_SOLVER_RTOL")]],
1289
1291
1293
1294/*============================================================================
1295 * Static inline public function prototypes
1296 *============================================================================*/
1297
1298/*----------------------------------------------------------------------------*/
1305/*----------------------------------------------------------------------------*/
1306
1307static inline void
1309 cs_flag_t flag)
1310{
1311 assert(eqp != NULL);
1312 eqp->flag |= flag;
1313}
1314
1315/*----------------------------------------------------------------------------*/
1323/*----------------------------------------------------------------------------*/
1324
1325static inline bool
1327{
1328 assert(eqp != NULL);
1329 if (eqp->flag & CS_EQUATION_DIFFUSION)
1330 return true;
1331 else
1332 return false;
1333}
1334
1335/*----------------------------------------------------------------------------*/
1343/*----------------------------------------------------------------------------*/
1344
1345static inline bool
1347{
1348 assert(eqp != NULL);
1349 if (eqp->flag & CS_EQUATION_CURLCURL)
1350 return true;
1351 else
1352 return false;
1353}
1354
1355/*----------------------------------------------------------------------------*/
1363/*----------------------------------------------------------------------------*/
1364
1365static inline bool
1367{
1368 assert(eqp != NULL);
1369 if (eqp->flag & CS_EQUATION_GRADDIV)
1370 return true;
1371 else
1372 return false;
1373}
1374
1375/*----------------------------------------------------------------------------*/
1383/*----------------------------------------------------------------------------*/
1384
1385static inline bool
1387{
1388 assert(eqp != NULL);
1389 if (eqp->flag & CS_EQUATION_CONVECTION)
1390 return true;
1391 else
1392 return false;
1393}
1394
1395/*----------------------------------------------------------------------------*/
1403/*----------------------------------------------------------------------------*/
1404
1405static inline bool
1407{
1408 assert(eqp != NULL);
1409 if (eqp->flag & CS_EQUATION_REACTION)
1410 return true;
1411 else
1412 return false;
1413}
1414
1415/*----------------------------------------------------------------------------*/
1423/*----------------------------------------------------------------------------*/
1424
1425static inline bool
1427{
1428 assert(eqp != NULL);
1429 if (eqp->flag & CS_EQUATION_UNSTEADY)
1430 return true;
1431 else
1432 return false;
1433}
1434
1435/*----------------------------------------------------------------------------*/
1443/*----------------------------------------------------------------------------*/
1444
1445static inline bool
1447{
1448 assert(eqp != NULL);
1449 if (eqp->n_source_terms > 0)
1450 return true;
1451 else
1452 return false;
1453}
1454
1455/*----------------------------------------------------------------------------*/
1464/*----------------------------------------------------------------------------*/
1465
1466static inline bool
1468{
1469 assert(eqp != NULL);
1470 if (eqp->flag & CS_EQUATION_FORCE_VALUES)
1471 return true;
1472 else
1473 return false;
1474}
1475
1476/*----------------------------------------------------------------------------*/
1485/*----------------------------------------------------------------------------*/
1486
1487static inline bool
1489{
1490 assert(eqp != NULL);
1491 if (eqp->flag & CS_EQUATION_CONVECTION) {
1494 return true;
1495 else
1496 return false;
1497 }
1498 else
1499 return false;
1500}
1501
1502/*----------------------------------------------------------------------------*/
1511/*----------------------------------------------------------------------------*/
1512
1513static inline bool
1515{
1516 assert(eqp != NULL);
1517 if (eqp->flag & CS_EQUATION_BUILD_HOOK)
1518 return true;
1519 else
1520 return false;
1521}
1522
1523/*----------------------------------------------------------------------------*/
1534/*----------------------------------------------------------------------------*/
1535
1536static inline bool
1538 const char *name)
1539{
1540 if (eqp == NULL)
1541 return false;
1542 if (eqp->name == NULL)
1543 return false;
1544 if (strcmp(eqp->name, name) == 0)
1545 return true;
1546 else
1547 return false;
1548}
1549
1550/*============================================================================
1551 * Public function prototypes
1552 *============================================================================*/
1553
1554/*----------------------------------------------------------------------------*/
1555/*
1556 * \brief Create a \ref cs_equation_param_t structure
1557 *
1558 * \param[in] name name of the equation
1559 * \param[in] type type of equation
1560 * \param[in] dim dim of the variable associated to this equation
1561 * \param[in] default_bc type of boundary condition set by default
1562 *
1563 * \return a pointer to a new allocated \ref cs_equation_param_t structure
1564 */
1565/*----------------------------------------------------------------------------*/
1566
1568cs_equation_param_create(const char *name,
1569 cs_equation_type_t type,
1570 int dim,
1571 cs_param_bc_type_t default_bc);
1572
1573/*----------------------------------------------------------------------------*/
1574/*
1575 * \brief Create a \ref cs_equation_param_t structure
1576 *
1577 * \deprecated Renamed to\ref cs_equation_param_create.
1578 *
1579 * \param[in] name name of the equation
1580 * \param[in] type type of equation
1581 * \param[in] dim dim of the variable associated to this equation
1582 * \param[in] default_bc type of boundary condition set by default
1583 *
1584 * \return a pointer to a new allocated \ref cs_equation_param_t structure
1585 */
1586/*----------------------------------------------------------------------------*/
1587
1588[[deprecated("Use cs_equation_param_create instead")]]
1589inline cs_equation_param_t *
1591 cs_equation_type_t type,
1592 int dim,
1593 cs_param_bc_type_t default_bc)
1594{
1595 return cs_equation_param_create(name, type, dim, default_bc);
1596}
1597
1598/*----------------------------------------------------------------------------*/
1599/*
1600 * \brief Copy the settings from one \ref cs_equation_param_t structure to
1601 * another one. The name is not copied.
1602 *
1603 * \param[in] ref pointer to the reference cs_equation_param_t
1604 * \param[in, out] dst pointer to the cs_equation_param_t to update
1605 * \param[in] copy_fld_id copy also the field id or not
1606 */
1607/*----------------------------------------------------------------------------*/
1608
1609void
1612 bool copy_fld_id);
1613
1614/*----------------------------------------------------------------------------*/
1615/*
1616 * \brief Copy only the part dedicated to the boundary conditions and the DoF
1617 * (degrees of freedom) enforcement from one \ref cs_equation_param_t
1618 * structure to another one.
1619 *
1620 * \param[in] ref pointer to the reference \ref cs_equation_param_t
1621 * \param[in, out] dst pointer to the \ref cs_equation_param_t to update
1622 */
1623/*----------------------------------------------------------------------------*/
1624
1625void
1627 cs_equation_param_t *dst);
1628
1629/*----------------------------------------------------------------------------*/
1630/*
1631 * \brief Copy the settings from one \ref cs_equation_param_t structure to
1632 * another one. The name is not copied.
1633 *
1634 * \deprecated Renamed to\ref cs_equation_param_copy_from.
1635 *
1636 * \param[in] ref pointer to the reference \ref cs_equation_param_t
1637 * \param[in, out] dst pointer to the \ref cs_equation_param_t to update
1638 * \param[in] copy_fid copy also the field id or not
1639 */
1640/*----------------------------------------------------------------------------*/
1641
1642[[deprecated("Use cs_equation_param_copy_from instead")]]
1643inline void
1646 bool copy_fid)
1647{
1648 cs_equation_param_copy_from(ref, dst, copy_fid);
1649}
1650
1651/*----------------------------------------------------------------------------*/
1652/*
1653 * \brief Free the contents of a \ref cs_equation_param_t
1654 *
1655 * The cs_equation_param_t structure itself is not freed, but all its
1656 * sub-structures are freed.
1657 *
1658 * This is useful for equation parameters which are accessed through
1659 * field keywords.
1660 *
1661 * \param[in, out] eqp pointer to a \ref cs_equation_param_t
1662 */
1663/*----------------------------------------------------------------------------*/
1664
1665void
1667
1668/*----------------------------------------------------------------------------*/
1669/*
1670 * \brief Free a \ref cs_equation_param_t
1671 *
1672 * \param[in] eqp pointer to a \ref cs_equation_param_t
1673 *
1674 * \return a null pointer
1675 */
1676/*----------------------------------------------------------------------------*/
1677
1680
1681/*----------------------------------------------------------------------------*/
1682/*
1683 * \brief Set a parameter attached to a keyname in a \ref cs_equation_param_t
1684 * structure
1685 *
1686 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1687 * \param[in] key key related to the member of eq to set
1688 * \param[in] keyval accessor to the value to set
1689 */
1690/*----------------------------------------------------------------------------*/
1691
1692void
1695 const char *keyval);
1696
1697/*----------------------------------------------------------------------------*/
1698/*
1699 * \brief Set a parameter attached to a keyname in a \ref cs_equation_param_t
1700 * structure
1701 *
1702 * \deprecated Renamed to\ref cs_equation_param_set.
1703 *
1704 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1705 * \param[in] key key related to the member of eq to set
1706 * \param[in] keyval accessor to the value to set
1707 */
1708/*----------------------------------------------------------------------------*/
1709
1710[[deprecated("Use cs_equation_param_set instead")]]
1711inline void
1714 const char *keyval)
1715{
1716 cs_equation_param_set(eqp, key, keyval);
1717}
1718
1719/*----------------------------------------------------------------------------*/
1720/*
1721 * \brief Get the pointer to the set of parameters to handle the SLES solver
1722 * associated to this set of equation parameters
1723 *
1724 * \param[in] eqp pointer to a \ref cs_equation_param_t structure
1725 *
1726 * \return a pointer to a cs_param_sles_t structure
1727 */
1728/*----------------------------------------------------------------------------*/
1729
1732
1733/*----------------------------------------------------------------------------*/
1734/*
1735 * \brief Get the pointer to the set of parameters to handle the SLES solver
1736 * associated to this set of equation parameters
1737 *
1738 * \param[in] eqp pointer to a \ref cs_equation_param_t structure
1739 *
1740 * \return a pointer to a cs_param_saddle_t structure
1741 */
1742/*----------------------------------------------------------------------------*/
1743
1746
1747/*----------------------------------------------------------------------------*/
1748/*
1749 * \brief Set parameters for initializing SLES structures used for the
1750 * resolution of the linear system.
1751 * Settings are related to this equation.
1752 *
1753 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1754 */
1755/*----------------------------------------------------------------------------*/
1756
1757void
1759
1760/*----------------------------------------------------------------------------*/
1761/*
1762 * \brief Apply the given quadrature rule to all existing definitions under the
1763 * cs_equation_param_t structure. To get a more detailed control of the
1764 * quadrature rule, please consider the function
1765 * \ref cs_xdef_set_quadrature
1766 *
1767 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1768 * \param[in] qtype type of quadrature to apply
1769 */
1770/*----------------------------------------------------------------------------*/
1771
1772void
1774 cs_quadrature_type_t qtype);
1775
1776/*----------------------------------------------------------------------------*/
1777/*
1778 * \brief Lock settings to prevent from unwanted modifications.
1779 *
1780 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1781 */
1782/*----------------------------------------------------------------------------*/
1783
1784void
1786
1787/*----------------------------------------------------------------------------*/
1788/*
1789 * \brief Unlock settings. Be sure that is really wanted (inconsistency between
1790 * the setup logging and what is used may appear)
1791 *
1792 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1793 */
1794/*----------------------------------------------------------------------------*/
1795
1796void
1798
1799/*----------------------------------------------------------------------------*/
1800/*
1801 * \brief At this stage, the numerical settings should not be modified anymore
1802 * by the user. One makes a last set of modifications if needed to
1803 * ensure a consistent numerical settings.
1804 *
1805 * \param[in, out] eqp pointer to a \ref cs_equation_param_t structure
1806 */
1807/*----------------------------------------------------------------------------*/
1808
1809void
1811
1812/*----------------------------------------------------------------------------*/
1813/*
1814 * \brief Print the detail of a \ref cs_equation_param_t structure
1815 *
1816 * \param[in] eqp pointer to a \ref cs_equation_param_t structure
1817 */
1818/*----------------------------------------------------------------------------*/
1819
1820void
1822
1823/*----------------------------------------------------------------------------*/
1824/*
1825 * \brief Ask if the parameter settings of the equation has requested the
1826 * treatment of Robin boundary conditions
1827 *
1828 * \param[in] eqp pointer to a \ref cs_equation_param_t
1829 *
1830 * \return true or false
1831 */
1832/*----------------------------------------------------------------------------*/
1833
1834bool
1836
1837/*----------------------------------------------------------------------------*/
1838/*
1839 * \brief Define the initial condition for the unknown related to this
1840 * equation. This definition applies to a volume zone.
1841 * By default, the unknown is set to zero everywhere.
1842 * Here a constant value is set to all the unknows belonging to the
1843 * given zone with name z_name
1844 *
1845 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1846 * \param[in] z_name name of the associated zone (if nullptr or "" all
1847 * cells are considered)
1848 * \param[in] val pointer to the value
1849 *
1850 * \return a pointer to the new \ref cs_xdef_t structure
1851 */
1852/*----------------------------------------------------------------------------*/
1853
1854cs_xdef_t *
1856 const char *z_name,
1857 cs_real_t *val);
1858
1859/*----------------------------------------------------------------------------*/
1860/*
1861 * \brief Define the initial condition for the unknown related to this
1862 * equation. This definition applies to a volume zone.
1863 * By default, the unknown is set to zero everywhere.
1864 * Here the value set to each unknown belonging to the given zone with
1865 * name z_name is such that the integral over the cells of the zone
1866 * returns the requested quantity
1867 *
1868 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1869 * \param[in] z_name name of the associated zone (if null or "" all
1870 * cells are considered)
1871 * \param[in] quantity quantity to distribute over the mesh location
1872 *
1873 * \return a pointer to the new \ref cs_xdef_t structure
1874 */
1875/*----------------------------------------------------------------------------*/
1876
1877cs_xdef_t *
1879 const char *z_name,
1880 double quantity);
1881
1882/*----------------------------------------------------------------------------*/
1883/*
1884 * \brief Define the initial condition for the unknown related to this
1885 * equation. This definition applies to a volume zone.
1886 * By default, the unknown is set to zero everywhere.
1887 * Here the initial value for each unknown associated to the zone with
1888 * name z_name is set according to an analytical function
1889 *
1890 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1891 * \param[in] z_name name of the associated zone (if null or "" if
1892 * all cells are considered)
1893 * \param[in] analytic pointer to an analytic function
1894 * \param[in] input null or pointer to a structure cast on-the-fly
1895 *
1896 * \return a pointer to the new \ref cs_xdef_t structure
1897 */
1898/*----------------------------------------------------------------------------*/
1899
1900cs_xdef_t *
1902 const char *z_name,
1903 cs_analytic_func_t *analytic,
1904 void *input);
1905
1906/*----------------------------------------------------------------------------*/
1907/*
1908 * \brief Define the initial condition for the unknown related to this
1909 * equation. This definition applies to a volume zone.
1910 * By default, the unknown is set to zero everywhere.
1911 * Case of a definition by a DoF function.
1912 *
1913 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1914 * \param[in] z_name name of the associated zone (if null or "" if
1915 * all cells are considered)
1916 * \param[in] loc_flag where information is computed
1917 * \param[in] func pointer to a DoF function
1918 * \param[in] input null or pointer to a structure cast on-the-fly
1919 *
1920 * \return a pointer to the new \ref cs_xdef_t structure
1921 */
1922/*----------------------------------------------------------------------------*/
1923
1924cs_xdef_t *
1926 const char *z_name,
1927 cs_flag_t loc_flag,
1928 cs_dof_func_t *func,
1929 void *input);
1930
1931/*----------------------------------------------------------------------------*/
1932/*
1933 * \brief Set a boundary condition from an existing \ref cs_xdef_t structure
1934 * The lifecycle of the cs_xdef_t structure is now managed by the
1935 * current \ref cs_equation_param_t structure.
1936 *
1937 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1938 * \param[in] xdef pointer to the \ref cs_xdef_t structure to transfer
1939*/
1940/*----------------------------------------------------------------------------*/
1941
1942void
1944 cs_xdef_t *xdef);
1945
1946/*----------------------------------------------------------------------------*/
1947/*
1948 * \brief Define and initialize a new structure to set a boundary condition
1949 * related to the given equation structure
1950 * z_name corresponds to the name of a pre-existing cs_zone_t
1951 *
1952 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1953 * \param[in] bc_type type of boundary condition to add
1954 * \param[in] z_name name of the related boundary zone
1955 * \param[in] values pointer to a array storing the values
1956 *
1957 * \return a pointer to the new \ref cs_xdef_t structure
1958 */
1959/*----------------------------------------------------------------------------*/
1960
1961cs_xdef_t *
1963 const cs_param_bc_type_t bc_type,
1964 const char *z_name,
1965 cs_real_t *values);
1966
1967/*----------------------------------------------------------------------------*/
1968/*
1969 * \brief Define and initialize a new structure to set a boundary condition
1970 * related to the given equation structure
1971 * z_name corresponds to the name of a pre-existing cs_zone_t
1972 *
1973 * \param[in, out] eqp pointer to a cs_equation_param_t structure
1974 * \param[in] bc_type type of boundary condition to add
1975 * \param[in] z_name name of the related boundary zone
1976 * \param[in] loc information to know where are located values
1977 * \param[in] array pointer to an array
1978 * \param[in] is_owner transfer the lifecycle to the cs_xdef_t struct.
1979 * (true or false)
1980 * \param[in] full_length if true, size of "array" should be allocated
1981 * to the total numbers of entities related to the
1982 * given location. If false, a new list is
1983 * allocated and filled with the related subset
1984 * indirection.
1985 *
1986 * \return a pointer to the new allocated \ref cs_xdef_t structure
1987 */
1988/*----------------------------------------------------------------------------*/
1989
1990cs_xdef_t *
1992 const cs_param_bc_type_t bc_type,
1993 const char *z_name,
1994 cs_flag_t loc,
1995 cs_real_t *array,
1996 bool is_owner,
1997 bool full_length);
1998
1999/*----------------------------------------------------------------------------*/
2000/*
2001 * \brief Define and initialize a new structure to set a boundary condition
2002 * related to the given equation structure
2003 * z_name corresponds to the name of a pre-existing cs_zone_t
2004 *
2005 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2006 * \param[in] bc_type type of boundary condition to add
2007 * \param[in] z_name name of the related boundary zone
2008 * \param[in] field pointer to a cs_field_t structure
2009 *
2010 * \return a pointer to the new allocated \ref cs_xdef_t structure
2011 */
2012/*----------------------------------------------------------------------------*/
2013
2014cs_xdef_t *
2016 const cs_param_bc_type_t bc_type,
2017 const char *z_name,
2018 cs_field_t *field);
2019
2020/*----------------------------------------------------------------------------*/
2021/*
2022 * \brief Define and initialize a new structure to set a boundary condition
2023 * related to the given equation param structure
2024 * ml_name corresponds to the name of a pre-existing cs_mesh_location_t
2025 *
2026 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2027 * \param[in] bc_type type of boundary condition to add
2028 * \param[in] z_name name of the associated zone (if null or "" if
2029 * all cells are considered)
2030 * \param[in] analytic pointer to an analytic function defining the value
2031 * \param[in] input null or pointer to a structure cast on-the-fly
2032 *
2033 * \return a pointer to the new \ref cs_xdef_t structure
2034*/
2035/*----------------------------------------------------------------------------*/
2036
2037cs_xdef_t *
2039 const cs_param_bc_type_t bc_type,
2040 const char *z_name,
2041 cs_analytic_func_t *analytic,
2042 void *input);
2043
2044/*----------------------------------------------------------------------------*/
2045/*
2046 * \brief Define and initialize a new structure to set a boundary condition
2047 * related to the given equation param structure
2048 * ml_name corresponds to the name of a pre-existing cs_mesh_location_t
2049 * Definition relying on a \ref cs_time_func_t function pointer
2050 *
2051 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2052 * \param[in] bc_type type of boundary condition to add
2053 * \param[in] z_name name of the associated zone (if null or "" if
2054 * all cells are considered)
2055 * \param[in] t_func pointer to an analytic function defining the value
2056 * \param[in] input null or pointer to a structure cast on-the-fly
2057 *
2058 * \return a pointer to the new \ref cs_xdef_t structure
2059*/
2060/*----------------------------------------------------------------------------*/
2061
2062cs_xdef_t *
2064 const cs_param_bc_type_t bc_type,
2065 const char *z_name,
2066 cs_time_func_t *t_func,
2067 void *input);
2068
2069/*----------------------------------------------------------------------------*/
2070/*
2071 * \brief Define and initialize a new structure to set a boundary condition
2072 * related to the given cs_equation_param_t structure
2073 * ml_name corresponds to the name of a pre-existing cs_mesh_location_t
2074 *
2075 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2076 * \param[in] bc_type type of boundary condition to add
2077 * \param[in] z_name name of the associated zone (if null or "" if
2078 * all cells are considered)
2079 * \param[in] loc_flag location where values are computed
2080 * \param[in] func pointer to cs_dof_func_t function
2081 * \param[in] input null or pointer to a structure cast on-the-fly
2082 *
2083 * \return a pointer to the new \ref cs_xdef_t structure
2084*/
2085/*----------------------------------------------------------------------------*/
2086
2087cs_xdef_t *
2089 const cs_param_bc_type_t bc_type,
2090 const char *z_name,
2091 cs_flag_t loc_flag,
2092 cs_dof_func_t *func,
2093 void *input);
2094
2095/*----------------------------------------------------------------------------*/
2096/*
2097 * \brief Add a new volume mass injection definition source term by
2098 * initializing a cs_xdef_t structure, using an array.
2099 *
2100 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2101 * \param[in] bc_type type of boundary condition to add
2102 * \param[in] z_name name of the related boundary zone
2103 * \param[in] loc information to know where are located values
2104 * \param[in] array pointer to an array
2105 * \param[in] is_owner transfer the lifecycle to the cs_xdef_t struct.
2106 * (true or false)
2107 * \param[in] full_length if true, size of "array" should be allocated
2108 * to the total numbers of entities related to the
2109 * given location. If false, a new list is
2110 * allocated and filled with the related subset
2111 * indirection.
2112 *
2113 * \return a pointer to the new allocated \ref cs_xdef_t structure
2114 */
2115/*----------------------------------------------------------------------------*/
2116
2117cs_xdef_t *
2119 const char *z_name,
2120 cs_flag_t loc_flag,
2121 cs_real_t *array,
2122 bool is_owner,
2123 bool full_length);
2124
2125/*----------------------------------------------------------------------------*/
2126/*
2127 * \brief Return pointer to existing boundary condition definition structure
2128 * for the given equation param structure and zone.
2129 *
2130 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2131 * \param[in] z_name name of the associated zone (if null or "" if
2132 * all cells are considered)
2133 *
2134 * \return a pointer to the \ref cs_xdef_t structure if present, or null
2135*/
2136/*----------------------------------------------------------------------------*/
2137
2138cs_xdef_t *
2140 const char *z_name);
2141
2142/*----------------------------------------------------------------------------*/
2143/*
2144 * \brief Remove boundary condition from the given equation param structure
2145 * for a given zone.
2146 *
2147 * If no matching boundary condition is found, the function returns
2148 * silently.
2149 *
2150 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2151 * \param[in] z_name name of the associated zone (if null or "" if
2152 * all cells are considered)
2153*/
2154/*----------------------------------------------------------------------------*/
2155
2156void
2158 const char *z_name);
2159
2160/*----------------------------------------------------------------------------*/
2161/*
2162 * \brief Remove initial condition from the given equation param structure
2163 * for a given zone.
2164 *
2165 * If no matching boundary condition is found, the function returns
2166 * silently.
2167 *
2168 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2169 * \param[in] z_name name of the associated zone (if null or "" if
2170 * all cells are considered)
2171*/
2172/*----------------------------------------------------------------------------*/
2173
2174void
2176 const char *z_name);
2177
2178/*----------------------------------------------------------------------------*/
2179/*
2180 * \brief Define and initialize a new structure to set a sliding boundary
2181 * condition related to the given equation structure
2182 * z_name corresponds to the name of a pre-existing cs_zone_t
2183 *
2184 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2185 * \param[in] z_name name of the related boundary zone
2186 */
2187/*----------------------------------------------------------------------------*/
2188
2189void
2191 const char *z_name);
2192
2193/*----------------------------------------------------------------------------*/
2194/*
2195 * \brief Associate a new term related to the Laplacian operator for the
2196 * equation associated to the given \ref cs_equation_param_t structure
2197 * Laplacian means div-grad (either for vector-valued or scalar-valued
2198 * equations)
2199 *
2200 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2201 * \param[in] property pointer to a cs_property_t structure
2202 */
2203/*----------------------------------------------------------------------------*/
2204
2205void
2207 cs_property_t *property);
2208
2209/*----------------------------------------------------------------------------*/
2210/*
2211 * \brief Associate a new term related to the curl-curl operator for the
2212 * equation associated to the given \ref cs_equation_param_t structure
2213 *
2214 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2215 * \param[in] property pointer to a cs_property_t structure
2216 * \param[in] inversion 1: true, false otherwise
2217 */
2218/*----------------------------------------------------------------------------*/
2219
2220void
2222 cs_property_t *property,
2223 int inversion);
2224
2225/*----------------------------------------------------------------------------*/
2226/*
2227 * \brief Associate a new term related to the grad-div operator for the
2228 * equation associated to the given \ref cs_equation_param_t structure
2229 *
2230 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2231 * \param[in] property pointer to a cs_property_t structure
2232 */
2233/*----------------------------------------------------------------------------*/
2234
2235void
2237 cs_property_t *property);
2238
2239/*----------------------------------------------------------------------------*/
2240/*
2241 * \brief Associate a new term related to the time derivative operator for
2242 * the equation associated to the given \ref cs_equation_param_t
2243 * structure
2244 *
2245 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2246 * \param[in] property pointer to a cs_property_t structure
2247 */
2248/*----------------------------------------------------------------------------*/
2249
2250void
2252 cs_property_t *property);
2253
2254/*----------------------------------------------------------------------------*/
2255/*
2256 * \brief Associate a new term related to the advection operator for the
2257 * equation associated to the given \ref cs_equation_param_t structure
2258 *
2259 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2260 * \param[in] adv_field pointer to a cs_adv_field_t structure
2261 */
2262/*----------------------------------------------------------------------------*/
2263
2264void
2266 cs_adv_field_t *adv_field);
2267
2268/*----------------------------------------------------------------------------*/
2269/*
2270 * \brief Associate a scaling property to the advection
2271 *
2272 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2273 * \param[in] property pointer to a cs_property_t structure
2274 */
2275/*----------------------------------------------------------------------------*/
2276
2277void
2279 cs_property_t *property);
2280
2281/*----------------------------------------------------------------------------*/
2282/*
2283 * \brief Associate a new term related to the reaction operator for the
2284 * equation associated to the given \ref cs_equation_param_t structure
2285 *
2286 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2287 * \param[in] property pointer to a cs_property_t structure
2288 *
2289 * \return the id related to the reaction term
2290 */
2291/*----------------------------------------------------------------------------*/
2292
2293int
2295 cs_property_t *property);
2296
2297/*----------------------------------------------------------------------------*/
2298/*
2299 * \brief Add a new source term by initializing a cs_xdef_t structure.
2300 * Case of a definition by a constant value
2301 *
2302 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2303 * \param[in] z_name name of the associated zone (if null or
2304 * "" all cells are considered)
2305 * \param[in] val value to set
2306 *
2307 * \return a pointer to the new \ref cs_xdef_t structure
2308 */
2309/*----------------------------------------------------------------------------*/
2310
2311cs_xdef_t *
2313 const char *z_name,
2314 cs_real_t *val);
2315
2316/*----------------------------------------------------------------------------*/
2317/*
2318 * \brief Add a new source term by initializing a cs_xdef_t structure.
2319 * Case of a definition by an analytical function
2320 *
2321 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2322 * \param[in] z_name name of the associated zone (if null or "" if
2323 * all cells are considered)
2324 * \param[in] func pointer to an analytical function
2325 * \param[in] input null or pointer to a structure cast on-the-fly
2326 *
2327 * \return a pointer to the new \ref cs_xdef_t structure
2328 */
2329/*----------------------------------------------------------------------------*/
2330
2331cs_xdef_t *
2333 const char *z_name,
2334 cs_analytic_func_t *func,
2335 void *input);
2336
2337/*----------------------------------------------------------------------------*/
2338/*
2339 * \brief Add a new source term by initializing a cs_xdef_t structure.
2340 * Case of a definition by a DoF function
2341 *
2342 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2343 * \param[in] z_name name of the associated zone (if null or "" if
2344 * all cells are considered)
2345 * \param[in] loc_flag location of element ids given as parameter
2346 * \param[in] func pointer to a DoF function
2347 * \param[in] input null or pointer to a structure cast on-the-fly
2348 *
2349 * \return a pointer to the new \ref cs_xdef_t structure
2350 */
2351/*----------------------------------------------------------------------------*/
2352
2353cs_xdef_t *
2355 const char *z_name,
2356 cs_flag_t loc_flag,
2357 cs_dof_func_t *func,
2358 void *input);
2359
2360/*----------------------------------------------------------------------------*/
2361/*
2362 * \brief Add a new source term by initializing a cs_xdef_t structure.
2363 * Case of a definition by an array.
2364 *
2365 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2366 * \param[in] z_name name of the associated zone (if null or "" if
2367 * all cells are considered)
2368 * \param[in] loc information to know where are located values
2369 * \param[in] array pointer to an array
2370 * \param[in] is_owner transfer the lifecycle to the cs_xdef_t struct.
2371 * (true or false)
2372 * \param[in] full_length if true, the size of "array" should be allocated
2373 * to the total numbers of entities related to the
2374 * given location. If false, a new list is
2375 * allocated and filled with the related subset
2376 * indirection.
2377 *
2378 * \return a pointer to the new \ref cs_xdef_t structure
2379 */
2380/*----------------------------------------------------------------------------*/
2381
2382cs_xdef_t *
2384 const char *z_name,
2385 cs_flag_t loc,
2386 cs_real_t *array,
2387 bool is_owner,
2388 bool full_length);
2389
2390/*----------------------------------------------------------------------------*/
2391/*
2392 * \brief Add a new volume mass injection definition source term by
2393 * initializing a cs_xdef_t structure, using a constant value.
2394 *
2395 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2396 * \param[in] z_name name of the associated zone (if null or "" if
2397 * all cells are considered)
2398 * \param[in] val pointer to the value
2399 *
2400 * \return a pointer to the new \ref cs_xdef_t structure
2401 */
2402/*----------------------------------------------------------------------------*/
2403
2404cs_xdef_t *
2406 const char *z_name,
2407 double *val);
2408
2409/*----------------------------------------------------------------------------*/
2410/*
2411 * \brief Add a new volume mass injection definition source term by
2412 * initializing a cs_xdef_t structure, using a constant quantity
2413 * distributed over the associated zone's volume.
2414 *
2415 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2416 * \param[in] z_name name of the associated zone (if null or "" if
2417 * all cells are considered)
2418 * \param[in] quantity pointer to quantity to distribute over the zone
2419 *
2420 * \return a pointer to the new \ref cs_xdef_t structure
2421 */
2422/*----------------------------------------------------------------------------*/
2423
2424cs_xdef_t *
2426 const char *z_name,
2427 double *quantity);
2428
2429/*----------------------------------------------------------------------------*/
2430/*
2431 * \brief Add a new volume mass injection definition source term by
2432 * initializing a cs_xdef_t structure, using an analytical function.
2433 *
2434 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2435 * \param[in] z_name name of the associated zone (if null or "" if
2436 * all cells are considered)
2437 * \param[in] func pointer to an analytical function
2438 * \param[in] input null or pointer to a structure cast on-the-fly
2439 *
2440 * \return a pointer to the new \ref cs_xdef_t structure
2441 */
2442/*----------------------------------------------------------------------------*/
2443
2444cs_xdef_t *
2446 const char *z_name,
2447 cs_analytic_func_t *func,
2448 void *input);
2449
2450/*----------------------------------------------------------------------------*/
2451/*
2452 * \brief Add a new volume mass injection definition source term by
2453 * initializing a cs_xdef_t structure, using a DoF function.
2454 *
2455 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2456 * \param[in] z_name name of the associated zone (if null or "" if
2457 * all cells are considered)
2458 * \param[in] loc_flag where information is computed
2459 * \param[in] func pointer to an analytical function
2460 * \param[in] input null or pointer to a structure cast on-the-fly
2461 *
2462 * \return a pointer to the new \ref cs_xdef_t structure
2463 */
2464/*----------------------------------------------------------------------------*/
2465
2466cs_xdef_t *
2468 const char *z_name,
2469 cs_flag_t loc_flag,
2470 cs_dof_func_t *func,
2471 void *input);
2472
2473/*----------------------------------------------------------------------------*/
2474/*
2475 * \brief Add an enforcement of the value of degrees of freedom located at
2476 * the mesh vertices.
2477 * The spatial discretization scheme for the given equation has to be
2478 * CDO vertex-based or CDO vertex+cell-based schemes.
2479 *
2480 * One assumes that values are interlaced if eqp->dim > 1
2481 * ref_value or elt_values has to be defined. If both parameters are
2482 * defined, one keeps the definition in elt_values
2483 *
2484 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2485 * \param[in] n_vertices number of vertices to enforce
2486 * \param[in] vertex_ids list of vertices
2487 * \param[in] ref_value default values or ignored (may be null)
2488 * \param[in] vtx_values list of associated values, ignored if null
2489 *
2490 * \return a pointer to a cs_enforcement_param_t structure
2491 */
2492/*----------------------------------------------------------------------------*/
2493
2496 cs_lnum_t n_vertices,
2497 const cs_lnum_t vertex_ids[],
2498 const cs_real_t ref_value[],
2499 const cs_real_t vtx_values[]);
2500
2501/*----------------------------------------------------------------------------*/
2502/*
2503 * \brief Add an enforcement of the value of degrees of freedom located at
2504 * the mesh edges.
2505 * The spatial discretization scheme for the given equation has to be
2506 * CDO edge-based schemes.
2507 *
2508 * One assumes that values are interlaced if eqp->dim > 1
2509 * ref_value or elt_values has to be defined. If both parameters are
2510 * defined, one keeps the definition in elt_values
2511 *
2512 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2513 * \param[in] n_edges number of edges to enforce
2514 * \param[in] edge_ids list of edges
2515 * \param[in] ref_value default values or ignored (may be null)
2516 * \param[in] edge_values list of associated values, ignored if null
2517 *
2518 * \return a pointer to a cs_enforcement_param_t structure
2519 */
2520/*----------------------------------------------------------------------------*/
2521
2524 cs_lnum_t n_edges,
2525 const cs_lnum_t edge_ids[],
2526 const cs_real_t ref_value[],
2527 const cs_real_t edge_values[]);
2528
2529/*----------------------------------------------------------------------------*/
2530/*
2531 * \brief Add an enforcement of the value of degrees of freedom located at
2532 * the mesh faces.
2533 * The spatial discretization scheme for the given equation has to be
2534 * CDO face-based schemes.
2535 *
2536 * One assumes that values are interlaced if eqp->dim > 1
2537 * ref_value or elt_values has to be defined. If both parameters are
2538 * defined, one keeps the definition in elt_values
2539 *
2540 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2541 * \param[in] n_faces number of faces to enforce
2542 * \param[in] face_ids list of faces
2543 * \param[in] ref_value default values or ignored (may be null)
2544 * \param[in] face_values list of associated values, ignored if null
2545 *
2546 * \return a pointer to a cs_enforcement_param_t structure
2547 */
2548/*----------------------------------------------------------------------------*/
2549
2552 cs_lnum_t n_faces,
2553 const cs_lnum_t face_ids[],
2554 const cs_real_t ref_value[],
2555 const cs_real_t face_values[]);
2556
2557/*----------------------------------------------------------------------------*/
2558/*
2559 * \brief Add an enforcement of the value related to the degrees of freedom
2560 * associated to the list of selected cells.
2561 *
2562 * One assumes that values are interlaced if eqp->dim > 1
2563 * ref_value or elt_values has to be defined. If both parameters are
2564 * defined, one keeps the definition in elt_values
2565 *
2566 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2567 * \param[in] n_cells number of selected cells
2568 * \param[in] cell_ids list of cell ids
2569 * \param[in] ref_value ignored if null
2570 * \param[in] cell_values list of associated values, ignored if null
2571 *
2572 * \return a pointer to a cs_enforcement_param_t structure
2573 */
2574/*----------------------------------------------------------------------------*/
2575
2578 cs_lnum_t n_cells,
2579 const cs_lnum_t elt_ids[],
2580 const cs_real_t ref_value[],
2581 const cs_real_t cell_values[]);
2582
2583/*----------------------------------------------------------------------------*/
2584/*
2585 * \brief Add a new enforcement if enforcement_id does not exist or replace it
2586 * otherwise. Enforcement of the value related to the degrees of freedom
2587 * associated to the list of selected cells.
2588 *
2589 * One assumes that values are interlaced if eqp->dim > 1
2590 * ref_value or elt_values has to be defined. If both parameters are
2591 * defined, one keeps the definition in elt_values
2592 *
2593 * \param[in, out] eqp pointer to a cs_equation_param_t structure
2594 * \param[in] enforcement_id id of the enforcement to handle
2595 * \param[in] n_cells number of selected cells
2596 * \param[in] cell_ids list of cell ids
2597 * \param[in] ref_value ignored if null
2598 * \param[in] cell_values list of associated values, ignored if null
2599 *
2600 * \return a pointer to a cs_enforcement_param_t structure
2601 */
2602/*----------------------------------------------------------------------------*/
2603
2606 int enforcement_id,
2607 cs_lnum_t n_cells,
2608 const cs_lnum_t cell_ids[],
2609 const cs_real_t ref_value[],
2610 const cs_real_t cell_values[]);
2611
2612/*----------------------------------------------------------------------------*/
2613/* Clear time control data from equation_param instance. */
2614/*----------------------------------------------------------------------------*/
2615
2616void
2618
2619/*----------------------------------------------------------------------------*/
2620/* Add a time control to an equation_parap structure */
2621/*----------------------------------------------------------------------------*/
2622
2623void
2625 cs_time_control_t *time_control,
2626 bool shallow_copy);
2627
2628/*----------------------------------------------------------------------------*/
2629/* Add a time control to an equation_parap structure based on default values */
2630/*----------------------------------------------------------------------------*/
2631
2632void
2634
2635/*----------------------------------------------------------------------------*/
2636
2637#endif /* CS_EQUATION_PARAM_H */
Field descriptor.
Definition: cs_field.h:275
Definition: cs_time_control.h:92
#define restrict
Definition: cs_defs.h:148
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
unsigned short int cs_flag_t
Definition: cs_defs.h:334
void cs_equation_param_set(cs_equation_param_t *eqp, cs_equation_key_t key, const char *keyval)
Set a parameter attached to a keyname in a cs_equation_param_t structure.
Definition: cs_equation_param.cpp:1489
void cs_equation_time_control_clear(cs_equation_param_t *eqp)
Clear time_control data from the given equation param.
Definition: cs_equation_param.cpp:4209
int cs_equation_add_reaction(cs_equation_param_t *eqp, cs_property_t *property)
Associate a new term related to the reaction operator for the equation associated to the given cs_equ...
Definition: cs_equation_param.cpp:3283
void cs_equation_add_graddiv(cs_equation_param_t *eqp, cs_property_t *property)
Associate a new term related to the grad-div operator for the equation associated to the given cs_equ...
Definition: cs_equation_param.cpp:3182
void cs_equation_param_unlock_settings(cs_equation_param_t *eqp)
Unlock settings. Be sure that is really wanted (inconsistency between the setup logging and what is u...
Definition: cs_equation_param.cpp:1665
cs_xdef_t * cs_equation_find_bc(cs_equation_param_t *eqp, const char *z_name)
Return pointer to existing boundary condition definition structure for the given equation param struc...
Definition: cs_equation_param.cpp:2943
void cs_equation_time_control_add_default(cs_equation_param_t *eqp)
Add a time control instance to an equation param structure based on default values (hard copy).
Definition: cs_equation_param.cpp:4260
static bool cs_equation_param_has_time(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs an unsteady term.
Definition: cs_equation_param.h:1426
void cs_equation_param_lock_settings(cs_equation_param_t *eqp)
Lock settings to prevent from unwanted modifications.
Definition: cs_equation_param.cpp:1647
static bool cs_equation_param_has_curlcurl(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a curl-curl term.
Definition: cs_equation_param.h:1346
void cs_equation_time_control_add(cs_equation_param_t *eqp, cs_time_control_t *time_control, bool shallow_copy)
Add a time control instance to an equation param structure.
Definition: cs_equation_param.cpp:4230
cs_xdef_t * cs_equation_add_bc_by_array(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_flag_t loc, cs_real_t *array, bool is_owner, bool full_length)
Define and initialize a new structure to set a boundary condition related to the given equation struc...
Definition: cs_equation_param.cpp:2462
cs_xdef_t * cs_equation_add_bc_by_analytic(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_analytic_func_t *analytic, void *input)
Define and initialize a new structure to set a boundary condition related to the given equation param...
Definition: cs_equation_param.cpp:2653
#define CS_EQUATION_CURLCURL
The term related to the curl-curl operator is needed.
Definition: cs_equation_param.h:99
bool cs_equation_param_has_robin_bc(const cs_equation_param_t *eqp)
Ask if the parameter settings of the equation has requested the treatment of Robin boundary condition...
Definition: cs_equation_param.cpp:2109
cs_xdef_t * cs_equation_add_volume_mass_injection_by_dof_func(cs_equation_param_t *eqp, const char *z_name, cs_flag_t loc_flag, cs_dof_func_t *func, void *input)
Add a new volume mass injection definition source term by initializing a cs_xdef_t structure,...
Definition: cs_equation_param.cpp:3720
cs_enforcement_param_t * cs_equation_add_edge_dof_enforcement(cs_equation_param_t *eqp, cs_lnum_t n_edges, const cs_lnum_t edge_ids[], const cs_real_t ref_value[], const cs_real_t edge_values[])
Add an enforcement of the value of degrees of freedom located at the mesh edges. The spatial discreti...
Definition: cs_equation_param.cpp:3933
void cs_equation_remove_ic(cs_equation_param_t *eqp, const char *z_name)
Remove initial condition from the given equation param structure for a given zone.
Definition: cs_equation_param.cpp:3034
cs_xdef_t * cs_equation_add_ic_by_value(cs_equation_param_t *eqp, const char *z_name, cs_real_t *val)
Define the initial condition for the unknown related to this equation. This definition applies to a v...
Definition: cs_equation_param.cpp:2143
cs_xdef_t * cs_equation_add_source_term_by_array(cs_equation_param_t *eqp, const char *z_name, cs_flag_t loc, cs_real_t *array, bool is_owner, bool full_length)
Add a new source term by initializing a cs_xdef_t structure. Case of a definition by an array.
Definition: cs_equation_param.cpp:3493
cs_xdef_t * cs_equation_add_bc_by_time_func(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_time_func_t *t_func, void *input)
Define and initialize a new structure to set a boundary condition related to the given equation param...
Definition: cs_equation_param.cpp:2750
void cs_equation_remove_bc(cs_equation_param_t *eqp, const char *z_name)
Remove boundary condition from the given equation param structure for a given zone.
Definition: cs_equation_param.cpp:2983
cs_xdef_t * cs_equation_add_bc_by_dof_func(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_flag_t loc_flag, cs_dof_func_t *func, void *input)
Define and initialize a new structure to set a boundary condition related to the given cs_equation_pa...
Definition: cs_equation_param.cpp:2847
cs_xdef_t * cs_equation_add_ic_by_analytic(cs_equation_param_t *eqp, const char *z_name, cs_analytic_func_t *analytic, void *input)
Define the initial condition for the unknown related to this equation. This definition applies to a v...
Definition: cs_equation_param.cpp:2245
void cs_equation_add_sliding_condition(cs_equation_param_t *eqp, const char *z_name)
Define and initialize a new structure to set a sliding boundary condition related to the given equati...
Definition: cs_equation_param.cpp:3082
cs_enforcement_param_t * cs_equation_add_face_dof_enforcement(cs_equation_param_t *eqp, cs_lnum_t n_faces, const cs_lnum_t face_ids[], const cs_real_t ref_value[], const cs_real_t face_values[])
Add an enforcement of the value of degrees of freedom located at the mesh faces. The spatial discreti...
Definition: cs_equation_param.cpp:4008
#define CS_EQUATION_UNSTEADY
Unsteady term is needed.
Definition: cs_equation_param.h:96
cs_xdef_t * cs_equation_add_ic_by_qov(cs_equation_param_t *eqp, const char *z_name, double quantity)
Define the initial condition for the unknown related to this equation. This definition applies to a v...
Definition: cs_equation_param.cpp:2194
cs_equation_param_t * cs_equation_param_free(cs_equation_param_t *eqp)
Free a cs_equation_param_t.
Definition: cs_equation_param.cpp:1465
#define CS_EQUATION_DIFFUSION
Diffusion term is needed. A scalar-/vector-valued Laplacian with div .grad.
Definition: cs_equation_param.h:98
cs_xdef_t * cs_equation_add_bc_by_field(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_field_t *field)
Define and initialize a new structure to set a boundary condition related to the given equation struc...
Definition: cs_equation_param.cpp:2569
cs_xdef_t * cs_equation_add_ic_by_dof_func(cs_equation_param_t *eqp, const char *z_name, cs_flag_t loc_flag, cs_dof_func_t *func, void *input)
Define the initial condition for the unknown related to this equation. This definition applies to a v...
Definition: cs_equation_param.cpp:2299
void cs_equation_param_set_sles(cs_equation_param_t *eqp)
Set parameters for initializing SLES structures used for the resolution of the linear system....
Definition: cs_equation_param.cpp:1568
cs_xdef_t * cs_equation_add_volume_mass_injection_by_value(cs_equation_param_t *eqp, const char *z_name, double *val)
Add a new volume mass injection definition source term by initializing a cs_xdef_t structure,...
Definition: cs_equation_param.cpp:3569
void cs_equation_set_param(cs_equation_param_t *eqp, cs_equation_key_t key, const char *keyval)
Definition: cs_equation_param.h:1712
static bool cs_equation_param_has_graddiv(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a grad-div term.
Definition: cs_equation_param.h:1366
#define CS_EQUATION_REACTION
Reaction term is needed.
Definition: cs_equation_param.h:101
cs_equation_key_t
List of available keys for setting the parameters of an equation.
Definition: cs_equation_param.h:1234
@ CS_EQKEY_SOLVER_RESTART
Definition: cs_equation_param.h:1267
@ CS_EQKEY_SOLVER_RTOL
Definition: cs_equation_param.h:1268
@ CS_EQKEY_ITSOL_RTOL
Definition: cs_equation_param.h:1260
@ CS_EQKEY_SADDLE_SOLVER
Definition: cs_equation_param.h:1279
@ CS_EQKEY_SOLVER_FAMILY
Definition: cs_equation_param.h:1284
@ CS_EQKEY_SOLVER_RESNORM_TYPE
Definition: cs_equation_param.h:1266
@ CS_EQKEY_SADDLE_PRECOND
Definition: cs_equation_param.h:1276
@ CS_EQKEY_ADV_EXTRAPOL
Definition: cs_equation_param.h:1237
@ CS_EQKEY_VERBOSITY
Definition: cs_equation_param.h:1288
@ CS_EQKEY_ITSOL_ATOL
Definition: cs_equation_param.h:1254
@ CS_EQKEY_HODGE_TIME_ALGO
Definition: cs_equation_param.h:1251
@ CS_EQKEY_ADV_STRATEGY
Definition: cs_equation_param.h:1240
@ CS_EQKEY_SADDLE_AUGMENT_SCALING
Definition: cs_equation_param.h:1273
@ CS_EQKEY_ITSOL_MAX_ITER
Definition: cs_equation_param.h:1257
@ CS_EQKEY_ITSOL
Definition: cs_equation_param.h:1253
@ CS_EQKEY_BC_WEAK_PENA_COEFF
Definition: cs_equation_param.h:1245
@ CS_EQKEY_HODGE_DIFF_COEF
Definition: cs_equation_param.h:1250
@ CS_EQKEY_SOLVER_MAX_ITER
Definition: cs_equation_param.h:1264
@ CS_EQKEY_ITSOL_DTOL
Definition: cs_equation_param.h:1255
@ CS_EQKEY_SADDLE_ATOL
Definition: cs_equation_param.h:1272
@ CS_EQKEY_SADDLE_SCHUR_APPROX
Definition: cs_equation_param.h:1278
@ CS_EQKEY_HODGE_DIFF_ALGO
Definition: cs_equation_param.h:1249
@ CS_EQKEY_AMG_TYPE
Definition: cs_equation_param.h:1242
@ CS_EQKEY_SADDLE_RTOL
Definition: cs_equation_param.h:1277
@ CS_EQKEY_ITSOL_RESNORM_TYPE
Definition: cs_equation_param.h:1258
@ CS_EQKEY_ITSOL_EPS
Definition: cs_equation_param.h:1256
@ CS_EQKEY_ADV_UPWIND_PORTION
Definition: cs_equation_param.h:1241
@ CS_EQKEY_SADDLE_MAX_ITER
Definition: cs_equation_param.h:1275
@ CS_EQKEY_SOLVER
Definition: cs_equation_param.h:1261
@ CS_EQKEY_TIME_SCHEME
Definition: cs_equation_param.h:1286
@ CS_EQKEY_DO_LUMPING
Definition: cs_equation_param.h:1246
@ CS_EQKEY_PRECOND
Definition: cs_equation_param.h:1270
@ CS_EQKEY_PRECOND_BLOCK_TYPE
Definition: cs_equation_param.h:1271
@ CS_EQKEY_ADV_SCHEME
Definition: cs_equation_param.h:1239
@ CS_EQKEY_SOLVER_ATOL
Definition: cs_equation_param.h:1262
@ CS_EQKEY_BC_STRONG_PENA_COEFF
Definition: cs_equation_param.h:1244
@ CS_EQKEY_TIME_THETA
Definition: cs_equation_param.h:1287
@ CS_EQKEY_SADDLE_SOLVER_CLASS
Definition: cs_equation_param.h:1280
@ CS_EQKEY_ADV_FORMULATION
Definition: cs_equation_param.h:1238
@ CS_EQKEY_SOLVER_NO_OP
Definition: cs_equation_param.h:1265
@ CS_EQKEY_EXTRA_OP
Definition: cs_equation_param.h:1248
@ CS_EQKEY_DOF_REDUCTION
Definition: cs_equation_param.h:1247
@ CS_EQKEY_SADDLE_DTOL
Definition: cs_equation_param.h:1274
@ CS_EQKEY_ITSOL_RESTART
Definition: cs_equation_param.h:1259
@ CS_EQKEY_SPACE_SCHEME
Definition: cs_equation_param.h:1285
@ CS_EQKEY_BC_ENFORCEMENT
Definition: cs_equation_param.h:1243
@ CS_EQKEY_SADDLE_VERBOSITY
Definition: cs_equation_param.h:1282
@ CS_EQKEY_HODGE_REAC_ALGO
Definition: cs_equation_param.h:1252
@ CS_EQKEY_OMP_ASSEMBLY_STRATEGY
Definition: cs_equation_param.h:1269
@ CS_EQKEY_SLES_VERBOSITY
Definition: cs_equation_param.h:1283
@ CS_EQKEY_SOLVER_DTOL
Definition: cs_equation_param.h:1263
@ CS_EQKEY_ADV_STAB_COEF
Definition: cs_equation_param.h:1236
@ CS_EQKEY_N_KEYS
Definition: cs_equation_param.h:1290
@ CS_EQKEY_SADDLE_SOLVER_RESTART
Definition: cs_equation_param.h:1281
static bool cs_equation_param_has_implicit_advection(const cs_equation_param_t *eqp)
Ask if the parameters of the equation induces an implicit treatment of the advection term.
Definition: cs_equation_param.h:1488
static bool cs_equation_param_has_internal_enforcement(const cs_equation_param_t *eqp)
Ask if the parameters of the equation has an internal enforcement of the degrees of freedom.
Definition: cs_equation_param.h:1467
void cs_equation_add_curlcurl(cs_equation_param_t *eqp, cs_property_t *property, int inversion)
Associate a new term related to the curl-curl operator for the equation associated to the given cs_eq...
Definition: cs_equation_param.cpp:3151
cs_param_saddle_t * cs_equation_param_get_saddle_param(cs_equation_param_t *eqp)
Get the pointer to the set of parameters to handle a saddle-point solver This is only useful if some ...
Definition: cs_equation_param.cpp:1549
cs_xdef_t * cs_equation_add_source_term_by_analytic(cs_equation_param_t *eqp, const char *z_name, cs_analytic_func_t *func, void *input)
Add a new source term by initializing a cs_xdef_t structure. Case of a definition by an analytical fu...
Definition: cs_equation_param.cpp:3374
void cs_equation_param_ensure_consistent_settings(cs_equation_param_t *eqp)
At this stage, the numerical settings should not be modified anymore by the user. One makes a last se...
Definition: cs_equation_param.cpp:1687
void cs_equation_param_set_quadrature_to_all(cs_equation_param_t *eqp, cs_quadrature_type_t qtype)
Apply the given quadrature rule to all existing definitions under the cs_equation_param_t structure.
Definition: cs_equation_param.cpp:1611
#define CS_EQUATION_FORCE_VALUES
Add an algebraic manipulation to set the value of a given set of interior degrees of freedom.
Definition: cs_equation_param.h:102
cs_xdef_t * cs_equation_add_source_term_by_val(cs_equation_param_t *eqp, const char *z_name, cs_real_t *val)
Add a new source term by initializing a cs_xdef_t structure. Case of a definition by a constant value...
Definition: cs_equation_param.cpp:3323
void cs_equation_add_advection_scaling_property(cs_equation_param_t *eqp, cs_property_t *property)
Associate a scaling property to the advection.
Definition: cs_equation_param.cpp:3257
void cs_equation_add_xdef_bc(cs_equation_param_t *eqp, cs_xdef_t *xdef)
Set a boundary condition from an existing cs_xdef_t structure The lifecycle of the cs_xdef_t structur...
Definition: cs_equation_param.cpp:2352
cs_xdef_t * cs_equation_add_source_term_by_dof_func(cs_equation_param_t *eqp, const char *z_name, cs_flag_t loc_flag, cs_dof_func_t *func, void *input)
Add a new source term by initializing a cs_xdef_t structure. Case of a definition by a DoF function.
Definition: cs_equation_param.cpp:3428
#define CS_EQUATION_BUILD_HOOK
Activate a build hook function to get a fine control of the discretization process during the cellwis...
Definition: cs_equation_param.h:104
void cs_equation_add_advection(cs_equation_param_t *eqp, cs_adv_field_t *adv_field)
Associate a new term related to the advection operator for the equation associated to the given cs_eq...
Definition: cs_equation_param.cpp:3233
void cs_equation_param_clear(cs_equation_param_t *eqp)
Free the contents of a cs_equation_param_t.
Definition: cs_equation_param.cpp:1384
#define CS_EQUATION_CONVECTION
Convection term is needed.
Definition: cs_equation_param.h:97
cs_xdef_t * cs_equation_add_volume_mass_injection_by_array(cs_equation_param_t *eqp, const char *z_name, cs_flag_t loc_flag, cs_real_t *array, bool is_owner, bool full_length)
Add a new volume mass injection definition source term by initializing a cs_xdef_t structure,...
Definition: cs_equation_param.cpp:3785
static bool cs_equation_param_has_sourceterm(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a source term.
Definition: cs_equation_param.h:1446
cs_enforcement_param_t * cs_equation_add_cell_enforcement(cs_equation_param_t *eqp, cs_lnum_t n_cells, const cs_lnum_t elt_ids[], const cs_real_t ref_value[], const cs_real_t cell_values[])
Add an enforcement of the value related to the degrees of freedom associated to the list of selected ...
Definition: cs_equation_param.cpp:4080
cs_xdef_t * cs_equation_add_volume_mass_injection_by_qov(cs_equation_param_t *eqp, const char *z_name, double *quantity)
Add a new volume mass injection definition source term by initializing a cs_xdef_t structure,...
Definition: cs_equation_param.cpp:3618
cs_param_sles_t * cs_equation_param_get_sles_param(cs_equation_param_t *eqp)
Get the pointer to the set of parameters to handle the SLES solver associated to this set of equation...
Definition: cs_equation_param.cpp:1527
void cs_equation_param_copy_from(const cs_equation_param_t *ref, cs_equation_param_t *dst, bool copy_fld_id)
Copy the settings from one cs_equation_param_t structure to another one. The name is not copied.
Definition: cs_equation_param.cpp:1117
cs_equation_param_t * cs_equation_param_create(const char *name, cs_equation_type_t type, int dim, cs_param_bc_type_t default_bc)
Create a cs_equation_param_t structure with the given parameters. The remaining parameters are set wi...
Definition: cs_equation_param.cpp:900
cs_equation_param_t * cs_equation_create_param(const char *name, cs_equation_type_t type, int dim, cs_param_bc_type_t default_bc)
Definition: cs_equation_param.h:1590
static bool cs_equation_param_has_name(cs_equation_param_t *eqp, const char *name)
Check if a cs_equation_param_t structure has its name member equal to the given name.
Definition: cs_equation_param.h:1537
cs_xdef_t * cs_equation_add_bc_by_value(cs_equation_param_t *eqp, const cs_param_bc_type_t bc_type, const char *z_name, cs_real_t *values)
Define and initialize a new structure to set a boundary condition related to the given equation struc...
Definition: cs_equation_param.cpp:2380
cs_enforcement_param_t * cs_equation_add_or_replace_cell_enforcement(cs_equation_param_t *eqp, int enforcement_id, cs_lnum_t n_cells, const cs_lnum_t cell_ids[], const cs_real_t ref_value[], const cs_real_t cell_values[])
Add a new enforcement if enforcement_id does not exist or replace it otherwise. Enforcement of the va...
Definition: cs_equation_param.cpp:4146
cs_enforcement_param_t * cs_equation_add_vertex_dof_enforcement(cs_equation_param_t *eqp, cs_lnum_t n_vertices, const cs_lnum_t vertex_ids[], const cs_real_t ref_value[], const cs_real_t vtx_values[])
Add an enforcement of the value of degrees of freedom located at the mesh vertices....
Definition: cs_equation_param.cpp:3862
static void cs_equation_param_set_flag(cs_equation_param_t *eqp, cs_flag_t flag)
Update the flag related to a cs_equation_param_t structure.
Definition: cs_equation_param.h:1308
static bool cs_equation_param_has_diffusion(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a diffusion term.
Definition: cs_equation_param.h:1326
void cs_equation_copy_param_from(const cs_equation_param_t *ref, cs_equation_param_t *dst, bool copy_fid)
Definition: cs_equation_param.h:1644
void cs_equation_add_time(cs_equation_param_t *eqp, cs_property_t *property)
Associate a new term related to the time derivative operator for the equation associated to the given...
Definition: cs_equation_param.cpp:3208
#define CS_EQUATION_GRADDIV
The term related to the grad-div operator is needed.
Definition: cs_equation_param.h:100
cs_equation_type_t
Type of equations managed by the solver.
Definition: cs_equation_param.h:169
@ CS_EQUATION_TYPE_NAVSTO
Definition: cs_equation_param.h:173
@ CS_EQUATION_TYPE_USER
Definition: cs_equation_param.h:177
@ CS_EQUATION_TYPE_THERMAL
Definition: cs_equation_param.h:175
@ CS_EQUATION_TYPE_GROUNDWATER
Definition: cs_equation_param.h:171
@ CS_EQUATION_TYPE_SOLIDIFICATION
Definition: cs_equation_param.h:176
@ CS_EQUATION_TYPE_PREDEFINED
Definition: cs_equation_param.h:174
@ CS_EQUATION_N_TYPES
Definition: cs_equation_param.h:179
@ CS_EQUATION_TYPE_MAXWELL
Definition: cs_equation_param.h:172
static bool cs_equation_param_has_convection(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a convection term.
Definition: cs_equation_param.h:1386
static bool cs_equation_param_has_user_hook(const cs_equation_param_t *eqp)
Ask if the parameters of the equation has activated a user hook to get a fine tuning of the cellwise ...
Definition: cs_equation_param.h:1514
static bool cs_equation_param_has_reaction(const cs_equation_param_t *eqp)
Ask if the parameters of the equation needs a reaction term.
Definition: cs_equation_param.h:1406
void cs_equation_add_diffusion(cs_equation_param_t *eqp, cs_property_t *property)
Associate a new term related to the Laplacian operator for the equation associated to the given cs_eq...
Definition: cs_equation_param.cpp:3125
void cs_equation_param_log(const cs_equation_param_t *eqp)
Print the detail of a cs_equation_param_t structure.
Definition: cs_equation_param.cpp:1762
void cs_equation_param_copy_bc(const cs_equation_param_t *ref, cs_equation_param_t *dst)
Copy only the part dedicated to the boundary conditions and the DoF (degrees of freedom) enforcement ...
Definition: cs_equation_param.cpp:1322
cs_xdef_t * cs_equation_add_volume_mass_injection_by_analytic(cs_equation_param_t *eqp, const char *z_name, cs_analytic_func_t *func, void *input)
Add a new volume mass injection definition source term by initializing a cs_xdef_t structure,...
Definition: cs_equation_param.cpp:3667
Handle the settings of saddle-point systems. These systems arise from the monolithic coupling of the ...
Structure and routines handling the SLES ((Sparse Linear Equation Solver) settings stored inside a cs...
void() cs_dof_func_t(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, void *input, cs_real_t *retval)
Generic function pointer for computing a quantity at predefined locations such as degrees of freedom ...
Definition: cs_param_types.h:154
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition: cs_param_types.h:215
cs_param_advection_form_t
Definition: cs_param_types.h:312
void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool dense_output, void *input, cs_real_t *retval)
Generic function pointer for an evaluation relying on an analytic function.
Definition: cs_param_types.h:127
cs_param_bc_type_t
Definition: cs_param_types.h:501
cs_param_advection_extrapol_t
Choice of how to extrapolate the advection field in the advection term.
Definition: cs_param_types.h:444
cs_param_bc_enforce_t
Definition: cs_param_types.h:587
void() cs_time_func_t(double time, void *input, cs_real_t *retval)
Function which defines the evolution of a quantity according to the current time and any structure gi...
Definition: cs_param_types.h:172
cs_param_time_scheme_t
Definition: cs_param_types.h:279
cs_param_nl_algo_t
Class of non-linear iterative algorithm.
Definition: cs_param_types.h:715
cs_param_advection_scheme_t
Definition: cs_param_types.h:371
cs_param_dof_reduction_t
Definition: cs_param_types.h:244
cs_param_advection_strategy_t
Choice of how to handle the advection term in an equation.
Definition: cs_param_types.h:409
@ CS_PARAM_ADVECTION_IMPLICIT_LINEARIZED
Definition: cs_param_types.h:412
@ CS_PARAM_ADVECTION_IMPLICIT_FULL
Definition: cs_param_types.h:411
cs_quadrature_type_t
Type of quadrature to use when computing an integral quantity. This rationale is used for integrals a...
Definition: cs_quadrature.h:79
Definition: field.f90:27
Definition: cs_advection_field.h:151
Set of data defining an enforcement.
Definition: cs_enforcement.h:85
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:190
cs_real_t strong_pena_bc_coeff
Definition: cs_equation_param.h:573
int istat
Definition: cs_equation_param.h:493
cs_real_t upwind_portion
Definition: cs_equation_param.h:721
int imligr
Definition: cs_equation_param.h:507
int convection_limiter_id
Definition: cs_equation_param.h:529
int n_reaction_terms
Definition: cs_equation_param.h:747
cs_param_nl_algo_t incremental_algo_type
Definition: cs_equation_param.h:846
int ndircl
Definition: cs_equation_param.h:495
cs_real_t weak_pena_bc_coeff
Definition: cs_equation_param.h:574
double blencv
Definition: cs_equation_param.h:513
cs_param_bc_enforce_t default_enforcement
Definition: cs_equation_param.h:572
cs_xdef_t ** volume_mass_injections
Definition: cs_equation_param.h:785
cs_property_t * diffusion_property
Definition: cs_equation_param.h:637
cs_param_sles_t * sles_param
Definition: cs_equation_param.h:843
int isstpc
Definition: cs_equation_param.h:502
cs_enforcement_param_t ** enforcement_params
Definition: cs_equation_param.h:806
double d_climgr
Definition: cs_equation_param.h:519
int b_rc_gradient
Definition: cs_equation_param.h:525
int space_poly_degree
Definition: cs_equation_param.h:231
int ibdtso
Definition: cs_equation_param.h:501
cs_real_t incremental_relax_factor
Definition: cs_equation_param.h:848
cs_runge_kutta_def_t rk_def
Definition: cs_equation_param.h:531
int nswrsm
Definition: cs_equation_param.h:504
cs_param_advection_scheme_t adv_scheme
Definition: cs_equation_param.h:718
int idften
Definition: cs_equation_param.h:498
cs_property_t * curlcurl_property
Definition: cs_equation_param.h:653
double epsrsm
Definition: cs_equation_param.h:516
cs_xdef_t ** ic_defs
Definition: cs_equation_param.h:589
int idiff
Definition: cs_equation_param.h:496
double relaxv
Definition: cs_equation_param.h:522
cs_param_time_scheme_t time_scheme
Definition: cs_equation_param.h:622
int idifft
Definition: cs_equation_param.h:497
cs_hodge_param_t reaction_hodgep
Definition: cs_equation_param.h:746
cs_hodge_param_t graddiv_hodgep
Definition: cs_equation_param.h:668
int imrgra
Definition: cs_equation_param.h:506
int iswdyn
Definition: cs_equation_param.h:499
cs_xdef_t ** source_terms
Definition: cs_equation_param.h:765
cs_hodge_param_t time_hodgep
Definition: cs_equation_param.h:620
int idircl
Definition: cs_equation_param.h:494
cs_param_saddle_t * saddle_param
Definition: cs_equation_param.h:844
cs_param_advection_strategy_t adv_strategy
Definition: cs_equation_param.h:719
cs_adv_field_t * adv_field
Definition: cs_equation_param.h:724
bool time_control_owner
Definition: cs_equation_param.h:853
int n_ic_defs
Definition: cs_equation_param.h:588
int dim
Definition: cs_equation_param.h:199
double epsilo
Definition: cs_equation_param.h:515
int nswrgr
Definition: cs_equation_param.h:503
bool do_lumping
Definition: cs_equation_param.h:603
cs_flag_t flag
Definition: cs_equation_param.h:213
cs_flag_t post_flag
Definition: cs_equation_param.h:220
int diffusion_limiter_id
Definition: cs_equation_param.h:528
double b_rc_clip_factor
Definition: cs_equation_param.h:521
int d_gradient_r
Definition: cs_equation_param.h:524
cs_hodge_param_t curlcurl_hodgep
Definition: cs_equation_param.h:652
cs_hodge_param_t diffusion_hodgep
Definition: cs_equation_param.h:636
cs_param_dof_reduction_t dof_reduction
Definition: cs_equation_param.h:225
int verbosity
Definition: cs_equation_param.h:206
double epsrgr
Definition: cs_equation_param.h:517
cs_equation_type_t type
Definition: cs_equation_param.h:198
int n_source_terms
Definition: cs_equation_param.h:764
cs_param_convergence_t incremental_algo_cvg
Definition: cs_equation_param.h:847
cs_property_t * graddiv_property
Definition: cs_equation_param.h:669
int b_diff_flux_rc
Definition: cs_equation_param.h:526
double climgr
Definition: cs_equation_param.h:518
cs_property_t ** reaction_properties
Definition: cs_equation_param.h:748
cs_param_advection_form_t adv_formulation
Definition: cs_equation_param.h:717
cs_property_t * adv_scaling_property
Definition: cs_equation_param.h:725
cs_xdef_t ** bc_defs
Definition: cs_equation_param.h:570
double stab_scaling_coef
Definition: cs_equation_param.h:722
int d_imligr
Definition: cs_equation_param.h:508
int icoupl
Definition: cs_equation_param.h:511
int imvisf
Definition: cs_equation_param.h:505
int n_volume_mass_injections
Definition: cs_equation_param.h:784
int iwgrec
Definition: cs_equation_param.h:510
int n_bc_defs
Definition: cs_equation_param.h:569
cs_property_t * time_property
Definition: cs_equation_param.h:621
cs_time_control_t * time_control
Definition: cs_equation_param.h:855
cs_param_advection_extrapol_t adv_extrapol
Definition: cs_equation_param.h:720
int ischcv
Definition: cs_equation_param.h:500
cs_param_bc_type_t default_bc
Definition: cs_equation_param.h:568
char *restrict name
Definition: cs_equation_param.h:197
int n_enforcements
Definition: cs_equation_param.h:805
cs_param_space_scheme_t space_scheme
Definition: cs_equation_param.h:224
cs_iter_algo_param_aac_t incremental_anderson_param
Definition: cs_equation_param.h:849
int ircflu
Definition: cs_equation_param.h:509
int iconv
Definition: cs_equation_param.h:492
double theta
Definition: cs_equation_param.h:512
double blend_st
Definition: cs_equation_param.h:514
double rc_clip_factor
Definition: cs_equation_param.h:520
Structure storing all metadata/parameters related to the usage of a discrete Hodge operator.
Definition: cs_hodge.h:147
Structure storing all the parameters to drive the algorithm called Anderson acceleration.
Definition: cs_iter_algo.h:134
Set of parameters to check the convergence (or the divergence) of an iterative process (tolerances or...
Definition: cs_param_types.h:603
Structure storing all metadata related to the resolution of a saddle-point linear system....
Definition: cs_param_saddle.h:280
Structure storing all metadata related to the resolution of a linear system with an iterative solver.
Definition: cs_param_sles.h:63
Structure associated to the definition of a property relying on the cs_xdef_t structure.
Definition: cs_runge_kutta_integrator_param.h:86
Structure storing medata for defining a quantity in a very flexible way.
Definition: cs_xdef.h:156