| 
    Neko 1.99.1
    
   A portable framework for high-order spectral element flow simulations 
   | 
 
A simulation component that computes the force and torque on a given boundary zone. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json, case) | 
| Constructor from json, wrapping the actual constructor.   | |
| generic | init_from_components (this, case, order, preprocess_controller, compute_controller, output_controller, fluid_name, zone_id, zone_name, center, scale, coef, long_print) | 
| Generic for constructing from components.   | |
| generic | init_from_components (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, fluid_name, zone_name, zone_id, center, scale, coef, long_print) | 
| Generic for constructing from components.   | |
| procedure, pass(this) | init_from_controllers (this, case, order, preprocess_controller, compute_controller, output_controller, fluid_name, zone_id, zone_name, center, scale, coef, long_print) | 
| Constructor from components, passing time_based_controllers.   | |
| procedure, pass(this) | init_from_controllers_properties (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value, fluid_name, zone_name, zone_id, center, scale, coef, long_print) | 
| Constructor from components, passing the properties of time_based_controllers.   | |
| procedure, pass(this) | free (this) | 
| Destructor.   | |
| procedure, pass(this) | compute_ (this, time) | 
| Compute the force_torque field.   | |
| procedure, pass(this) | init_base (this, json, case) | 
| Constructor for the simulation_component_t (base) class.   | |
| generic | init_base_from_components (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value) | 
| Constructor for the simulation_component_t (base) class from components.   | |
| generic | init_base_from_components (this, case, order, preprocess_controller, compute_controller, output_controller) | 
| Constructor for the simulation_component_t (base) class from components.   | |
| procedure, pass(this) | init_base_from_controllers (this, case, order, preprocess_controller, compute_controller, output_controller) | 
Constructor for the simulation_component_t (base) class from time_based_controllers, essentially directly from all components (we reserve the _from_components name for the generic binding).   | |
| procedure, pass(this) | init_base_from_controllers_properties (this, case, order, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value) | 
| Constructor for the simulation_component_t (base) class from properties of time_based_controllers, so the latter are constructed instead of assigned.   | |
| procedure, pass(this) | free_base (this) | 
| Destructor for the simulation_component_t (base) class.   | |
| procedure, pass(this) | restart (this, time) | 
Wrapper for calling set_counter for the time based controllers. Serves as the public interface.   | |
| procedure, pass(this) | preprocess (this, time) | 
Wrapper for calling preprocess_ based on the preprocess_controller. Serves as the public interface.   | |
| procedure, pass(this) | compute (this, time) | 
Wrapper for calling compute_ based on the compute_controller. Serves as the public interface.   | |
| procedure(simulation_component_init), deferred, pass | init (this, json, case) | 
| The common constructor using a JSON dictionary.   | |
| procedure(simulation_component_free), deferred, pass | free (this) | 
| Destructor.   | |
| procedure, pass(this) | preprocess_ (this, time) | 
| The preprocessing function to be executed during the run.   | |
| procedure, pass(this) | compute_ (this, time) | 
| The main function to be executed during the run.   | |
| procedure, pass(this) | restart_ (this, time) | 
| The restart function to be called upon restarting simulation.   | |
| procedure, pass(this) | parse_json (this, json, case_params, preprocess_control, preprocess_value, compute_control, compute_value, output_control, output_value) | 
| JSON parameter parser for the time-based controllers.   | |
Public Attributes | |
| type(field_t), pointer | u => null() | 
| X velocity component.   | |
| type(field_t), pointer | v => null() | 
| Y velocity component.   | |
| type(field_t), pointer | w => null() | 
| Z velocity component.   | |
| type(field_t), pointer | p => null() | 
| Pressure.   | |
| type(field_t), pointer | mu => null() | 
| Total dynamic viscosity.   | |
| type(vector_t) | n1 | 
| type(vector_t) | n2 | 
| type(vector_t) | n3 | 
| type(vector_t) | r1 | 
| type(vector_t) | r2 | 
| type(vector_t) | r3 | 
| type(vector_t) | force1 | 
| type(vector_t) | force2 | 
| type(vector_t) | force3 | 
| type(vector_t) | force4 | 
| type(vector_t) | force5 | 
| type(vector_t) | force6 | 
| type(vector_t) | pmsk | 
| type(vector_t) | mu_msk | 
| type(vector_t) | s11msk | 
| type(vector_t) | s22msk | 
| type(vector_t) | s33msk | 
| type(vector_t) | s12msk | 
| type(vector_t) | s13msk | 
| type(vector_t) | s23msk | 
| real(kind=rp), dimension(3) | center = 0.0_rp | 
| real(kind=rp) | scale | 
| integer | zone_id | 
| character(len=20) | zone_name | 
| type(coef_t), pointer | coef => null() | 
| type(dirichlet_t) | bc | 
| character(len=80) | print_format | 
| type(case_t), pointer | case | 
| Pointer to the simulation case.   | |
| type(time_based_controller_t) | preprocess_controller | 
Controller for when to run preprocess.   | |
| type(time_based_controller_t) | compute_controller | 
Controller for when to run compute.   | |
| type(time_based_controller_t) | output_controller | 
| Controller for when to do output.   | |
| integer | order | 
| The execution order, lowest excutes first.   | |
Private Member Functions | |
| procedure, pass(this), private | init_common (this, fluid_name, zone_id, zone_name, center, scale, coef, long_print) | 
| Common part of constructors.   | |
Definition at line 68 of file force_torque.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 88 of file simulation_component.f90.
| procedure, pass(this) force_torque::force_torque_t::compute_ | ( | class(force_torque_t), intent(inout) | this, | 
| type(time_state_t), intent(in) | time | ||
| ) | 
| time | The current time state. | 
Definition at line 114 of file force_torque.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 96 of file simulation_component.f90.
| procedure, pass(this) force_torque::force_torque_t::free | ( | class(force_torque_t), intent(inout) | this | ) | 
Definition at line 112 of file force_torque.f90.
      
  | 
  pure virtualinherited | 
