Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
A RAMP mapping of coefficients This is the standard RAMP described in https://doi.org/10.1007/s001580100129. More...
Public Member Functions | |
procedure, pass(this) | init (this, json, coef) |
Constructor from json. | |
procedure, pass(this) | init_from_attributes (this, coef, f_min, f_max, q, convex_up) |
Actual constructor. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | forward_mapping (this, x_out, x_in) |
Apply the forward mapping. | |
procedure, pass(this) | backward_mapping (this, sens_out, sens_in, x_in) |
Apply the adjoint mapping. | |
procedure, pass(this) | init_base (this, json, coef) |
Constructor for the mapping_t class. | |
procedure, pass(this) | free_base (this) |
Destructor for the mapping_t (base) class. | |
procedure, pass(this) | apply_forward (this, x_out, x_in) |
Apply the forward mapping. | |
procedure, pass(this) | apply_backward (this, sens_out, sens_in) |
Apply the backward mapping (ie, chain rule) | |
procedure(mapping_init), deferred, pass | init (this, json, coef) |
The common constructor using a JSON dictionary. | |
procedure(mapping_free), deferred, pass | free (this) |
Destructor. | |
procedure(mapping_forward_mapping), deferred, pass | forward_mapping (this, x_out, x_in) |
forward mapping to be computed | |
procedure(mapping_backward_mapping), deferred, pass | backward_mapping (this, sens_out, sens_in, x_in) |
Backward mapping to be computed. | |
Public Attributes | |
real(kind=rp) | f_min |
minimum value | |
real(kind=rp) | f_max |
maximum value | |
real(kind=rp) | q |
penalty parameter | |
logical | convex_up |
Convexity of the mapping (with lower being the standard RAMP and upper being that used by Borrvall & Peterson) | |
type(coef_t), pointer | coef => null() |
Coefficients for the SEM. | |
type(field_t) | x_in |
A copy of the unmapped field (often used for chain rule) | |
\(f(x) = f_{min} + (f_{max} - f_{min}) \frac{x}{1 + q(1 - x)}\)
| . | . | . | .. | ... |_________
or a convex up equivelent used by Borrvall & Peterson https://doi.org/10.1002/fld.1964
\(f(x) = f_{min} + (f_{max} - f_{min}) x \frac{q + 1}{q + x}\)
It seems very similar to RAMP but with the convexity the other way
| ... | .. | . | . |. |_________
Definition at line 78 of file RAMP_mapping.f90.
|
inherited |
this | The mapping object |
sens_in | sensitivity wrt to the mapped field ( \(\frac{\partial F}{\partial \tilde{\rho}}\)) |
sens_out | sensitivity wrt to the unmapped field ( \(\frac{\partial F}{\partial \rho}\)) |
Definition at line 59 of file mapping.f90.
|
inherited |
this | The mapping object |
X_out | The mapped field ( \(\tilde{\rho}\)) |
X_in | The unmapped field ( \(\rho\)) |
Definition at line 57 of file mapping.f90.
|
pure virtualinherited |
Definition at line 67 of file mapping.f90.
procedure, pass(this) ramp_mapping::ramp_mapping_t::backward_mapping | ( | class(ramp_mapping_t), intent(inout) | this, |
type(field_t), intent(inout) | sens_out, | ||
type(field_t), intent(in) | sens_in, | ||
type(field_t), intent(in) | x_in | ||
) |
this | mapping |
sens_out | is the sensitivity with respect to the unfiltered design |
sens_in | is the sensitivity with respect to the filtered design |
X_in | unmapped field |
Definition at line 100 of file RAMP_mapping.f90.
|
pure virtualinherited |
Definition at line 65 of file mapping.f90.
procedure, pass(this) ramp_mapping::ramp_mapping_t::forward_mapping | ( | class(ramp_mapping_t), intent(inout) | this, |
type(field_t), intent(inout) | x_out, | ||
type(field_t), intent(in) | x_in | ||
) |
this | mapping |
X_out | mapped field |
X_in | unmapped field |
Definition at line 98 of file RAMP_mapping.f90.
|
pure virtualinherited |
Definition at line 63 of file mapping.f90.
procedure, pass(this) ramp_mapping::ramp_mapping_t::free | ( | class(ramp_mapping_t), intent(inout) | this | ) |
Definition at line 96 of file RAMP_mapping.f90.
|
inherited |
Definition at line 55 of file mapping.f90.
|
pure virtualinherited |
Definition at line 61 of file mapping.f90.
procedure, pass(this) ramp_mapping::ramp_mapping_t::init | ( | class(ramp_mapping_t), intent(inout) | this, |
type(json_file), intent(inout) | json, | ||
type(coef_t), intent(inout) | coef | ||
) |
Definition at line 91 of file RAMP_mapping.f90.
|
inherited |
Definition at line 53 of file mapping.f90.
procedure, pass(this) ramp_mapping::ramp_mapping_t::init_from_attributes | ( | class(ramp_mapping_t), intent(inout) | this, |
type(coef_t), intent(inout) | coef, | ||
real(kind=rp), intent(in) | f_min, | ||
real(kind=rp), intent(in) | f_max, | ||
real(kind=rp), intent(in) | q, | ||
logical, intent(in) | convex_up | ||
) |
Definition at line 93 of file RAMP_mapping.f90.
|
inherited |
Definition at line 47 of file mapping.f90.
logical ramp_mapping::ramp_mapping_t::convex_up |
Definition at line 87 of file RAMP_mapping.f90.
real(kind=rp) ramp_mapping::ramp_mapping_t::f_max |
Definition at line 82 of file RAMP_mapping.f90.
real(kind=rp) ramp_mapping::ramp_mapping_t::f_min |
Definition at line 80 of file RAMP_mapping.f90.
real(kind=rp) ramp_mapping::ramp_mapping_t::q |
Definition at line 84 of file RAMP_mapping.f90.
|
inherited |
Definition at line 49 of file mapping.f90.