PartMC  2.8.0
Data Types | Functions/Subroutines | Variables
pmc_run_part Module Reference

Monte Carlo simulation. More...

Data Types

type  run_part_opt_t
 Options controlling the execution of run_part(). More...
 

Functions/Subroutines

subroutine run_part (scenario, env_state, aero_data, aero_state, gas_data, gas_state, run_part_opt)
 Do a particle-resolved Monte Carlo simulation. More...
 
subroutine print_part_progress (i_repeat, t_sim_elapsed, n_part, n_coag, n_emit, n_dil_in, n_dil_out, n_nuc, t_wall_elapsed, t_wall_remain)
 Print the current simulation progress to the screen. More...
 
integer function pmc_mpi_pack_size_run_part_opt (val)
 Determines the number of bytes required to pack the given value. More...
 
subroutine pmc_mpi_pack_run_part_opt (buffer, position, val)
 Packs the given value into the buffer, advancing position. More...
 
subroutine pmc_mpi_unpack_run_part_opt (buffer, position, val)
 Unpacks the given value from the buffer, advancing position. More...
 
subroutine spec_file_read_run_part (file, run_part_opt, aero_data, aero_state_init, gas_data, gas_state_init, env_state_init, aero_dist_init, scenario, n_part, rand_init, do_init_equilibrate, do_restart)
 Read the specification for a run_part simulation from a spec file. More...
 
subroutine run_part_timestep (scenario, env_state, aero_data, aero_state, gas_data, gas_state, run_part_opt, i_time, t_start, last_output_time, last_progress_time, i_output, progress_n_samp, progress_n_coag, progress_n_emit, progress_n_dil_in, progress_n_dil_out, progress_n_nuc)
 Do a one particle-resolved Monte Carlo simulation timestep. More...
 
subroutine run_part_timeblock (scenario, env_state, aero_data, aero_state, gas_data, gas_state, run_part_opt, i_cur, i_next, t_start, last_output_time, last_progress_time, i_output, progress_n_samp, progress_n_coag, progress_n_emit, progress_n_dil_in, progress_n_dil_out, progress_n_nuc)
 Do a number of time steps of particle-reoslved Monte Carlo simulation. More...
 
subroutine pmc_mpi_broadcast_run_part (run_part_opt, aero_data, aero_state_init, gas_data, gas_state_init, env_state_init, aero_dist_init, scenario, n_part, rand_init, do_init_equilibrate, do_restart)
 Read the specification for a run_part simulation from a spec file. More...
 

Variables

integer, parameter parallel_coag_type_invalid = 0
 Type code for undefined or invalid parallel coagulation method. More...
 
integer, parameter parallel_coag_type_local = 1
 Type code for local parallel coagulation. More...
 
integer, parameter parallel_coag_type_dist = 2
 Type code for distributed parallel coagulation. More...
 

Detailed Description

Monte Carlo simulation.

Function/Subroutine Documentation

◆ pmc_mpi_broadcast_run_part()

subroutine pmc_run_part::pmc_mpi_broadcast_run_part ( type(run_part_opt_t), intent(inout)  run_part_opt,
type(aero_data_t), intent(inout)  aero_data,
type(aero_state_t), intent(inout)  aero_state_init,
type(gas_data_t), intent(inout)  gas_data,
type(gas_state_t), intent(inout)  gas_state_init,
type(env_state_t), intent(inout)  env_state_init,
type(aero_dist_t), intent(inout)  aero_dist_init,
type(scenario_t), intent(inout)  scenario,
real(kind=dp), intent(inout)  n_part,
integer, intent(inout)  rand_init,
logical, intent(inout)  do_init_equilibrate,
logical, intent(inout)  do_restart 
)

Read the specification for a run_part simulation from a spec file.

Parameters
[in,out]run_part_optMonte Carlo options.
[in,out]aero_dataAerosol data.
[in,out]aero_state_initInitial aerosol state.
[in,out]gas_dataGas data.
[in,out]gas_state_initInitial gas state.
[in,out]env_state_initInitial environmental state.
[in,out]aero_dist_initInitial aerosol distribution.
[in,out]scenarioScenario data.
[in,out]n_partIdeal number of computational particles.
[in,out]rand_initRandom number generator seed.
[in,out]do_init_equilibrateWhether to equilibrate.
[in,out]do_restartWhether simulation is a restart.

