Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
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).
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:
"brinkman"
type design.The following mappings are currently implemented in Neko-top
.
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 |
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 |
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. |