# `feelpp_hm_heat_moisture`

## 1. Name

`feelpp_hm_heat_moisture` - heat and moisture transfer toolbox application.

## 2. Synopsis

```feelpp_hm_heat_moisture --case <directory to model case> --mod-file <path to json file>
[--ts.time-step <time step>]
[--ts.time-final <time final>]
[--hm.export {all | <times vector>}]
[--hm.picard {true|false}]
[--fit.datafile <C_pw file name>]```

## 3. Desciption

`feelpp_hm_heat_moisture` is an application which can run heat and moisture transfer model defined by a set of files : a geometry or mesh, a config file(`.cfg`) and a model file(`.json`).

The execution steps are as follows :

• setup model (materials, initial and boundary condition)

• execute the simuation

• post-process the resuls, viewable in paraview or ensight

### 3.1. Options

`feelpp_hm_heat_moisture` requires some options.

Table 1. Table of command-line `feelpp_hm_heat_moisture` options
Name Description Default value Possible Values

`ts.time-step`

time between two steps of the simulation (in second)

1

`ts.time-final`

final time of the simulation (in second)

1

`hm.export`

times where solution is exported

`all`

`all` or `{t0,t1,…​}`

`hm.picard`

enable or disable the substeps with the Picard loop

`false`

`false` or `true`

`picard.tol`

Picard tolerance

`1E-5`

`picard.relax`

Picard relaxation

`0.5`

`picard.maxiter`

picard maximum iteration

`20`

`picard.verbose`

picard verbose iteration

`true`

`{heat|moisture}.ksp-monitor`

monitor the Krylov Subspace iterations

0

0,1

`{heat|moisture}.ksp-view`

view the Krylov Subspace structure

0

0,1

`{heat|moisture}.ksp-type`

change the Krylov Subspace method

`gmres`

see PETSc documentation

`{heat|moisture}.pc-view`

view the Krylov Subspace structure

0

0,1

`{heat|moisture}.pc-type`

change the Krylov Subspace strategy

`lu`

see PETSc documentation

`{heat|moisture}.snes-monitor`

if applicable, monitor the non-linear solver iterations

0

0,1

`{heat|moisture}.snes-type`

if applicable, change the non-linear solver iterations

`newtonls`

see PETSc documentation

`fit.datafile`

If needed, path to the csv file containing the data of the water heat capacity at constant pressure $C_{p,w}$ depending on the temperature. Such a file can be found here

### 3.2. JSON file

Parameters

Set the values of the parameters for the simulation, that don’t depend on the physic.

``````"Parameters":
{
"name1":"value1",
"name2":"value2",
...
}``````

The possible parameter names are : `Mw`, `T_ref`, `R_h20`, `rho_w`, `L_v`, `Q`, `G`. To see to what correspond thoses parameters, see the documentation.

Materials

Define the domain, and the physic which is applied on that domain. This section allows to define the coefficients that depend on the physic (constant or not). Here is an example of usage.

``````"Materials":
{
"Omega":
{
"physics":["heat-moisture"],
"markers":["Omega"],
"rho_sC_ps":"1.824e6",
"w":"146. / pow(1 + pow((-8e-8)*R_h20 * T_ref * rho_w * log(phi),1.6),.375):R_h20:T_ref:rho_w:phi",
"p_suc":"0.125e8 * pow( pow(146./w,1./.375) - 1,0.625 ):w",
"delta_p":"( 1 / ( R_h20 * T_ref ) ) * 0.00000013 * (1 - w/146) / (0.503 * pow(1 - w/146,2.) + 0.497):R_h20:T_ref:w",
"K":"exp( -39.2619 + 0.0704*(w-73) - 1.7420e-4*pow(w-73,2) - 2.7953e-6*pow(w-73,3) - 1.1566e-7*pow(w-73,4) + 2.5969e-9*pow(w-73,5)):w",
"k_eff":"1.5 + 15.8/1000 * w:w"
}
}``````

The different physic names available are : `heat`, `moisture` and `heat-moisture`.

Boundary Conditions

See the Feel++ documentation. The boundary conditions possible are `Dirichlet` and `Neumann`.

Initial Conditions

See the Feel++ documentation. The initial conditions are applied to `T` and `phi`.

Post Process

See the Feel++ documentation. Only the `Exports` section is available.