Definition at line 1053 of file run_part.F90.

◆ pmc_mpi_pack_run_part_opt()

subroutine pmc_run_part::pmc_mpi_pack_run_part_opt ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(run_part_opt_t), intent(in)  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 346 of file run_part.F90.

◆ pmc_mpi_pack_size_run_part_opt()

integer function pmc_run_part::pmc_mpi_pack_size_run_part_opt ( type(run_part_opt_t), intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 302 of file run_part.F90.

◆ pmc_mpi_unpack_run_part_opt()

subroutine pmc_run_part::pmc_mpi_unpack_run_part_opt ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(run_part_opt_t), intent(inout)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 400 of file run_part.F90.

◆ print_part_progress()

subroutine pmc_run_part::print_part_progress ( integer, intent(in)  i_repeat,
real(kind=dp), intent(in)  t_sim_elapsed,
integer, intent(in)  n_part,
integer, intent(in)  n_coag,
integer, intent(in)  n_emit,
integer, intent(in)  n_dil_in,
integer, intent(in)  n_dil_out,
integer, intent(in)  n_nuc,
real(kind=dp), intent(in)  t_wall_elapsed,
real(kind=dp), intent(in)  t_wall_remain 
)

Print the current simulation progress to the screen.

Parameters
[in]i_repeatRepeat number of simulation.
[in]t_sim_elapsedElapsed simulation time (s).
[in]n_partNumber of particles.
[in]n_coagNumber of coagulated particles since last progress printing.
[in]n_emitNumber of emitted particles since last progress printing.
[in]n_dil_inNumber of diluted-in particles since last progress printing.
[in]n_dil_outNumber of diluted-out particles since last progress printing.
[in]n_nucNumber of nucleated particles since last progress printing.
[in]t_wall_elapsedElapsed wall time (s).
[in]t_wall_remainEstimated remaining wall time (s).

Definition at line 257 of file run_part.F90.

◆ run_part()

subroutine pmc_run_part::run_part ( type(scenario_t), intent(in)  scenario,
type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(inout)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(inout)  gas_state,
type(run_part_opt_t), intent(in)  run_part_opt 
)

Do a particle-resolved Monte Carlo simulation.

Parameters
[in]scenarioEnvironment state.
[in,out]env_stateEnvironment state.
[in,out]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in,out]gas_stateGas state.
[in]run_part_optMonte Carlo options.

Definition at line 125 of file run_part.F90.

◆ run_part_timeblock()

subroutine pmc_run_part::run_part_timeblock ( type(scenario_t), intent(in)  scenario,
type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(inout)  gas_state,
type(run_part_opt_t), intent(in)  run_part_opt,
integer, intent(in)  i_cur,
integer, intent(in)  i_next,
real(kind=dp), intent(in)  t_start,
real(kind=dp), intent(inout)  last_output_time,
real(kind=dp), intent(inout)  last_progress_time,
integer, intent(inout)  i_output,
integer, intent(inout)  progress_n_samp,
integer, intent(inout)  progress_n_coag,
integer, intent(inout)  progress_n_emit,
integer, intent(inout)  progress_n_dil_in,
integer, intent(inout)  progress_n_dil_out,
integer, intent(inout)  progress_n_nuc 
)

Do a number of time steps of particle-reoslved Monte Carlo simulation.

Parameters
[in]scenarioEnvironment state.
[in,out]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in,out]gas_stateGas state.
[in]run_part_optMonte Carlo options.
[in]i_curCurrent simulation timestep.
[in,out]last_output_timeLast time output was written (s).
[in,out]last_progress_timeLast time progress was output to screen (s).
[in,out]i_outputOutput timestep integer for output filename.
[in,out]progress_n_sampTotal number of samples tested.
[in,out]progress_n_coagNumber of coagulation events.
[in,out]progress_n_emitNumber of particles added by emission.
[in,out]progress_n_dil_inNumber of particles added by dilution.
[in,out]progress_n_dil_outNumber of particles removed by dilution.
[in,out]progress_n_nucNumber of particles added by nucleation.