Definition at line 92 of file simulation_component.f90.
      
  | 
  inherited | 
Definition at line 78 of file simulation_component.f90.
| procedure, pass(this) force_torque::force_torque_t::init | ( | class(force_torque_t), intent(inout), target | this, | 
| type(json_file), intent(inout) | json, | ||
| class(case_t), intent(inout), target | case | ||
| ) | 
Definition at line 98 of file force_torque.f90.
      
  | 
  pure virtualinherited | 
Definition at line 90 of file simulation_component.f90.
      
  | 
  inherited | 
Definition at line 62 of file simulation_component.f90.
      
  | 
  inherited | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | Control mode for preprocessing. | 
| preprocess_value | Value parameter for preprocessing. | 
| compute_controller | Control mode for computing. | 
| compute_value | Value parameter for computing. | 
| output_controller | Control mode for output. | 
| output_value | Value parameter for output. | 
Definition at line 64 of file simulation_component.f90.
      
  | 
  inherited | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | The controller for running preprocessing. | 
| compute_controller | The controller for running compute. | 
| output_controller | The controller for producing output. | 
Definition at line 64 of file simulation_component.f90.
      
  | 
  inherited | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | The controller for running preprocessing. | 
| compute_controller | The controller for running compute. | 
| output_controller | The controller for producing output. | 
Definition at line 70 of file simulation_component.f90.
      
  | 
  inherited | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | Control mode for preprocessing. | 
| preprocess_value | Value parameter for preprocessing. | 
| compute_controller | Control mode for computing. | 
| compute_value | Value parameter for computing. | 
| output_controller | Control mode for output. | 
| output_value | Value parameter for output. | 
Definition at line 75 of file simulation_component.f90.
      
  | 
  private | 
