1. Thermoelectric nonlinear
1.1. Problem
This application generates reduced basis and does convergence tests on a thermoelectric nonlinear problem, where the electric and thermal conductivy depend on the temperature.
This problem is parametrized:
-
\(\sigma\) can depend on parameters such as \(\sigma_0,\alpha\) in addition of the temperature,
-
\(k\) can depend on parameters such as \(\sigma_0,k_0,L,\alpha\) in addition of the temperature,
-
\(g_D, g_R^1, g_R^2\) can depend on parameters such as \(h,T_w,V_D\)
where:
-
\(\alpha\) is the temperature coefficient of resistivity
-
\(h\) is the heat exchange coefficient
-
\(T_w\) is the water temperature
-
\(V_D\) is a difference of electric potential
Note that \(\Omega_V\) and \(\Omega_T\) can be different.
The Empirical Interpolation method will be used to deal with non linear terms, \(\sigma(T),k(T),\sigma(T)\nabla V\cdot\nabla V\). Alternatively, we can use the Discrete version of EIM to deal with the affine decomposition (WIP).
1.2. Options
The applicaiton can be piloted via a set of options, the more important are:
thermoelectric.filename
-
path of the model file in json format, see the following section
thermoekectric.trainset-eim-size
-
the size of the trainset for EIM/DEIM
thermoelectric.basename
-
the name of the database
gmsh.filename
-
path of the geometry
crb.rebuild-database
-
boolean to rebuild the database
crb.output-index
-
index of the output to use
crb.dimension-max
-
maximum dimension of the reduced basis
crb.error-type
-
error type (0: residual, 1: residual with scm, 2: random, 3: empirical)
eim.rebuild-database
-
boolean to rebuild the EIM database
eim.dimension-max
-
maximum dimension of the EIM basis
ser.rb-frequency
-
number of RB basis built per step of SER process, 0 : no SER
ser.eim-frequency
-
number of EIM basis built per step of SER process, 0 : no SER
1.3. Model file
The model to use, materials, boundary conditions, outputs, is set via a model file with the following sections.
"Parameters": (1)
{
"sigma": (2)
{
"value":55e+3, (3)
"min":50e+3, (4)
"max":60e+3 (5)
},
-
<1>: name of the section
-
<2>: name of the parameter
-
<3>: value of the parameter, might be used as default parameter
-
<4>: minimum of the parameter
-
<5>: maximum of the parameter
If a parameter does not have a min/max, it can be used in the application but will not be used to build the reduced basis, ie it won’t be possible to change it afterwards.
"Materials": (1)
{
"omega": (2)
{
"physics": ["thermic","electric"], (3)
"misc": (4)
{
"sigmaKey": "sigma", (5)
"alphaKey": "alpha" (6)
}
}
-
<1>: name of the section
-
<2>: name of the material
-
<3>: physics of the material, can be
thermic
orelectric
or both -
<4>: miscalleneous properties of the material
-
<5>: the name of the parameter to use for
sigma
-
<6>: the name of the parameter to use for
alpha
"BoundaryConditions": (1)
{
"field": (2)
{
"type": (3)
{
"marker": (4)
{
"expr":"expression" (5)
"expr1":"expression" (6)
"expr2":"expression" (7)
"material":"omega" (8)
}
}
}
}
-
<1>: name of the section
-
<2>: name of the field: can be either
potential
ortemperature
-
<3>: type of the condition: can be
Dirichlet
forpotential
orRobin
for `temperature -
<4>: marker on which to apply the condition
-
<5>: expression for the Dirichlet condition \(g_D\), can depend on the parameters
-
<6>: first expression for the Robin condition \(g_R^1\), can depend on the parameters
-
<7>: second expression for the Robin condition \(g_R^2\), can depend on the parameters
-
<8>: name of the material to use for weak Dirichlet conditions
"Outputs": (1)
{
"average_temp": (2)
{
"type":"averageTemp", (3)
"markers":"omega", (4)
"topodim":3 (5)
},
"intensity":
{
"type":"intensity",
"markers":"V0",
"topodim":2
},
"point1":
{
"type":"point",
"coord":"{0,1.5,1}", (6)
"field":"electric-potential" (7)
},
-
<1>: name of the section
-
<2>: name of the output
-
<3>: type of the output: can be
averageTemp
for the average temperature,intensity
for the intensity of the electric field orpoint
for the value of field at a point -
<4>: marker on which applying the ouptut, only for
averageTemp
andintensity
-
<5>: topological dimension of the marker
-
<6>: coordinates of the point
-
<7>: field to compute the value, can be
eletric-potential
ortemperature
Be careful that the order in the json does not corresponds to the index given in the option crb.output-index
.