|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
An objective function implementing our augmented lagrangian sensitivity contribution. More...


Public Member Functions | |
| procedure, pass(this), public | init_json_sim (this, json, design, simulation) |
| The common constructor using a JSON object. | |
| procedure, pass(this), public | init_from_attributes (this, design, simulation, weight, name, mask_name, dealias) |
| The direct initializer from attributes. | |
| procedure, pass(this), public | free (this) |
| Destructor. | |
| procedure, pass(this), public | update_value (this, design) |
| Computes the value of the objective function. | |
| procedure, pass(this), public | update_sensitivity (this, design) |
| Computes the sensitivity with respect to the coefficient \(\chi\). | |
| procedure, pass(this), public | get_log_size (this) |
| Get number of log entries. | |
| procedure, pass(this), public | get_log_headers (this, headers) |
| Get header labels for log entries. | |
| procedure, pass(this), public | get_log_values (this, values) |
| Get values for log entries. | |
| procedure, pass(this) | init_base (this, name, design_size, weight, mask_name, start_time, end_time) |
| Initializer for the base class. | |
| procedure, pass(this) | free_base (this) |
| Destructor of the base class. | |
| procedure, pass(this) | get_weight (this) |
| Get the weight of the objective. | |
| procedure, pass(this) | get_log_size (this) |
| Get number of log entries for this objective. | |
| procedure, pass(this) | get_log_size (this) |
| Get number of log entries for this functional. | |
| procedure, pass(this) | get_log_headers (this, headers) |
| Get header labels for this objective's log entries. | |
| procedure, pass(this) | get_log_headers (this, headers) |
| Get header labels for this functional's log entries. | |
| procedure, pass(this) | get_log_values (this, values) |
| Get values for this objective's log entries. | |
| procedure, pass(this) | get_log_values (this, values) |
| Get values for this functional's log entries. | |
| generic | init (this, json, design) |
| Constructor interface. | |
| generic | init (this, json, design, simulation) |
| Constructor interface. | |
| procedure, pass(this) | init_json (this, json, design) |
| Constructor based on json input. | |
| procedure, pass(this) | init_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(this) | get_value (this) |
| Get the value of the function. | |
| procedure, pass(this) | get_sensitivity (this, sensitivity) |
| Get the sensitivity of the function. | |
| procedure, pass(this) | reset_value (this) |
| Set the value to zero. | |
| procedure, pass(this) | reset_sensitivity (this) |
| Set the sensitivity to zero. | |
| procedure, pass(this) | accumulate_value (this, design, time) |
| Accumulate the value. | |
| procedure, pass(this) | accumulate_sensitivity (this, design, time) |
| Accumulate the sensitivity. | |
Public Attributes | |
| type(field_t), pointer | v => null() |
| Pointer to the v field. | |
| type(field_t), pointer | w => null() |
| Pointer to the w field. | |
| type(field_t), pointer | adjoint_u => null() |
| Pointer to adjoint u field. | |
| type(field_t), pointer | adjoint_v => null() |
| Pointer to adjoint v field. | |
| type(field_t), pointer | adjoint_w => null() |
| Pointer to adjoint w field. | |
| type(space_t), pointer | xh_gll |
| The original space used in the simulation. | |
| type(coef_t), pointer | c_xh_gll |
| cfs of the original space in the simulation | |
| type(space_t), pointer | xh_gl |
| The additional higher-order space used in dealiasing. | |
| type(coef_t), pointer | c_xh_gl |
| cfs of the higher-order space | |
| type(interpolator_t), pointer | gll_to_gl |
| Interpolator between the original and higher-order spaces. | |
| logical | dealias |
| If dealiasing should be applied. | |
| type(scratch_registry_t), pointer | scratch_gl |
| GL scratch registry. | |
| real(kind=rp) | weight = 1.0_rp |
| Weight of the objective in the overall cost function. | |
| character(len=25) | name = "" |
| Name of object in the logfile. | |
| real(kind=rp) | value = 0.0_dp |
| Value of the base_functional. | |
| type(vector_t) | sensitivity |
| Sensitivity field. | |
| logical | has_mask = .false. |
| containing a mask | |
| class(point_zone_t), pointer | mask => null() |
| A mask for where the objective function is evaluated. | |
| real(kind=dp) | start_time = 0.0_dp |
| Time window start for accumulation. | |
| real(kind=dp) | end_time = huge(0.0_dp) |
| Time window end for accumulation. | |
| real(kind=xp) | value_weight = 0.0_xp |
Length of time actually sampled by accumulate_value, used to normalise the running time average. | |
| real(kind=xp) | sensitivity_weight = 0.0_xp |
Length of time actually sampled by accumulate_sensitivity, used to normalise the running time average. | |
Definition at line 57 of file augmented_lagrangian_objective.f90.
|
inherited |
Normalised exactly as accumulate_value, so that the sensitivity stays consistent with the value it differentiates.
| this | The functional. |
| design | The design. |
| time | The current time state. |
Definition at line 128 of file base_functional.f90.
|
inherited |
Updates the value in place as the running mean of the function.
The result is the running mean of the function over the part of the functional's own time window that has been simulated so far, normalised by the length of time actually sampled. It is therefore invariant to the length of the run: extending end_time of the simulation past the functional's window leaves the value unchanged, and a windowed functional reports the mean over its window rather than over the run.
| this | The functional. |
| design | The design. |
| time | The current time state. |
Definition at line 126 of file base_functional.f90.
|
pure virtualinherited |
Definition at line 103 of file base_functional.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::free | ( | class(augmented_lagrangian_objective_t), intent(inout) | this | ) |
Definition at line 100 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 61 of file objective.f90.
|
inherited |
| [in] | this | The functional object. |
| [out] | headers | Header labels for each log entry. |
Definition at line 118 of file base_functional.f90.
|
inherited |
| [in] | this | The objective object. |
| [out] | headers | Header labels for each log entry. |
Definition at line 67 of file objective.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::get_log_headers | ( | class(augmented_lagrangian_objective_t), intent(in) | this, |
| character(len=*), dimension(:), intent(out) | headers | ||
| ) |
| [in] | this | The objective object. |
| [out] | headers | Header labels for each log entry. |
Definition at line 111 of file augmented_lagrangian_objective.f90.
|
inherited |
| [in] | this | The functional object. |
Definition at line 116 of file base_functional.f90.
|
inherited |
| [in] | this | The objective object. |
Definition at line 65 of file objective.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::get_log_size | ( | class(augmented_lagrangian_objective_t), intent(in) | this | ) |
| [in] | this | The objective object. |
Definition at line 108 of file augmented_lagrangian_objective.f90.
|
inherited |
| [in] | this | The functional object. |
| [out] | values | Values corresponding to the log headers. |
Definition at line 120 of file base_functional.f90.
|
inherited |
| [in] | this | The objective object. |
| [out] | values | Values corresponding to the log headers. |
Definition at line 69 of file objective.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::get_log_values | ( | class(augmented_lagrangian_objective_t), intent(in) | this, |
| real(kind=rp), dimension(:), intent(out) | values | ||
| ) |
| [in] | this | The objective object. |
| [out] | values | Values corresponding to the log headers. |
Definition at line 114 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 114 of file base_functional.f90.
|
inherited |
Definition at line 112 of file base_functional.f90.
|
inherited |
Definition at line 63 of file objective.f90.
|
inherited |
Definition at line 96 of file base_functional.f90.
|
inherited |
Definition at line 96 of file base_functional.f90.
|
inherited |
| this | The objective. |
| name | The name of the objective. |
| design_size | The number of design variables. |
| weight | The weight of the objective function. |
| mask_name | The name design the mask. [optional] |
| start_time | start of the integration window. [optional] |
| end_time | end of the integration window. [optional] |
Definition at line 59 of file objective.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::init_from_attributes | ( | class(augmented_lagrangian_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation, | ||
| real(kind=rp), intent(in) | weight, | ||
| character(len=*), intent(in) | name, | ||
| character(len=*), intent(in) | mask_name, | ||
| logical, intent(in) | dealias | ||
| ) |
| this | the objective. |
| design | the design. |
| simulation | the simulation. |
| weight | the weight of the objective function. |
| name | the name of the objective. |
| mask_name | the name of the mask. |
| dealias | should dealiasing be applied. |
Definition at line 97 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 99 of file base_functional.f90.
|
inherited |
Definition at line 101 of file base_functional.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::init_json_sim | ( | class(augmented_lagrangian_objective_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| class(design_t), intent(in) | design, | ||
| type(simulation_t), intent(inout), target | simulation | ||
| ) |
| this | the objective. |
| json | the JSON object. |
| design | the design. |
| simulation | the simulation. |
Definition at line 94 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 124 of file base_functional.f90.
|
inherited |
Definition at line 122 of file base_functional.f90.
|
pure virtualinherited |
Definition at line 108 of file base_functional.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::update_sensitivity | ( | class(augmented_lagrangian_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
| this | the objective. |
| design | the design. |
Definition at line 105 of file augmented_lagrangian_objective.f90.
|
pure virtualinherited |
Definition at line 106 of file base_functional.f90.
| procedure, pass(this), public augmented_lagrangian_objective::augmented_lagrangian_objective_t::update_value | ( | class(augmented_lagrangian_objective_t), intent(inout) | this, |
| class(design_t), intent(in) | design | ||
| ) |
| this | the objective. |
| design | the design. |
Definition at line 102 of file augmented_lagrangian_objective.f90.
| type(field_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::adjoint_u => null() |
Definition at line 68 of file augmented_lagrangian_objective.f90.
| type(field_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::adjoint_v => null() |
Definition at line 70 of file augmented_lagrangian_objective.f90.
| type(field_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::adjoint_w => null() |
Definition at line 72 of file augmented_lagrangian_objective.f90.
Definition at line 84 of file augmented_lagrangian_objective.f90.
Definition at line 78 of file augmented_lagrangian_objective.f90.
| logical augmented_lagrangian_objective::augmented_lagrangian_objective_t::dealias |
Definition at line 88 of file augmented_lagrangian_objective.f90.
Definition at line 82 of file base_functional.f90.
| type(interpolator_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::gll_to_gl |
Definition at line 86 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 71 of file base_functional.f90.
Definition at line 73 of file base_functional.f90.
Definition at line 64 of file base_functional.f90.
| type(scratch_registry_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::scratch_gl |
Definition at line 90 of file augmented_lagrangian_objective.f90.
|
inherited |
Definition at line 69 of file base_functional.f90.
Definition at line 88 of file base_functional.f90.
Definition at line 80 of file base_functional.f90.
| type(field_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::v => null() |
Definition at line 63 of file augmented_lagrangian_objective.f90.
Definition at line 67 of file base_functional.f90.
Definition at line 85 of file base_functional.f90.
| type(field_t), pointer augmented_lagrangian_objective::augmented_lagrangian_objective_t::w => null() |
Definition at line 65 of file augmented_lagrangian_objective.f90.
Definition at line 54 of file objective.f90.
Definition at line 82 of file augmented_lagrangian_objective.f90.
Definition at line 76 of file augmented_lagrangian_objective.f90.