Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
objective::objective_t Type Referenceabstract

The abstract objective type. More...

Inheritance diagram for objective::objective_t:
Collaboration diagram for objective::objective_t:

Public Member Functions

procedure, pass(thisinit_base (this, name, design_size, weight, mask_name)
 Initializer for the base class.
 
procedure, pass(thisfree_base (this)
 Destructor of the base class.
 
procedure, pass(thisget_weight (this)
 Get the weight of the objective.
 
generic init (this, json, design)
 Constructor interface.
 
generic init (this, json, design, simulation)
 Constructor interface.
 
procedure, pass(thisinit_json (this, json, design)
 Constructor based on json input.
 
procedure, pass(thisinit_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(thisget_value (this)
 Get the value of the function.
 
procedure, pass(thisget_sensitivity (this, sensitivity)
 Get the sensitivity of the function.
 
procedure, pass(thisreset_value (this)
 Set the value to zero.
 
procedure, pass(thisreset_sensitivity (this)
 Set the sensitivity to zero.
 
procedure, pass(thisaccumulate_value (this, design, dt)
 Accumulate the value.
 
procedure, pass(thisaccumulate_sensitivity (this, design, dt)
 Accumulate the sensitivity.
 

Public Attributes

real(kind=rp) weight = 1.0_rp
 Weight of the objective in the overall cost function.
 
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.
 

Detailed Description

This is the base class for objectives, which is a type of base functional. Each objective contain a weight that is used to scale the objective value.

Definition at line 52 of file objective.f90.

Member Function/Subroutine Documentation

◆ accumulate_sensitivity()

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 
)
inherited

Definition at line 108 of file base_functional.f90.

◆ accumulate_value()

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 
)
inherited

Definition at line 106 of file base_functional.f90.

◆ free()

procedure(functional_free), deferred, pass base_functional::base_functional_t::free ( class(base_functional_t), intent(inout this)
pure virtualinherited

Definition at line 89 of file base_functional.f90.

◆ free_base()

procedure, pass(this) objective::objective_t::free_base ( class(objective_t), intent(inout), target  this)

Definition at line 61 of file objective.f90.

◆ get_sensitivity()

procedure, pass(this) base_functional::base_functional_t::get_sensitivity ( class(base_functional_t), intent(in this,
type(vector_t), intent(inout sensitivity 
)
inherited

Definition at line 100 of file base_functional.f90.

◆ get_value()

procedure, pass(this) base_functional::base_functional_t::get_value ( class(base_functional_t), intent(in this)
inherited

Definition at line 98 of file base_functional.f90.

◆ get_weight()

procedure, pass(this) objective::objective_t::get_weight ( class(objective_t), intent(in this)

Definition at line 63 of file objective.f90.

◆ init() [1/2]

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 
)
inherited

Definition at line 82 of file base_functional.f90.

◆ init() [2/2]

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 
)
inherited

Definition at line 82 of file base_functional.f90.

◆ init_base()

procedure, pass(this) objective::objective_t::init_base ( class(objective_t), intent(inout this,
character(len=*), intent(in name,
integer, intent(in design_size,
real(kind=rp), intent(in weight,
character(len=*), intent(in), optional  mask_name 
)
Parameters
thisThe objective.
nameThe name of the objective.
design_sizeThe number of design variables.
weightThe weight of the objective function.
mask_nameThe name design the mask. [optional]

Definition at line 59 of file objective.f90.

◆ init_json()

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 
)
inherited

Definition at line 85 of file base_functional.f90.

◆ init_json_sim()

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 
)
inherited

Definition at line 87 of file base_functional.f90.

◆ reset_sensitivity()

procedure, pass(this) base_functional::base_functional_t::reset_sensitivity ( class(base_functional_t), intent(inout this)
inherited

Definition at line 104 of file base_functional.f90.

◆ reset_value()

procedure, pass(this) base_functional::base_functional_t::reset_value ( class(base_functional_t), intent(inout this)
inherited

Definition at line 102 of file base_functional.f90.

◆ update_sensitivity()

procedure(functional_update_sensitivity), deferred, pass base_functional::base_functional_t::update_sensitivity ( class(base_functional_t), intent(inout this,
class(design_t), intent(in design 
)
pure virtualinherited

Definition at line 94 of file base_functional.f90.

◆ update_value()

procedure(functional_update_value), deferred, pass base_functional::base_functional_t::update_value ( class(base_functional_t), intent(inout this,
class(design_t), intent(in design 
)
pure virtualinherited

Definition at line 92 of file base_functional.f90.

Member Data Documentation

◆ has_mask

logical base_functional::base_functional_t::has_mask = .false.
inherited

Definition at line 72 of file base_functional.f90.

◆ mask

class(point_zone_t), pointer base_functional::base_functional_t::mask => null()
inherited

Definition at line 74 of file base_functional.f90.

◆ name

character(len=25) base_functional::base_functional_t::name = ""
inherited

Definition at line 70 of file base_functional.f90.

◆ sensitivity

type(vector_t) base_functional::base_functional_t::sensitivity
inherited

Definition at line 66 of file base_functional.f90.

◆ sensitivity_old

type(vector_t) base_functional::base_functional_t::sensitivity_old
inherited

Definition at line 68 of file base_functional.f90.

◆ value

real(kind=rp) base_functional::base_functional_t::value = 0.0_rp
inherited

Definition at line 62 of file base_functional.f90.

◆ value_old

real(kind=rp) base_functional::base_functional_t::value_old = 0.0_rp
inherited

Definition at line 64 of file base_functional.f90.

◆ weight

real(kind=rp) objective::objective_t::weight = 1.0_rp

Definition at line 54 of file objective.f90.


The documentation for this type was generated from the following file: