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

The base functional type. More...

Inheritance diagram for base_functional::base_functional_t:
Collaboration diagram for base_functional::base_functional_t:

Public Member Functions

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.
 

Public Attributes

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.
 

Detailed Description

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 56 of file base_functional.f90.

Member Function/Subroutine Documentation

◆ free()

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

Definition at line 81 of file base_functional.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 
)

Definition at line 74 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 
)

Definition at line 74 of file base_functional.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 
)

Definition at line 77 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 
)

Definition at line 79 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 virtual

Definition at line 86 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 virtual

Definition at line 84 of file base_functional.f90.

Member Data Documentation

◆ has_mask

logical base_functional::base_functional_t::has_mask

Definition at line 65 of file base_functional.f90.

◆ mask

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

Definition at line 67 of file base_functional.f90.

◆ name

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

Definition at line 63 of file base_functional.f90.

◆ sensitivity

type(vector_t) base_functional::base_functional_t::sensitivity

Definition at line 61 of file base_functional.f90.

◆ value

real(kind=rp) base_functional::base_functional_t::value

Definition at line 59 of file base_functional.f90.


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