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

A constraint on the volume of the design. More...

Inheritance diagram for volume_constraint::volume_constraint_t:
Collaboration diagram for volume_constraint::volume_constraint_t:

Public Member Functions

procedure, pass(this), public init_json (this, json, design, simulation)
 The common constructor using a JSON object.
 
procedure, pass(this), public init_from_attributes (this, design, simulation, name, mask_name, is_max, limit)
 The direct initializer from attributes.
 
procedure, pass(this), public free (this)
 Destructor.
 
procedure, pass(this), public update_value (this, design)
 Computes the source term and adds the result to fields.
 
procedure, pass(this), public update_sensitivity (this, design)
 Computes the source term and adds the result to fields.
 
procedure, pass(thisinit_base (this, name, design_size, mask_name)
 Initializer for the base class.
 
procedure, pass(thisfree_base (this)
 Destructor of the base class.
 
procedure(functional_init), deferred, pass init_json (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) limit
 Maximum (or minimum) volume.
 
real(kind=rp) volume_domain
 Volume of the optimization domain.
 
class(coef_t), pointer c_xh => null()
 Pointer to the SEM field.
 
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.
 

Private Member Functions

procedure, pass(this), private compute_volume (this, design)
 Computes the volume of the brinkman_design.
 

Private Attributes

logical is_max
 whether it is minimum or maximum volume is_max = .false., ie V > V_min => -V + V_max < 0 is_max = .true. , ie V < V_max => V - V_max < 0
 

Detailed Description

Definition at line 63 of file volume_constraint.f90.

Member Function/Subroutine Documentation

◆ compute_volume()

procedure, pass(this), private volume_constraint::volume_constraint_t::compute_volume ( class(volume_constraint_t), intent(inout this,
class(design_t), intent(in design 
)
private

Automatically select which design type, or throw an error.

Parameters
designthe design.

Definition at line 94 of file volume_constraint.f90.

◆ free() [1/2]

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

Definition at line 75 of file base_functional.f90.

◆ free() [2/2]

procedure, pass(this), public volume_constraint::volume_constraint_t::free ( class(volume_constraint_t), intent(inout this)

Definition at line 85 of file volume_constraint.f90.

◆ free_base()

procedure, pass(this) constraint::constraint_t::free_base ( class(constraint_t), intent(inout), target  this)
inherited

Definition at line 57 of file constraint.f90.

◆ init_base()

procedure, pass(this) constraint::constraint_t::init_base ( class(constraint_t), intent(inout this,
character(len=*), intent(in name,
integer, intent(in design_size,
character(len=*), intent(in), optional  mask_name 
)
inherited

Initialize the constraint base class.

Parameters
design_sizeThe number of design variables.
weightThe weight of the constraint function.
[optional]mask_name The name design the mask.

Definition at line 55 of file constraint.f90.

◆ init_from_attributes()

procedure, pass(this), public volume_constraint::volume_constraint_t::init_from_attributes ( class(volume_constraint_t), intent(inout this,
class(design_t), intent(in design,
type(simulation_t), intent(inout), target  simulation,
character(len=*), intent(in name,
character(len=*), intent(in mask_name,
logical, intent(in is_max,
real(kind=rp), intent(in limit 
)
Parameters
designthe design.
simulationthe simulation.
mask_namethe name of the mask.
is_maxwhether it is a maximum volume constraint.
limitThe volume limit value.

Definition at line 82 of file volume_constraint.f90.

◆ init_json() [1/2]

procedure(functional_init), deferred, pass 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,
type(simulation_t), intent(inout), target  simulation 
)
pure virtualinherited

Definition at line 73 of file base_functional.f90.

◆ init_json() [2/2]

procedure, pass(this), public volume_constraint::volume_constraint_t::init_json ( class(volume_constraint_t), intent(inout this,
type(json_file), intent(inout json,
class(design_t), intent(in design,
type(simulation_t), intent(inout), target  simulation 
)
Parameters
jsonthe JSON object.
designthe design.
simulationthe simulation.

Definition at line 80 of file volume_constraint.f90.

◆ update_sensitivity() [1/2]

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

◆ update_sensitivity() [2/2]

procedure, pass(this), public volume_constraint::volume_constraint_t::update_sensitivity ( class(volume_constraint_t), intent(inout this,
class(design_t), intent(in design 
)
Parameters
designthe design
fluidthe fluid scheme
adjointthe adjoint scheme

Definition at line 90 of file volume_constraint.f90.

◆ update_value() [1/2]

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

◆ update_value() [2/2]

procedure, pass(this), public volume_constraint::volume_constraint_t::update_value ( class(volume_constraint_t), intent(inout this,
class(design_t), intent(in design 
)
Parameters
designthe design
fluidthe fluid scheme

Definition at line 87 of file volume_constraint.f90.

Member Data Documentation

◆ c_xh

class(coef_t), pointer volume_constraint::volume_constraint_t::c_xh => null()

Definition at line 76 of file volume_constraint.f90.

◆ has_mask

logical base_functional::base_functional_t::has_mask
inherited

Definition at line 63 of file base_functional.f90.

◆ is_max

logical volume_constraint::volume_constraint_t::is_max
private

Definition at line 69 of file volume_constraint.f90.

◆ limit

real(kind=rp) volume_constraint::volume_constraint_t::limit

Definition at line 71 of file volume_constraint.f90.

◆ mask

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

Definition at line 65 of file base_functional.f90.

◆ name

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

Definition at line 61 of file base_functional.f90.

◆ sensitivity

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

Definition at line 59 of file base_functional.f90.

◆ value

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

Definition at line 57 of file base_functional.f90.

◆ volume_domain

real(kind=rp) volume_constraint::volume_constraint_t::volume_domain

Definition at line 73 of file volume_constraint.f90.


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