Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
problem Module Reference

Module for handling the optimization problem.

Data Types

type  problem_t
 The abstract problem type. More...
 

Functions/Subroutines

subroutine problem_init (this, parameters, design, simulation)
 The constructor for the base problem.
 
subroutine problem_free (this)
 Destructor for the base class.
 
subroutine problem_write (this, idx)
 Sample the fields/design.
 
subroutine problem_read_objectives (this, parameters, simulation, design)
 Read the objective from a parameters file.
 
subroutine problem_read_constraints (this, parameters, simulation, design)
 Read the constraint from a parameters file.
 
subroutine problem_add_objective (this, objective)
 Add an objective to the list.
 
subroutine problem_add_constraint (this, constraint)
 Add an objective to the list.
 
subroutine problem_compute (this, design)
 The computation of the objective function and constraints.
 
subroutine problem_compute_sensitivity (this, design)
 The computation of the objective function and constraints.
 
subroutine problem_update_objectives (this, design)
 Update the objectives.
 
subroutine problem_update_constraints (this, design)
 Update the constraints.
 
subroutine problem_update_objective_sensitivities (this, design)
 Update the sensitivity of the objectives.
 
subroutine problem_update_constraint_sensitivities (this, design)
 Update the sensitivity of the constraints.
 
subroutine problem_get_objective_value (this, objective_value)
 Construct and get the objective.
 
subroutine problem_get_all_objective_values (this, all_objective_values)
 Construct and get the objective.
 
subroutine problem_get_constraint_values (this, constraint_value)
 Construct and get the constraints.
 
subroutine problem_get_objective_sensitivities (this, sensitivity)
 Construct and get the sensitivity of the objective.
 
subroutine problem_get_constraint_sensitivities (this, sensitivity)
 Construct and get the sensitivity of the constraints.
 
pure integer function problem_get_num_objectives (this)
 Return the number of objectives.
 
pure integer function problem_get_num_constraints (this)
 Return the number of constraints.
 
character(len=1024) function problem_get_log_header (this)
 Return the header for the problem.
 

Function/Subroutine Documentation

◆ problem_add_constraint()

subroutine problem::problem_add_constraint ( class(problem_t), intent(inout this,
class(constraint_t), intent(inout), allocatable  constraint 
)
private

Definition at line 313 of file problem.f90.

◆ problem_add_objective()

subroutine problem::problem_add_objective ( class(problem_t), intent(inout this,
class(objective_t), intent(inout), allocatable  objective 
)
private

Definition at line 287 of file problem.f90.

◆ problem_compute()

subroutine problem::problem_compute ( class(problem_t), intent(inout this,
class(design_t), intent(inout design 
)
private

Definition at line 342 of file problem.f90.

◆ problem_compute_sensitivity()

subroutine problem::problem_compute_sensitivity ( class(problem_t), intent(inout this,
class(design_t), intent(inout design 
)
private

Definition at line 352 of file problem.f90.

◆ problem_free()

subroutine problem::problem_free ( class(problem_t), intent(inout this)
private

Definition at line 187 of file problem.f90.

◆ problem_get_all_objective_values()

subroutine problem::problem_get_all_objective_values ( class(problem_t), intent(inout this,
type(vector_t), intent(out all_objective_values 
)
private

This function returns all the indivual objectives comprising the objective function

Parameters
[out]all_objective_valuesA vector containing all objectives

Definition at line 457 of file problem.f90.

◆ problem_get_constraint_sensitivities()

subroutine problem::problem_get_constraint_sensitivities ( class(problem_t), intent(inout this,
type(matrix_t), intent(out sensitivity 
)
private

This function constructs the sensitivity of the constraint values from the individual constraints.

Parameters
[out]sensitivityThe matrix of all constraint sensitivities.

Definition at line 521 of file problem.f90.

◆ problem_get_constraint_values()

subroutine problem::problem_get_constraint_values ( class(problem_t), intent(inout this,
type(vector_t), intent(out constraint_value 
)
private

This function constructs the constraint values from the individual constraints.

Parameters
[out]constraint_valueThe vector of all constraint values.

Definition at line 480 of file problem.f90.

◆ problem_get_log_header()

character(len=1024) function problem::problem_get_log_header ( class(problem_t), intent(in this)
private

Definition at line 568 of file problem.f90.

◆ problem_get_num_constraints()

pure integer function problem::problem_get_num_constraints ( class(problem_t), intent(in this)
private

Definition at line 560 of file problem.f90.

◆ problem_get_num_objectives()

pure integer function problem::problem_get_num_objectives ( class(problem_t), intent(in this)
private

Definition at line 552 of file problem.f90.

◆ problem_get_objective_sensitivities()

subroutine problem::problem_get_objective_sensitivities ( class(problem_t), intent(inout this,
type(vector_t), intent(out sensitivity 
)
private

This function constructs the sensitivity of the objective value from the individual objectives and their weights.

Parameters
[out]sensitivityThe weighted sum of all objective sensitivities.

Definition at line 503 of file problem.f90.

◆ problem_get_objective_value()

subroutine problem::problem_get_objective_value ( class(problem_t), intent(inout this,
real(kind=rp), intent(out objective_value 
)
private

This function constructs the objective value from the individual objectives and their weights.

Parameters
[out]objective_valueThe weighted sum of all objective values.

Definition at line 438 of file problem.f90.

◆ problem_init()

subroutine problem::problem_init ( class(problem_t), intent(inout this,
type(json_file), intent(inout parameters,
class(design_t), intent(in design,
type(simulation_t), intent(inout simulation 
)

Definition at line 168 of file problem.f90.

◆ problem_read_constraints()

subroutine problem::problem_read_constraints ( class(problem_t), intent(inout this,
type(json_file), intent(inout parameters,
type(simulation_t), intent(inout simulation,
class(design_t), intent(in design 
)
private

Definition at line 253 of file problem.f90.

◆ problem_read_objectives()

subroutine problem::problem_read_objectives ( class(problem_t), intent(inout this,
type(json_file), intent(inout parameters,
type(simulation_t), intent(inout simulation,
class(design_t), intent(in design 
)
private

Definition at line 219 of file problem.f90.

◆ problem_update_constraint_sensitivities()

subroutine problem::problem_update_constraint_sensitivities ( class(problem_t), intent(inout this,
class(design_t), intent(in design 
)
private

This function should be called after the design has been updated. It will update the sensitivity of all the constraints.

Parameters
[in]designThe design to update the constraints with.

Definition at line 420 of file problem.f90.

◆ problem_update_constraints()

subroutine problem::problem_update_constraints ( class(problem_t), intent(inout this,
class(design_t), intent(in design 
)
private

This function should be called after the design has been updated. It will update the value of all the constraints.

Parameters
[in]designThe design to update the constraints with.

Definition at line 390 of file problem.f90.

◆ problem_update_objective_sensitivities()

subroutine problem::problem_update_objective_sensitivities ( class(problem_t), intent(inout this,
class(design_t), intent(in design 
)
private

This function should be called after the design has been updated. It will update the sensitivity of all the objectives.

Parameters
[in]designThe design to update the objectives with.

Definition at line 405 of file problem.f90.

◆ problem_update_objectives()

subroutine problem::problem_update_objectives ( class(problem_t), intent(inout this,
class(design_t), intent(in design 
)
private

This function should be called after the design has been updated. It will update the value of all the objectives.

Parameters
[in]designThe design to update the objectives with.

Definition at line 375 of file problem.f90.

◆ problem_write()

subroutine problem::problem_write ( class(problem_t), intent(inout this,
integer, intent(in idx 
)
private

Definition at line 209 of file problem.f90.