|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
The base functional type. More...


Public Member Functions | |
| generic | init (this, json, design) |
| Constructor interface. | |
| generic | init (this, json, design, simulation) |
| Constructor interface. | |
| procedure, pass(this) | init_json (this, json, design) |
| Constructor based on json input. | |
| procedure, pass(this) | init_json_sim (this, json, design, simulation) |
| Constructor based on json input and simulation. | |
| procedure(functional_free), deferred, pass | free (this) |
| Destructor. | |
| procedure(functional_update_value), deferred, pass | update_value (this, design) |
| Update the value of the function. | |
| procedure(functional_update_sensitivity), deferred, pass | update_sensitivity (this, design) |
| Update the sensitivity of the function. | |
| procedure, pass(this) | get_value (this) |
| Get the value of the function. | |
| procedure, pass(this) | get_sensitivity (this, sensitivity) |
| Get the sensitivity of the function. | |
| procedure, pass(this) | reset_value (this) |
| Set the value to zero. | |
| procedure, pass(this) | reset_sensitivity (this) |
| Set the sensitivity to zero. | |
| procedure, pass(this) | accumulate_value (this, design, dt) |
| Accumulate the value. | |
| procedure, pass(this) | accumulate_sensitivity (this, design, dt) |
| Accumulate the sensitivity. | |
Public Attributes | |
| real(kind=rp) | value = 0.0_rp |
| Value of the base_functional. | |
| real(kind=rp) | value_old = 0.0_rp |
| Old value for time integration. | |
| type(vector_t) | sensitivity |
| Sensitivity field. | |
| type(vector_t) | sensitivity_old |
| Old sensitivity field for time integration. | |
| character(len=25) | name = "" |
| Name of constraint/objective in the logfile. | |
| logical | has_mask = .false. |
| containing a mask | |
| class(point_zone_t), pointer | mask => null() |
| A mask for where the objective function is evaluated. | |
This is the base class for objectives and constraints alike. A base functional should be able to evaluate itself and its sensitivity with respect to the design variables.
The base functional is also responsible for managing the adjoint forcing terms that are required for the adjoint problem, any source terms simulation components that are required to evaluate the base functional. All of which should be prepared in the init method.
Definition at line 59 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::accumulate_sensitivity | ( | class(base_functional_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
Definition at line 108 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::accumulate_value | ( | class(base_functional_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
Definition at line 106 of file base_functional.f90.
|
pure virtual |
Definition at line 89 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::get_sensitivity | ( | class(base_functional_t), intent(in) | this, |
| type(vector_t), intent(inout) | sensitivity | ||
| ) |
Definition at line 100 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::get_value | ( | class(base_functional_t), intent(in) | this | ) |
Definition at line 98 of file base_functional.f90.
| generic base_functional::base_functional_t::init | ( | class(base_functional_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design | ||
| ) |
Definition at line 82 of file base_functional.f90.
| generic base_functional::base_functional_t::init | ( | class(base_functional_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation | ||
| ) |
Definition at line 82 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::init_json | ( | class(base_functional_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design | ||
| ) |
Definition at line 85 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::init_json_sim | ( | class(base_functional_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation | ||
| ) |
Definition at line 87 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::reset_sensitivity | ( | class(base_functional_t), intent(inout) | this | ) |
Definition at line 104 of file base_functional.f90.
| procedure, pass(this) base_functional::base_functional_t::reset_value | ( | class(base_functional_t), intent(inout) | this | ) |
Definition at line 102 of file base_functional.f90.
|
pure virtual |
Definition at line 94 of file base_functional.f90.
|
pure virtual |
Definition at line 92 of file base_functional.f90.
| logical base_functional::base_functional_t::has_mask = .false. |
Definition at line 72 of file base_functional.f90.
Definition at line 74 of file base_functional.f90.
Definition at line 70 of file base_functional.f90.
| type(vector_t) base_functional::base_functional_t::sensitivity |
Definition at line 66 of file base_functional.f90.
| type(vector_t) base_functional::base_functional_t::sensitivity_old |
Definition at line 68 of file base_functional.f90.
Definition at line 62 of file base_functional.f90.
Definition at line 64 of file base_functional.f90.