| 
    Neko-TOP
    
   A portable framework for high-order spectral element flow toplogy optimization. 
   | 
 
An objective function corresponding to minimum dissipation \( F = \int_\Omega |\nabla u|^2 d \Omega + K \int_Omega \frac{1}{2} \chi |\mathbf{u}|^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) | 
| The direct initializer from attributes.   | |
| 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 | |
| type(field_t), pointer | v => null() | 
| Pointer to the v field.   | |
| type(field_t), pointer | w => null() | 
| Pointer to the w field.   | |
| type(coef_t), pointer | c_xh => null() | 
| Pointer to the coefficient field.   | |
| type(field_t), pointer | adjoint_u => null() | 
| Pointer to adjoint u field.   | |
| type(field_t), pointer | adjoint_v => null() | 
| Pointer to adjoint v field.   | |
| type(field_t), pointer | adjoint_w => null() | 
| Pointer to adjoint w field.   | |
| 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 95 of file minimum_dissipation_objective.f90.
      
  | 
  pure virtualinherited | 
Definition at line 81 of file base_functional.f90.
| procedure, pass(this), public minimum_dissipation_objective::minimum_dissipation_objective_t::free | ( | class(minimum_dissipation_objective_t), intent(inout) | this | ) | 
Definition at line 122 of file minimum_dissipation_objective.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 minimum_dissipation_objective::minimum_dissipation_objective_t::init_from_attributes | ( | class(minimum_dissipation_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 | ||
| ) | 
| this | the objective. | 
| design | the design. | 
| simulation | the simulation. | 
| weight | the weight of the objective function. | 
| name | the name of the objective. | 
| mask_name | the name of the mask. | 
Definition at line 119 of file minimum_dissipation_objective.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 minimum_dissipation_objective::minimum_dissipation_objective_t::init_json_sim | ( | class(minimum_dissipation_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 objective. | 
| json | the JSON object. | 
| design | the design. | 
| simulation | the simulation. | 
Definition at line 116 of file minimum_dissipation_objective.f90.
      
  | 
  pure virtualinherited | 
Definition at line 86 of file base_functional.f90.
| procedure, pass(this), public minimum_dissipation_objective::minimum_dissipation_objective_t::update_sensitivity | ( | class(minimum_dissipation_objective_t), intent(inout) | this, | 
| class(design_t), intent(in) | design | ||
| ) | 
| this | the objective. | 
| design | the design. | 
Definition at line 127 of file minimum_dissipation_objective.f90.
      
  | 
  pure virtualinherited | 
Definition at line 84 of file base_functional.f90.
| procedure, pass(this), public minimum_dissipation_objective::minimum_dissipation_objective_t::update_value | ( | class(minimum_dissipation_objective_t), intent(inout) | this, | 
| class(design_t), intent(in) | design | ||
| ) | 
| this | the objective. | 
| design | the design. | 
Definition at line 124 of file minimum_dissipation_objective.f90.
| type(field_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::adjoint_u => null() | 
Definition at line 108 of file minimum_dissipation_objective.f90.
| type(field_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::adjoint_v => null() | 
Definition at line 110 of file minimum_dissipation_objective.f90.
| type(field_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::adjoint_w => null() | 
Definition at line 112 of file minimum_dissipation_objective.f90.
| type(coef_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::c_xh => null() | 
Definition at line 105 of file minimum_dissipation_objective.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.
      
  | 
  inherited | 
Definition at line 61 of file base_functional.f90.
| type(field_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::v => null() | 
Definition at line 101 of file minimum_dissipation_objective.f90.
      
  | 
  inherited | 
Definition at line 59 of file base_functional.f90.
| type(field_t), pointer minimum_dissipation_objective::minimum_dissipation_objective_t::w => null() | 
Definition at line 103 of file minimum_dissipation_objective.f90.
      
  | 
  inherited | 
Definition at line 52 of file objective.f90.