Neko 1.99.6
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
lpt Module Reference

Implements lpt_t. (Lagrangian Particle Tracking)

Data Types

type  lpt_t
 Passive Lagrangian particle tracking. More...
 

Functions/Subroutines

subroutine lpt_init_from_json (this, json, case)
 Build a mask of elastic wall facets from configured mesh zone ids.
 
subroutine read_particles_json (this, json)
 Read particle data from JSON and initialise particles on rank 0.
 
subroutine read_particles_csv (this, json)
 Read particle data from a CSV file and initialise particles on rank 0.
 
subroutine evaluate_velocity (this, u_fluid, v_fluid, w_fluid)
 Interpolate the carrier velocity at the local particles.
 
subroutine evaluate_acceleration (this, acc_x, acc_y, acc_z, u_fluid, v_fluid, w_fluid)
 Estimate particle acceleration from local carrier-fluid velocity.
 
subroutine update_current_rhs (this)
 Refresh particle RHS values using the current fluid solution.
 
subroutine, private update_lags (lag, laglag, new_values)
 Shift one particle history level and store new current values.
 
subroutine lpt_preprocess (this, time)
 Advance particle positions and, for inertial particles, velocities.
 
subroutine lpt_compute (this, time)
 Refresh particle/fluid coupling after the fluid step and emit output.
 
subroutine sync_time_controller (this, time)
 Build an LPT-local time-step history from the times at which LPT runs.
 
subroutine ode_integrate_ab_3c (this, sol_x, sol_y, sol_z, rhs_x, rhs_y, rhs_z, rhs_xlag, rhs_ylag, rhs_zlag, rhs_xlaglag, rhs_ylaglag, rhs_zlaglag, n)
 Advance a three-component state with variable-step Adams-Bashforth.
 
subroutine write_output (this, time)
 Write one trajectory snapshot.
 
subroutine lpt_free (this)
 Free all LPT-owned state and reset pointers/flags.
 
subroutine log_status (this)
 Emit a setup summary for the configured LPT instance.
 

Function/Subroutine Documentation

◆ evaluate_acceleration()

subroutine lpt::evaluate_acceleration ( class(lpt_t), intent(inout this,
type(vector_t), intent(inout acc_x,
type(vector_t), intent(inout acc_y,
type(vector_t), intent(inout acc_z,
type(vector_t), intent(in u_fluid,
type(vector_t), intent(in v_fluid,
type(vector_t), intent(in w_fluid 
)
private
Parameters
acc_xParticle acceleration in x.
acc_yParticle acceleration in y.
acc_zParticle acceleration in z.
u_fluidInterpolated x velocity at particle locations.
v_fluidInterpolated y velocity at particle locations.
w_fluidInterpolated z velocity at particle locations.

Definition at line 448 of file lpt.f90.

Here is the call graph for this function:

◆ evaluate_velocity()

subroutine lpt::evaluate_velocity ( class(lpt_t), intent(inout this,
type(vector_t), intent(inout u_fluid,
type(vector_t), intent(inout v_fluid,
type(vector_t), intent(inout w_fluid 
)
private
Parameters
u_fluidInterpolated x velocity at particle locations.
v_fluidInterpolated y velocity at particle locations.
w_fluidInterpolated z velocity at particle locations.

Definition at line 424 of file lpt.f90.

◆ log_status()

subroutine lpt::log_status ( class(lpt_t), intent(in this)
private

Definition at line 840 of file lpt.f90.

◆ lpt_compute()

subroutine lpt::lpt_compute ( class(lpt_t), intent(inout this,
type(time_state_t), intent(in time 
)
private
Parameters
timeCurrent simulation time used for output scheduling.

Definition at line 658 of file lpt.f90.

◆ lpt_free()

subroutine lpt::lpt_free ( class(lpt_t), intent(inout this)
private

Definition at line 811 of file lpt.f90.

◆ lpt_init_from_json()

subroutine lpt::lpt_init_from_json ( class(lpt_t), intent(inout), target  this,
type(json_file), intent(inout json,
class(case_t), intent(inout), target  case 
)

Reflect particles and histories after elastic wall contact. Construct from JSON. Supported particle input is either a flat coordinates array [x1,y1,z1,x2,y2,z2,...] or a three-column CSV points_file.

Definition at line 143 of file lpt.f90.

Here is the call graph for this function:

◆ lpt_preprocess()

subroutine lpt::lpt_preprocess ( class(lpt_t), intent(inout this,
type(time_state_t), intent(in time 
)
private
Parameters
timeCurrent simulation time used to build the LPT local step.

Definition at line 572 of file lpt.f90.

Here is the call graph for this function:

◆ ode_integrate_ab_3c()

subroutine lpt::ode_integrate_ab_3c ( class(lpt_t), intent(inout this,
type(vector_t), intent(inout sol_x,
type(vector_t), intent(inout sol_y,
type(vector_t), intent(inout sol_z,
type(vector_t), intent(in rhs_x,
type(vector_t), intent(in rhs_y,
type(vector_t), intent(in rhs_z,
type(vector_t), intent(in rhs_xlag,
type(vector_t), intent(in rhs_ylag,
type(vector_t), intent(in rhs_zlag,
type(vector_t), intent(in rhs_xlaglag,
type(vector_t), intent(in rhs_ylaglag,
type(vector_t), intent(in rhs_zlaglag,
integer, intent(in n 
)
private
Parameters
sol_xState component in x.
sol_yState component in y.
sol_zState component in z.
nNumber of local particles to advance.

Definition at line 719 of file lpt.f90.

◆ read_particles_csv()

subroutine lpt::read_particles_csv ( class(lpt_t), intent(inout this,
type(json_file), intent(inout json 
)
private
Parameters
jsonLPT configuration containing points_file.

Definition at line 350 of file lpt.f90.

◆ read_particles_json()

subroutine lpt::read_particles_json ( class(lpt_t), intent(inout this,
type(json_file), intent(inout json 
)
private
Parameters
jsonLPT configuration containing either coordinates or points_file.

Definition at line 277 of file lpt.f90.

◆ sync_time_controller()

subroutine lpt::sync_time_controller ( class(lpt_t), intent(inout this,
type(time_state_t), intent(in time 
)
private
Parameters
timeCurrent simulation time from the main solver.

Definition at line 676 of file lpt.f90.

◆ update_current_rhs()

subroutine lpt::update_current_rhs ( class(lpt_t), intent(inout this)
private

Definition at line 523 of file lpt.f90.

Here is the call graph for this function:

◆ update_lags()

subroutine, private lpt::update_lags ( type(vector_t), intent(inout lag,
type(vector_t), intent(inout laglag,
type(vector_t), intent(in new_values 
)
private
Parameters
lagPrevious-step values.
laglagTwo-steps-back values.
new_valuesValues to store in lag.

Definition at line 561 of file lpt.f90.

Here is the caller graph for this function:

◆ write_output()

subroutine lpt::write_output ( class(lpt_t), intent(inout this,
type(time_state_t), intent(in time 
)
private
Parameters
timeCurrent simulation time stored with particle data.

Definition at line 772 of file lpt.f90.