|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
An objective function corresponding to the mixing of a passive scalar \( F = \frac{1}{|\Omega_{obj}|}\int_{\Omega_{obj}} \frac{1}{2}\left(\phi - \phi_{ref}\right)^2 d\Omega, \). More...


Public Member Functions | |
| procedure, pass(this), public | init_json_sim (this, json, design, simulation) |
| The common constructor using a JSON object. | |
| procedure, pass(this), public | init_from_attributes (this, design, simulation, weight, name, mask_name, phi_ref, scalar_name) |
| The actual constructor. | |
| procedure, pass(this), public | free (this) |
| Destructor. | |
| procedure, pass(this), public | update_value (this, design) |
| Computes the value of the objective function. | |
| procedure, pass(this), public | update_sensitivity (this, design) |
| Computes the sensitivity with respect to the coefficient \(\chi\). | |
| procedure, pass(this) | init_base (this, name, design_size, weight, mask_name) |
| Initializer for the base class. | |
| procedure, pass(this) | free_base (this) |
| Destructor of the base class. | |
| procedure, pass(this) | get_weight (this) |
| Get the weight of the objective. | |
| generic | init (this, json, design) |
| Constructor. | |
| generic | init (this, json, design, simulation) |
| Constructor. | |
| procedure, pass(this) | init_json (this, json, design) |
| Constructor. | |
| procedure, pass(this) | init_json_sim (this, json, design, simulation) |
| Constructor. | |
| 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. | |
Public Attributes | |
| real(kind=rp) | phi_ref |
| Target concentration in the optimized region \(\phi_{ref}\). | |
| class(coef_t), pointer | coef |
| Coefficients defined on a given mesh. | |
| real(kind=rp) | domain_volume |
| Volume of the domain \(|\Omega_{obj}|\). | |
| character(len=:), allocatable | scalar_name |
| name of the scalar field being acted on | |
| type(field_t), pointer | u |
| type(field_t), pointer | v |
| type(field_t), pointer | w |
| type(field_t), pointer | u_adj |
| type(field_t), pointer | v_adj |
| type(field_t), pointer | w_adj |
| real(kind=rp) | weight = 1.0_rp |
| real(kind=rp) | value |
| Value of the base_functional. | |
| type(vector_t) | sensitivity |
| Sensitivity field. | |
| character(len=25) | name |
| Name of constraint/objective in the logfile. | |
| logical | has_mask |
| containing a mask | |
| class(point_zone_t), pointer | mask => null() |
| A mask for where the objective function is evaluated. | |
Definition at line 63 of file scalar_mixing_objective_function.f90.
|
pure virtualinherited |
Definition at line 81 of file base_functional.f90.
| procedure, pass(this), public scalar_mixing_objective::scalar_mixing_objective_t::free | ( | class(scalar_mixing_objective_t), intent(inout) | this | ) |
Definition at line 92 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 59 of file objective.f90.
|
inherited |
Definition at line 92 of file base_functional.f90.
|
inherited |
Definition at line 90 of file base_functional.f90.
|
inherited |
Definition at line 61 of file objective.f90.
|
inherited |
Definition at line 74 of file base_functional.f90.
|
inherited |
Definition at line 74 of file base_functional.f90.
|
inherited |
Initialize the objective base class.
| this | The objective. |
| name | The name of the objective. |
| design_size | The number of design variables. |
| weight | The weight of the objective function. |
| mask_name | The name design the mask. [optional] |
Definition at line 57 of file objective.f90.
| procedure, pass(this), public scalar_mixing_objective::scalar_mixing_objective_t::init_from_attributes | ( | class(scalar_mixing_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation, | ||
| real(kind=rp), intent(in) | weight, | ||
| character(len=*), intent(in) | name, | ||
| character(len=*), intent(in) | mask_name, | ||
| real(kind=rp), intent(in) | phi_ref, | ||
| character(len=*), intent(in) | scalar_name | ||
| ) |
| this | The object |
| design | the design. |
| simulation | the simulation. |
| weight | the weight of the objective function. |
| name | the name of the objective function. |
| mask_name | the name of the mask. |
| phi_ref | target concentration used in the objective function. |
| scalar_name | name of the scalar field. |
Definition at line 89 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 77 of file base_functional.f90.
|
inherited |
Definition at line 79 of file base_functional.f90.
| procedure, pass(this), public scalar_mixing_objective::scalar_mixing_objective_t::init_json_sim | ( | class(scalar_mixing_objective_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation | ||
| ) |
| this | The object |
| json | The JSON subdictionary corresponding to your objective |
| design | The design |
| simulation | The simulation |
Definition at line 86 of file scalar_mixing_objective_function.f90.
|
pure virtualinherited |
Definition at line 86 of file base_functional.f90.
| procedure, pass(this), public scalar_mixing_objective::scalar_mixing_objective_t::update_sensitivity | ( | class(scalar_mixing_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
| this | The object. |
| design | the design. |
Definition at line 97 of file scalar_mixing_objective_function.f90.
|
pure virtualinherited |
Definition at line 84 of file base_functional.f90.
| procedure, pass(this), public scalar_mixing_objective::scalar_mixing_objective_t::update_value | ( | class(scalar_mixing_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
| this | the object. |
| design | the design. |
Definition at line 94 of file scalar_mixing_objective_function.f90.
| class(coef_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::coef |
Definition at line 71 of file scalar_mixing_objective_function.f90.
| real(kind=rp) scalar_mixing_objective::scalar_mixing_objective_t::domain_volume |
Definition at line 73 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 65 of file base_functional.f90.
|
inherited |
Definition at line 67 of file base_functional.f90.
|
inherited |
Definition at line 63 of file base_functional.f90.
| real(kind=rp) scalar_mixing_objective::scalar_mixing_objective_t::phi_ref |
Definition at line 69 of file scalar_mixing_objective_function.f90.
| character(len=:), allocatable scalar_mixing_objective::scalar_mixing_objective_t::scalar_name |
Definition at line 75 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 61 of file base_functional.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::u |
Definition at line 81 of file scalar_mixing_objective_function.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::u_adj |
Definition at line 81 of file scalar_mixing_objective_function.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::v |
Definition at line 81 of file scalar_mixing_objective_function.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::v_adj |
Definition at line 81 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 59 of file base_functional.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::w |
Definition at line 81 of file scalar_mixing_objective_function.f90.
| type(field_t), pointer scalar_mixing_objective::scalar_mixing_objective_t::w_adj |
Definition at line 81 of file scalar_mixing_objective_function.f90.
|
inherited |
Definition at line 52 of file objective.f90.