|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
The abstract problem type. More...
Public Member Functions | |
| procedure, pass, public | init (this, parameters, design, simulation) |
| Constructor for the base class. | |
| procedure, pass, public | free (this) |
| Destructor for the base class. | |
| procedure, pass, public | compute (this, design, simulation) |
| Evaluate the optimization problem. This is the main function that evaluates the problem. It should be implemented in the derived classes. | |
| procedure, pass, public | compute_sensitivity (this, design, simulation) |
| Evaluate the sensitivity of the optimization problem. This is the main function that evaluates the problem sensitivity to the design. It should be implemented in the derived classes. | |
| procedure, pass, public | run_forward_unsteady (this, simulation, design) |
| Run the unsteady problem forward in time while time integrating the objective function. | |
| procedure, pass, public | run_backward_unsteady (this, simulation, design) |
| Run the unsteady adjoint backwards in time while time integrating the sensitivity. | |
| procedure, pass, public | read_objectives (this, parameters, design, simulation) |
| Read objective json-file. | |
| procedure, pass, public | read_constraints (this, parameters, design, simulation) |
| Read constraint json-file. | |
| procedure, pass, public | write (this, idx) |
| Sample the problem. | |
| procedure, pass, public | add_objective (this, objective) |
| Add an objective to the list. | |
| procedure, pass, public | add_constraint (this, constraint) |
| Add a constraint to the list. | |
| procedure, pass(this) | update_objectives (this, design) |
| Update the objective function. | |
| procedure, pass(this) | update_constraints (this, design) |
| Update the constraints. | |
| procedure, pass(this) | update_objective_sensitivities (this, design) |
| Update the objective sensitivities. | |
| procedure, pass(this) | update_constraint_sensitivities (this, design) |
| Update the constraint sensitivities. | |
| procedure, pass(this) | reset_objectives (this) |
| Reset the objective function. | |
| procedure, pass(this) | reset_constraints (this) |
| Reset the constraints. | |
| procedure, pass(this) | reset_objective_sensitivities (this) |
| Reset the objective sensitivities. | |
| procedure, pass(this) | reset_constraint_sensitivities (this) |
| Reset the constraint sensitivities. | |
| procedure, pass(this) | accumulate_objectives (this, design, dt) |
| Accumulate the objective function. | |
| procedure, pass(this) | accumulate_constraints (this, design, dt) |
| Accumulate the constraints. | |
| procedure, pass(this) | accumulate_objective_sensitivities (this, design, dt) |
| Accumulate the objective sensitivities. | |
| procedure, pass(this) | accumulate_constraint_sensitivities (this, design, dt) |
| Accumulate the constraint sensitivities. | |
| procedure, pass, public | get_objective_value (this, objective_value) |
| Return the objective. | |
| procedure, pass, public | get_all_objective_values (this, all_objective_values) |
| Return all components of the objective. | |
| procedure, pass, public | get_constraint_values (this, constraint_value) |
| Return the constraints. | |
| procedure, pass, public | get_objective_sensitivities (this, sensitivity) |
| Return the sensitivity of the objective. | |
| procedure, pass, public | get_constraint_sensitivities (this, sensitivity) |
| Return the sensitivity of the constraints. | |
| procedure, pass(this) | get_n_objectives (this) |
| Return the number of objectives. | |
| procedure, pass(this) | get_n_constraints (this) |
| Return the number of constraints. | |
| procedure, pass(this) | get_log_header (this) |
| Return the logfile header. | |
Public Attributes | |
| integer | n_objectives = 0 |
| Number of objectives in the problem. | |
| integer | n_constraints = 0 |
| Number of constraints in the problem. | |
| class(objective_wrapper_t), dimension(:), allocatable | objective_list |
| The objective of the problem. | |
| class(constraint_wrapper_t), dimension(:), allocatable | constraint_list |
| The constraints of the problem. | |
Definition at line 67 of file problem.f90.
| procedure, pass(this) problem::problem_t::accumulate_constraint_sensitivities | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
This function will accumulate all the constraint sensitivity.
| [in,out] | this | The problem to accumulate the objectives with. |
| [in] | design | The design to accumulate the constraints with. |
| [in] | dt | The timestep. |
Definition at line 169 of file problem.f90.
| procedure, pass(this) problem::problem_t::accumulate_constraints | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
This function will accumulate all the constraints.
| [in,out] | this | The problem to accumulate the objectives with. |
| [in] | design | The design to accumulate the constraints with. |
| [in] | dt | The timestep. |
Definition at line 163 of file problem.f90.
| procedure, pass(this) problem::problem_t::accumulate_objective_sensitivities | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
This function will accumulate all the objective sensitivity.
| [in,out] | this | The problem to accumulate the objectives with. |
| [in] | design | The design to accumulate the objectives with. |
| [in] | dt | The timestep. |
Definition at line 166 of file problem.f90.
| procedure, pass(this) problem::problem_t::accumulate_objectives | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| real(kind=rp), intent(in) | dt | ||
| ) |
This function will accumulate all objectives.
| [in,out] | this | The problem to accumulate the objectives with. |
| [in] | design | The design to accumulate the objectives with. |
| [in] | dt | The timestep. |
Definition at line 160 of file problem.f90.
| procedure, pass, public problem::problem_t::add_constraint | ( | class(problem_t), intent(inout) | this, |
| class(constraint_t), intent(inout), allocatable | constraint | ||
| ) |
Definition at line 128 of file problem.f90.
| procedure, pass, public problem::problem_t::add_objective | ( | class(problem_t), intent(inout) | this, |
| class(objective_t), intent(inout), allocatable | objective | ||
| ) |
Definition at line 126 of file problem.f90.
| procedure, pass, public problem::problem_t::compute | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(inout) | design, | ||
| class(simulation_t), intent(inout), optional | simulation | ||
| ) |
Definition at line 95 of file problem.f90.
| procedure, pass, public problem::problem_t::compute_sensitivity | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(inout) | design, | ||
| class(simulation_t), intent(inout), optional | simulation | ||
| ) |
Definition at line 100 of file problem.f90.
Definition at line 90 of file problem.f90.
| procedure, pass, public problem::problem_t::get_all_objective_values | ( | class(problem_t), intent(in) | this, |
| type(vector_t), intent(inout) | all_objective_values | ||
| ) |
This function returns all the indivual objectives comprising the objective function
| [in] | this | The problem to update the objectives with. |
| [in,out] | all_objective_values | A vector containing all objectives |
Definition at line 179 of file problem.f90.
| procedure, pass, public problem::problem_t::get_constraint_sensitivities | ( | class(problem_t), intent(inout) | this, |
| type(matrix_t), intent(inout), target | sensitivity | ||
| ) |
This function constructs the sensitivity of the constraint values from the individual constraints.
| [in] | this | The problem to update the objectives with. |
| [in,out] | sensitivity | The matrix of all constraint sensitivities. |
Definition at line 188 of file problem.f90.
| procedure, pass, public problem::problem_t::get_constraint_values | ( | class(problem_t), intent(in) | this, |
| type(vector_t), intent(inout) | constraint_value | ||
| ) |
This function constructs the constraint values from the individual constraints.
| [in] | this | The problem to update the objectives with. |
| [in,out] | constraint_value | The vector of all constraint values. |
Definition at line 182 of file problem.f90.
Definition at line 197 of file problem.f90.
Definition at line 194 of file problem.f90.
Definition at line 192 of file problem.f90.
| procedure, pass, public problem::problem_t::get_objective_sensitivities | ( | class(problem_t), intent(in) | this, |
| type(vector_t), intent(inout) | sensitivity | ||
| ) |
This function constructs the sensitivity of the objective value from the individual objectives and their weights.
| [in] | this | The problem to update the objectives with. |
| [in,out] | sensitivity | The weighted sum of all objective sensitivities. |
Definition at line 185 of file problem.f90.
| procedure, pass, public problem::problem_t::get_objective_value | ( | class(problem_t), intent(in) | this, |
| real(kind=rp), intent(out) | objective_value | ||
| ) |
This function constructs the objective value from the individual objectives and their weights.
| [in] | this | The problem to update the objectives with. |
| [out] | objective_value | The weighted sum of all objective values. |
Definition at line 176 of file problem.f90.
| procedure, pass, public problem::problem_t::init | ( | class(problem_t), intent(inout) | this, |
| type(json_file), intent(inout) | parameters, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), optional | simulation | ||
| ) |
Definition at line 88 of file problem.f90.
| procedure, pass, public problem::problem_t::read_constraints | ( | class(problem_t), intent(inout) | this, |
| type(json_file), intent(inout) | parameters, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), optional | simulation | ||
| ) |
Definition at line 116 of file problem.f90.
| procedure, pass, public problem::problem_t::read_objectives | ( | class(problem_t), intent(inout) | this, |
| type(json_file), intent(inout) | parameters, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), optional | simulation | ||
| ) |
Definition at line 114 of file problem.f90.
| procedure, pass(this) problem::problem_t::reset_constraint_sensitivities | ( | class(problem_t), intent(inout) | this | ) |
This function will reset all the constraint sensitivity to zero.
| [in,out] | this | The problem to reset the objectives with. |
Definition at line 156 of file problem.f90.
This function will reset all the constraints to zero.
| [in,out] | this | The problem to reset the objectives with. |
Definition at line 150 of file problem.f90.
| procedure, pass(this) problem::problem_t::reset_objective_sensitivities | ( | class(problem_t), intent(inout) | this | ) |
This function will reset all the objective sensitivity to zero.
| [in,out] | this | The problem to reset the objectives with. |
Definition at line 153 of file problem.f90.
This function will reset all objectives to zero.
| [in,out] | this | The problem to reset the objectives with. |
Definition at line 147 of file problem.f90.
| procedure, pass, public problem::problem_t::run_backward_unsteady | ( | class(problem_t), intent(inout) | this, |
| class(simulation_t), intent(inout) | simulation, | ||
| class(design_t), intent(inout) | design | ||
| ) |
Definition at line 108 of file problem.f90.
| procedure, pass, public problem::problem_t::run_forward_unsteady | ( | class(problem_t), intent(inout) | this, |
| class(simulation_t), intent(inout) | simulation, | ||
| class(design_t), intent(inout) | design | ||
| ) |
Definition at line 104 of file problem.f90.
| procedure, pass(this) problem::problem_t::update_constraint_sensitivities | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
This function should be called after the design has been updated. It will update the sensitivity of all the constraints.
| [in,out] | this | The problem to update the objectives with. |
| [in] | design | The design to update the constraints with. |
Definition at line 143 of file problem.f90.
| procedure, pass(this) problem::problem_t::update_constraints | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
This function should be called after the design has been updated. It will update the value of all the constraints.
| [in,out] | this | The problem to update the objectives with. |
| [in] | design | The design to update the constraints with. |
Definition at line 137 of file problem.f90.
| procedure, pass(this) problem::problem_t::update_objective_sensitivities | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
This function should be called after the design has been updated. It will update the sensitivity of all the objectives.
| [in,out] | this | The problem to update the objectives with. |
| [in] | design | The design to update the objectives with. |
Definition at line 140 of file problem.f90.
| procedure, pass(this) problem::problem_t::update_objectives | ( | class(problem_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
This function should be called after the design has been updated. It will update the value of all the objectives.
| [in,out] | this | The problem to update the objectives with. |
| [in] | design | The design to update the objectives with. |
Definition at line 134 of file problem.f90.
| procedure, pass, public problem::problem_t::write | ( | class(problem_t), intent(inout) | this, |
| integer, intent(in) | idx | ||
| ) |
Definition at line 123 of file problem.f90.
| class(constraint_wrapper_t), dimension(:), allocatable problem::problem_t::constraint_list |
Definition at line 80 of file problem.f90.
| integer problem::problem_t::n_constraints = 0 |
Definition at line 75 of file problem.f90.
| integer problem::problem_t::n_objectives = 0 |
Definition at line 73 of file problem.f90.
| class(objective_wrapper_t), dimension(:), allocatable problem::problem_t::objective_list |
Definition at line 78 of file problem.f90.