Definition at line 981 of file run_part.F90.

◆ run_part_timestep()

subroutine pmc_run_part::run_part_timestep ( type(scenario_t), intent(in)  scenario,
type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(inout)  gas_state,
type(run_part_opt_t), intent(in)  run_part_opt,
integer, intent(in)  i_time,
real(kind=dp), intent(in)  t_start,
real(kind=dp), intent(inout)  last_output_time,
real(kind=dp), intent(inout)  last_progress_time,
integer, intent(inout)  i_output,
integer, intent(inout)  progress_n_samp,
integer, intent(inout)  progress_n_coag,
integer, intent(inout)  progress_n_emit,
integer, intent(inout)  progress_n_dil_in,
integer, intent(inout)  progress_n_dil_out,
integer, intent(inout)  progress_n_nuc 
)

Do a one particle-resolved Monte Carlo simulation timestep.

Parameters
[in]scenarioEnvironment state.
[in,out]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in,out]gas_stateGas state.
[in]run_part_optMonte Carlo options.
[in]i_timeCurrent simulation time.
[in,out]last_output_timeLast time output was written (s).
[in,out]last_progress_timeLast time progress was output to screen (s).
[in,out]i_outputOutput timestep integer for output filename.
[in,out]progress_n_sampTotal number of samples tested.
[in,out]progress_n_coagNumber of coagulation events.
[in,out]progress_n_emitNumber of particles added by emission.
[in,out]progress_n_dil_inNumber of particles added by dilution.
[in,out]progress_n_dil_outNumber of particles removed by dilution.
[in,out]progress_n_nucNumber of particles added by nucleation.

Definition at line 753 of file run_part.F90.

◆ spec_file_read_run_part()

subroutine pmc_run_part::spec_file_read_run_part ( type(spec_file_t), intent(inout)  file,
type(run_part_opt_t), intent(inout)  run_part_opt,
type(aero_data_t), intent(inout)  aero_data,
type(aero_state_t), intent(inout)  aero_state_init,
type(gas_data_t), intent(inout)  gas_data,
type(gas_state_t), intent(inout)  gas_state_init,
type(env_state_t), intent(inout)  env_state_init,
type(aero_dist_t), intent(inout)  aero_dist_init,
type(scenario_t), intent(inout)  scenario,
real(kind=dp), intent(inout)  n_part,
integer, intent(out)  rand_init,
logical, intent(out)  do_init_equilibrate,
logical, intent(out)  do_restart 
)

Read the specification for a run_part simulation from a spec file.

Parameters
[in,out]fileSpec file.
[in,out]run_part_optMonte Carlo options.
[in,out]aero_dataAerosol data.
[in,out]aero_state_initInitial aerosol state.
[in,out]gas_dataGas data.
[in,out]gas_state_initInitial gas state.
[in,out]env_state_initInitial environmental state.
[in,out]aero_dist_initInitial aerosol distribution.
[in,out]scenarioScenario data.
[in,out]n_partIdeal number of computational particles.
[out]rand_initRandom number generator seed.
[out]do_init_equilibrateWhether to equilibrate.
[out]do_restartWhether simulation is a restart.

Definition at line 454 of file run_part.F90.

Variable Documentation

◆ parallel_coag_type_dist

integer, parameter pmc_run_part::parallel_coag_type_dist = 2

Type code for distributed parallel coagulation.

Definition at line 46 of file run_part.F90.

◆ parallel_coag_type_invalid

integer, parameter pmc_run_part::parallel_coag_type_invalid = 0

Type code for undefined or invalid parallel coagulation method.

Definition at line 42 of file run_part.F90.

◆ parallel_coag_type_local

integer, parameter pmc_run_part::parallel_coag_type_local = 1

Type code for local parallel coagulation.

Definition at line 44 of file run_part.F90.