35 use json_module,
only : json_file
66 type(json_file),
intent(inout) :: json
67 class(
case_t),
intent(inout),
target :: case
70 call this%init_base(json,
case)
71 this%preprocess_controller = this%compute_controller
72 call this%lpt%init(json,
case)
73 this%lpt%output_controller = this%output_controller
74 this%name = this%lpt%name
85 t = min(this%preprocess_controller%time_to_next(time), &
86 this%compute_controller%time_to_next(time), &
87 this%output_controller%time_to_next(time), &
88 this%lpt%output_controller%time_to_next(time))
105 call this%lpt%preprocess(time)
113 call this%lpt%compute(time)
Defines a simulation case.
Simulation-component handler for Lagrangian particle tracking.
subroutine lpt_simcomp_free(this)
Free the component.
subroutine lpt_simcomp_preprocess(this, time)
Update LPT before the fluid solve.
real(kind=dp) function lpt_simcomp_time_to_next(this, time)
The time until the next scheduled execution, including the output of the particle tracker,...
subroutine lpt_simcomp_init_from_json(this, json, case)
Construct from JSON.
subroutine lpt_simcomp_compute(this, time)
Update LPT after the fluid solve.
Implements lpt_t. (Lagrangian Particle Tracking)
integer, parameter, public dp
Simulation components are objects that encapsulate functionality that can be fit to a particular comp...
subroutine preprocess_(this, time)
Dummy preprocessing function.
subroutine compute_(this, time)
Dummy compute function.
Module with things related to the simulation time.
Passive Lagrangian particle tracking.
A simulation component that drives passive Lagrangian particle tracking.
Base abstract class for simulation components.
A struct that contains all info about the time, expand as needed.