| fluid_name | The name of the fluid solver. | 
| zone_id | The id of the boundary zone. | 
| zone_name | The name of the boundary zone, to use in the log. | 
| center | The center of the torque calculation. | 
| scale | Normalization factor. | 
| coef | The SEM coefficients. | 
| long_print | If true, use a more precise print format. | 
Definition at line 100 of file force_torque.f90.
| generic force_torque::force_torque_t::init_from_components | ( | class(force_torque_t), intent(inout) | this, | 
| class(case_t), intent(inout), target | case, | ||
| integer | order, | ||
| character(len=*), intent(in) | preprocess_control, | ||
| real(kind=rp), intent(in) | preprocess_value, | ||
| character(len=*), intent(in) | compute_control, | ||
| real(kind=rp), intent(in) | compute_value, | ||
| character(len=*), intent(in) | output_control, | ||
| real(kind=rp), intent(in) | output_value, | ||
| character(len=*), intent(in) | fluid_name, | ||
| character(len=*), intent(in) | zone_name, | ||
| integer, intent(in) | zone_id, | ||
| real(kind=rp), dimension(3), intent(in) | center, | ||
| real(kind=rp), intent(in) | scale, | ||
| type(coef_t), intent(in), target | coef, | ||
| logical, intent(in) | long_print | ||
| ) | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | Control mode for preprocessing. | 
| preprocess_value | Value parameter for preprocessing. | 
| compute_controller | Control mode for computing. | 
| compute_value | Value parameter for computing. | 
| output_controller | Control mode for output. | 
| output_value | Value parameter for output. | 
| fluid_name | The name of the fluid solver. | 
| zone_id | The id of the boundary zone. | 
| zone_name | The name of the boundary zone, to use in the log. | 
| center | The center of the torque calculation. | 
| scale | Normalization factor. | 
| coef | The SEM coefficients. | 
| long_print | If true, use a more precise print format. | 
Definition at line 102 of file force_torque.f90.
| generic force_torque::force_torque_t::init_from_components | ( | class(force_torque_t), intent(inout) | this, | 
| class(case_t), intent(inout), target | case, | ||
| integer | order, | ||
| type(time_based_controller_t), intent(in) | preprocess_controller, | ||
| type(time_based_controller_t), intent(in) | compute_controller, | ||
| type(time_based_controller_t), intent(in) | output_controller, | ||
| character(len=*), intent(in) | fluid_name, | ||
| integer, intent(in) | zone_id, | ||
| character(len=*), intent(in) | zone_name, | ||
| real(kind=rp), dimension(3), intent(in) | center, | ||
| real(kind=rp), intent(in) | scale, | ||
| type(coef_t), intent(in), target | coef, | ||
| logical, intent(in) | long_print | ||
| ) | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | The controller for running preprocessing. | 
| compute_controller | The controller for running compute. | 
| output_controller | The controller for producing output. | 
| fluid_name | The name of the fluid solver. | 
| zone_id | The id of the boundary zone. | 
| zone_name | The name of the boundary zone, to use in the log. | 
| center | The center of the torque calculation. | 
| scale | Normalization factor. | 
| coef | The SEM coefficients. | 
| long_print | If true, use a more precise print format. | 
Definition at line 102 of file force_torque.f90.
| procedure, pass(this) force_torque::force_torque_t::init_from_controllers | ( | class(force_torque_t), intent(inout) | this, | 
| class(case_t), intent(inout), target | case, | ||
| integer | order, | ||
| type(time_based_controller_t), intent(in) | preprocess_controller, | ||
| type(time_based_controller_t), intent(in) | compute_controller, | ||
| type(time_based_controller_t), intent(in) | output_controller, | ||
| character(len=*), intent(in) | fluid_name, | ||
| integer, intent(in) | zone_id, | ||
| character(len=*), intent(in) | zone_name, | ||
| real(kind=rp), dimension(3), intent(in) | center, | ||
| real(kind=rp), intent(in) | scale, | ||
| type(coef_t), intent(in), target | coef, | ||
| logical, intent(in) | long_print | ||
| ) | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | The controller for running preprocessing. | 
| compute_controller | The controller for running compute. | 
| output_controller | The controller for producing output. | 
| fluid_name | The name of the fluid solver. | 
| zone_id | The id of the boundary zone. | 
| zone_name | The name of the boundary zone, to use in the log. | 
| center | The center of the torque calculation. | 
| scale | Normalization factor. | 
| coef | The SEM coefficients. | 
| long_print | If true, use a more precise print format. | 
Definition at line 105 of file force_torque.f90.
| procedure, pass(this) force_torque::force_torque_t::init_from_controllers_properties | ( | class(force_torque_t), intent(inout) | this, | 
| class(case_t), intent(inout), target | case, | ||
| integer | order, | ||
| character(len=*), intent(in) | preprocess_control, | ||
| real(kind=rp), intent(in) | preprocess_value, | ||
| character(len=*), intent(in) | compute_control, | ||
| real(kind=rp), intent(in) | compute_value, | ||
| character(len=*), intent(in) | output_control, | ||
| real(kind=rp), intent(in) | output_value, | ||
| character(len=*), intent(in) | fluid_name, | ||
| character(len=*), intent(in) | zone_name, | ||
| integer, intent(in) | zone_id, | ||
| real(kind=rp), dimension(3), intent(in) | center, | ||
| real(kind=rp), intent(in) | scale, | ||
| type(coef_t), intent(in), target | coef, | ||
| logical, intent(in) | long_print | ||
| ) | 
| case | The simulation case object. | 
| order | The execution oder priority of the simcomp. | 
| preprocess_controller | Control mode for preprocessing. | 
| preprocess_value | Value parameter for preprocessing. | 
| compute_controller | Control mode for computing. | 
| compute_value | Value parameter for computing. | 
| output_controller | Control mode for output. | 
| output_value | Value parameter for output. | 
| fluid_name | The name of the fluid solver. | 
| zone_id | The id of the boundary zone. | 
| zone_name | The name of the boundary zone, to use in the log. | 
| center | The center of the torque calculation. | 
| scale | Normalization factor. | 
| coef | The SEM coefficients. | 
| long_print | If true, use a more precise print format. | 
Definition at line 109 of file force_torque.f90.
      
  | 
  inherited | 
