Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
force_torque::force_torque_t Type Referenceabstract

A simulation component that computes the force and torque on a given boundary zone. More...

Inheritance diagram for force_torque::force_torque_t:
Collaboration diagram for force_torque::force_torque_t:

Public Member Functions

procedure, pass(thisinit (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(thisinit_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(thisinit_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(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (this, time)
 Compute the force_torque field.
 
procedure, pass(thisinit_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(thisinit_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(thisinit_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(thisfree_base (this)
 Destructor for the simulation_component_t (base) class.
 
procedure, pass(thisrestart (this, time)
 Wrapper for calling set_counter for the time based controllers. Serves as the public interface.
 
procedure, pass(thispreprocess (this, time)
 Wrapper for calling preprocess_ based on the preprocess_controller. Serves as the public interface.
 
procedure, pass(thiscompute (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(thispreprocess_ (this, time)
 The preprocessing function to be executed during the run.
 
procedure, pass(thiscompute_ (this, time)
 The main function to be executed during the run.
 
procedure, pass(thisrestart_ (this, time)
 The restart function to be called upon restarting simulation.
 
procedure, pass(thisparse_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_tn1
 
type(vector_tn2
 
type(vector_tn3
 
type(vector_tr1
 
type(vector_tr2
 
type(vector_tr3
 
type(vector_tforce1
 
type(vector_tforce2
 
type(vector_tforce3
 
type(vector_tforce4
 
type(vector_tforce5
 
type(vector_tforce6
 
type(vector_tpmsk
 
type(vector_tmu_msk
 
type(vector_ts11msk
 
type(vector_ts22msk
 
type(vector_ts33msk
 
type(vector_ts12msk
 
type(vector_ts13msk
 
type(vector_ts23msk
 
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_tbc
 
character(len=80) print_format
 
type(case_t), pointer case
 Pointer to the simulation case.
 
type(time_based_controller_tpreprocess_controller
 Controller for when to run preprocess.
 
type(time_based_controller_tcompute_controller
 Controller for when to run compute.
 
type(time_based_controller_toutput_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.
 

Detailed Description

Definition at line 68 of file force_torque.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, pass(this) simulation_component::simulation_component_t::compute ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 88 of file simulation_component.f90.

◆ compute_() [1/2]

procedure, pass(this) force_torque::force_torque_t::compute_ ( class(force_torque_t), intent(inout this,
type(time_state_t), intent(in time 
)
Parameters
timeThe current time state.

Definition at line 114 of file force_torque.f90.

◆ compute_() [2/2]

procedure, pass(this) simulation_component::simulation_component_t::compute_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 96 of file simulation_component.f90.

◆ free() [1/2]

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.

◆ free() [2/2]

procedure(simulation_component_free), deferred, pass simulation_component::simulation_component_t::free ( class(simulation_component_t), intent(inout this)
pure virtualinherited

Definition at line 92 of file simulation_component.f90.

◆ free_base()

procedure, pass(this) simulation_component::simulation_component_t::free_base ( class(simulation_component_t), intent(inout this)
inherited

Definition at line 78 of file simulation_component.f90.

◆ init() [1/2]

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.

◆ init() [2/2]

procedure(simulation_component_init), deferred, pass simulation_component::simulation_component_t::init ( class(simulation_component_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
pure virtualinherited

Definition at line 90 of file simulation_component.f90.

◆ init_base()

procedure, pass(this) simulation_component::simulation_component_t::init_base ( class(simulation_component_t), intent(inout this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)
inherited

Definition at line 62 of file simulation_component.f90.

◆ init_base_from_components() [1/2]

generic simulation_component::simulation_component_t::init_base_from_components ( class(simulation_component_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 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.

Definition at line 64 of file simulation_component.f90.

◆ init_base_from_components() [2/2]

generic simulation_component::simulation_component_t::init_base_from_components ( class(simulation_component_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 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.

Definition at line 64 of file simulation_component.f90.

◆ init_base_from_controllers()

procedure, pass(this) simulation_component::simulation_component_t::init_base_from_controllers ( class(simulation_component_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 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.

Definition at line 70 of file simulation_component.f90.

◆ init_base_from_controllers_properties()

procedure, pass(this) simulation_component::simulation_component_t::init_base_from_controllers_properties ( class(simulation_component_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 
)
inherited
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.

Definition at line 75 of file simulation_component.f90.

◆ init_common()

procedure, pass(this), private force_torque::force_torque_t::init_common ( class(force_torque_t), intent(inout this,
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 
)
private
Parameters
fluid_nameThe name of the fluid solver.
zone_idThe id of the boundary zone.
zone_nameThe name of the boundary zone, to use in the log.
centerThe center of the torque calculation.
scaleNormalization factor.
coefThe SEM coefficients.
long_printIf true, use a more precise print format.

Definition at line 100 of file force_torque.f90.

◆ init_from_components() [1/2]

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 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.
fluid_nameThe name of the fluid solver.
zone_idThe id of the boundary zone.
zone_nameThe name of the boundary zone, to use in the log.
centerThe center of the torque calculation.
scaleNormalization factor.
coefThe SEM coefficients.
long_printIf true, use a more precise print format.

Definition at line 102 of file force_torque.f90.

◆ init_from_components() [2/2]

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 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.
fluid_nameThe name of the fluid solver.
zone_idThe id of the boundary zone.
zone_nameThe name of the boundary zone, to use in the log.
centerThe center of the torque calculation.
scaleNormalization factor.
coefThe SEM coefficients.
long_printIf true, use a more precise print format.

Definition at line 102 of file force_torque.f90.

◆ init_from_controllers()

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 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerThe controller for running preprocessing.
compute_controllerThe controller for running compute.
output_controllerThe controller for producing output.
fluid_nameThe name of the fluid solver.
zone_idThe id of the boundary zone.
zone_nameThe name of the boundary zone, to use in the log.
centerThe center of the torque calculation.
scaleNormalization factor.
coefThe SEM coefficients.
long_printIf true, use a more precise print format.

Definition at line 105 of file force_torque.f90.

◆ init_from_controllers_properties()

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 
)
Parameters
caseThe simulation case object.
orderThe execution oder priority of the simcomp.
preprocess_controllerControl mode for preprocessing.
preprocess_valueValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_valueValue parameter for computing.
output_controllerControl mode for output.
output_valueValue parameter for output.
fluid_nameThe name of the fluid solver.
zone_idThe id of the boundary zone.
zone_nameThe name of the boundary zone, to use in the log.
centerThe center of the torque calculation.
scaleNormalization factor.
coefThe SEM coefficients.
long_printIf true, use a more precise print format.

Definition at line 109 of file force_torque.f90.

◆ parse_json()

procedure, pass(this) simulation_component::simulation_component_t::parse_json ( class(simulation_component_t), intent(inout this,
type(json_file), intent(inout json,
type(json_file), intent(inout case_params,
character(len=:), intent(inout), allocatable  preprocess_control,
real(kind=rp), intent(out preprocess_value,
character(len=:), intent(inout), allocatable  compute_control,
real(kind=rp), intent(out compute_value,
character(len=:), intent(inout), allocatable  output_control,
real(kind=rp), intent(out output_value 
)
inherited
Parameters
jsonThe JSON dictionary of the simcomp.
case_paramsThe entire case configuration JSON.
preprocess_valueControl mode for preprocessing.
preprocess_controllerValue parameter for preprocessing.
compute_controllerControl mode for computing.
compute_controllerValue parameter for computing.
output_controllerControl mode for output.
output_controllerValue parameter for output.

Definition at line 100 of file simulation_component.f90.

◆ preprocess()

procedure, pass(this) simulation_component::simulation_component_t::preprocess ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 84 of file simulation_component.f90.

◆ preprocess_()

procedure, pass(this) simulation_component::simulation_component_t::preprocess_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 94 of file simulation_component.f90.

◆ restart()

procedure, pass(this) simulation_component::simulation_component_t::restart ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 81 of file simulation_component.f90.

◆ restart_()

procedure, pass(this) simulation_component::simulation_component_t::restart_ ( class(simulation_component_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeThe current time.

Definition at line 98 of file simulation_component.f90.

Member Data Documentation

◆ bc

type(dirichlet_t) force_torque::force_torque_t::bc

Definition at line 93 of file force_torque.f90.

◆ case

type(case_t), pointer simulation_component::simulation_component_t::case
inherited

Definition at line 51 of file simulation_component.f90.

◆ center

real(kind=rp), dimension(3) force_torque::force_torque_t::center = 0.0_rp

Definition at line 88 of file force_torque.f90.

◆ coef

type(coef_t), pointer force_torque::force_torque_t::coef => null()

Definition at line 92 of file force_torque.f90.

◆ compute_controller

type(time_based_controller_t) simulation_component::simulation_component_t::compute_controller
inherited

Definition at line 55 of file simulation_component.f90.

◆ force1

type(vector_t) force_torque::force_torque_t::force1

Definition at line 83 of file force_torque.f90.

◆ force2

type(vector_t) force_torque::force_torque_t::force2

Definition at line 83 of file force_torque.f90.

◆ force3

type(vector_t) force_torque::force_torque_t::force3

Definition at line 83 of file force_torque.f90.

◆ force4

type(vector_t) force_torque::force_torque_t::force4

Definition at line 84 of file force_torque.f90.

◆ force5

type(vector_t) force_torque::force_torque_t::force5

Definition at line 84 of file force_torque.f90.

◆ force6

type(vector_t) force_torque::force_torque_t::force6

Definition at line 84 of file force_torque.f90.

◆ mu

type(field_t), pointer force_torque::force_torque_t::mu => null()

Definition at line 78 of file force_torque.f90.

◆ mu_msk

type(vector_t) force_torque::force_torque_t::mu_msk

Definition at line 86 of file force_torque.f90.

◆ n1

type(vector_t) force_torque::force_torque_t::n1

Definition at line 81 of file force_torque.f90.

◆ n2

type(vector_t) force_torque::force_torque_t::n2

Definition at line 81 of file force_torque.f90.

◆ n3

type(vector_t) force_torque::force_torque_t::n3

Definition at line 81 of file force_torque.f90.

◆ order

integer simulation_component::simulation_component_t::order
inherited

Definition at line 59 of file simulation_component.f90.

◆ output_controller

type(time_based_controller_t) simulation_component::simulation_component_t::output_controller
inherited

Definition at line 57 of file simulation_component.f90.

◆ p

type(field_t), pointer force_torque::force_torque_t::p => null()

Definition at line 76 of file force_torque.f90.

◆ pmsk

type(vector_t) force_torque::force_torque_t::pmsk

Definition at line 85 of file force_torque.f90.

◆ preprocess_controller

type(time_based_controller_t) simulation_component::simulation_component_t::preprocess_controller
inherited

Definition at line 53 of file simulation_component.f90.

◆ print_format

character(len=80) force_torque::force_torque_t::print_format

Definition at line 94 of file force_torque.f90.

◆ r1

type(vector_t) force_torque::force_torque_t::r1

Definition at line 82 of file force_torque.f90.

◆ r2

type(vector_t) force_torque::force_torque_t::r2

Definition at line 82 of file force_torque.f90.

◆ r3

type(vector_t) force_torque::force_torque_t::r3

Definition at line 82 of file force_torque.f90.

◆ s11msk

type(vector_t) force_torque::force_torque_t::s11msk

Definition at line 87 of file force_torque.f90.

◆ s12msk

type(vector_t) force_torque::force_torque_t::s12msk

Definition at line 87 of file force_torque.f90.

◆ s13msk

type(vector_t) force_torque::force_torque_t::s13msk

Definition at line 87 of file force_torque.f90.

◆ s22msk

type(vector_t) force_torque::force_torque_t::s22msk

Definition at line 87 of file force_torque.f90.

◆ s23msk

type(vector_t) force_torque::force_torque_t::s23msk

Definition at line 87 of file force_torque.f90.

◆ s33msk

type(vector_t) force_torque::force_torque_t::s33msk

Definition at line 87 of file force_torque.f90.

◆ scale

real(kind=rp) force_torque::force_torque_t::scale

Definition at line 89 of file force_torque.f90.

◆ u

type(field_t), pointer force_torque::force_torque_t::u => null()

Definition at line 70 of file force_torque.f90.

◆ v

type(field_t), pointer force_torque::force_torque_t::v => null()

Definition at line 72 of file force_torque.f90.

◆ w

type(field_t), pointer force_torque::force_torque_t::w => null()

Definition at line 74 of file force_torque.f90.

◆ zone_id

integer force_torque::force_torque_t::zone_id

Definition at line 90 of file force_torque.f90.

◆ zone_name

character(len=20) force_torque::force_torque_t::zone_name

Definition at line 91 of file force_torque.f90.


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