Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
Mapping cascade

In topology optimization problem we consider an abstract material indicator which we denote here by \(\rho(\mathbf{x}) \in [0,1]\), where \(\mathbf{x}\) are the spatial coordinates. The influence of this design on a physics simulation is commonly modelled by introducing additional coefficients into the PDE being solved. In the case of fluid mechanics problems, a common approach is Brinkman penalization, where an additional forcing term \(\mathbf{f} = - \chi \mathbf{u}\) is added to the Navier-Stokes equations (more information can be found in Brinkman source term).

Note
For conjugate heat transfer problems one may also map to a thermal conductivity \(\kappa\), however this is currently not supported in neko-top.

A mapping_t provides functionality for the mapping \(X_\text{in} \mapsto X_\text{out}\) as well as providing functionality to propagate sensitivity information via the chain rule, i.e. \(\frac{\partial \mathcal{F}}{\partial X_\text{out}} \mapsto \frac{\partial \mathcal{F}}{\partial X_\text{in}}\).

The mapping_cascade_t enables complex composite mappings to be combined

\[ X_1 \mapsto X_2 \mapsto ... \mapsto X_n, \]

and enables sensitivity information to be propagated back through the cascade

\[ \frac{\partial \mathcal{F}}{\partial X_n} \mapsto ... \mapsto \frac{\partial \mathcal{F}}{\partial X_1}. \]

The mapping cascade can be prescribed in the "design" section of the .case file under the list "mapping", for example:

"design": {
"type": "brinkman",
"mapping" : [
{
"type": "PDE_filter",
"r": 0.01
},
{
"type": "RAMP",
"f_max": 1000
}
],
Attention
It is important to note that the order in which the mappings occur in the case file is the order in which they will be executed. In the above example this corresponds to applying a filter first, and then a RAMP mapping.
Note
Currently the mapping cascade is only applicable to the "brinkman" type design.

Mappings

The following mappings are currently implemented in Neko-top.

  1. PDE filter
  2. Linear mapping
  3. RAMP mapping

PDE based filter

A filter based on the work of B. S. Lazarov, O. Sigmund that solves a Helmholtz-type differential equation to provide smoothing. The equation has the form

\[ -r^2 \nabla^2 X_\text{out} + X_\text{out} = X_\text{in}, \]

subject to Neumann boundary conditions. The filter can be selected by prescribing "type": "PDE_filter" and has the following input parameters:

Name Description Admissible values Default value
r \(r\) is the above equation. Real -
tol The desired tolerance used when solving the system. Real 0.0000000001
max_iter Maximum number of iterations when solving the system. Integer 200
solver Numerical solver used to solve the system. cg,gmres, gmres cg
preconditioner Pre-conditioner used to solve the system. ident, hsmg, jacobi jacobi

Linear mapping

A linear mapping of the form

\[ X_\text{out} = f_\text{min} + (f_\text{max} - f_\text{min}) X_\text{in}. \]

The mapping can be selected by prescribing "type": "linear" and has the following input parameters:

Name Description Admissible values Default value
f_max \(f_\text{max}\) in the above equation. Real -
f_min \(f_\text{min}\) in the above equation. Real 0.0

RAMP mapping

A mapping based on the RAMP taking the following two forms depending on the convexity,

concave up:

\[ X_\text{out} = f_\text{min} + (f_\text{max} - f_\text{min}) \frac{X_\text{in}}{1 +q(1 - X_\text{in})} \]

concave down:

\[ X_\text{out} = f_\text{min} + (f_\text{max} - f_\text{min}) \frac{X_\text{in}(q + 1)}{q + X_\text{in}} \]

The mapping can be selected by prescribing "type": "RAMP" and has the following input parameters:

Name Description Admissible values Default value
f_max \(f_\text{max}\) in the above equation. Real -
f_min \(f_\text{min}\) in the above equation. Real 0.0
q \(q\) in the above equation. Real 1.0
convex_up The convexity used in the above equation. .true. or .false. .true.