| json | The JSON dictionary of the simcomp. | 
| case_params | The entire case configuration JSON. | 
| preprocess_value | Control mode for preprocessing. | 
| preprocess_controller | Value parameter for preprocessing. | 
| compute_controller | Control mode for computing. | 
| compute_controller | Value parameter for computing. | 
| output_controller | Control mode for output. | 
| output_controller | Value parameter for output. | 
Definition at line 100 of file simulation_component.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 84 of file simulation_component.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 94 of file simulation_component.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 81 of file simulation_component.f90.
      
  | 
  inherited | 
| time | The current time. | 
Definition at line 98 of file simulation_component.f90.
| type(dirichlet_t) force_torque::force_torque_t::bc | 
Definition at line 93 of file force_torque.f90.
Definition at line 51 of file simulation_component.f90.
Definition at line 88 of file force_torque.f90.
Definition at line 92 of file force_torque.f90.
      
  | 
  inherited | 
Definition at line 55 of file simulation_component.f90.
| type(vector_t) force_torque::force_torque_t::force1 | 
Definition at line 83 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::force2 | 
Definition at line 83 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::force3 | 
Definition at line 83 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::force4 | 
Definition at line 84 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::force5 | 
Definition at line 84 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::force6 | 
Definition at line 84 of file force_torque.f90.
Definition at line 78 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::mu_msk | 
Definition at line 86 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::n1 | 
Definition at line 81 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::n2 | 
Definition at line 81 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::n3 | 
Definition at line 81 of file force_torque.f90.
      
  | 
  inherited | 
Definition at line 59 of file simulation_component.f90.
      
  | 
  inherited | 
Definition at line 57 of file simulation_component.f90.
Definition at line 76 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::pmsk | 
Definition at line 85 of file force_torque.f90.
      
  | 
  inherited | 
Definition at line 53 of file simulation_component.f90.
| character(len=80) force_torque::force_torque_t::print_format | 
Definition at line 94 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::r1 | 
Definition at line 82 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::r2 | 
Definition at line 82 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::r3 | 
Definition at line 82 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s11msk | 
Definition at line 87 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s12msk | 
Definition at line 87 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s13msk | 
Definition at line 87 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s22msk | 
Definition at line 87 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s23msk | 
Definition at line 87 of file force_torque.f90.
| type(vector_t) force_torque::force_torque_t::s33msk | 
Definition at line 87 of file force_torque.f90.
Definition at line 89 of file force_torque.f90.
Definition at line 70 of file force_torque.f90.
Definition at line 72 of file force_torque.f90.
Definition at line 74 of file force_torque.f90.
| integer force_torque::force_torque_t::zone_id | 
Definition at line 90 of file force_torque.f90.
| character(len=20) force_torque::force_torque_t::zone_name | 
Definition at line 91 of file force_torque.f90.