Skip to content

adam_prism_particle_injection_object

ADAM, PRISM Particle-in-Cell class definition, CPU backend.

Source: src/app/prism/common/adam_prism_particle_injection_object.F90

Dependencies

Contents

Variables

NameTypeAttributesDescription
INI_SECTION_NAMEcharacter(len=18)parameter
UNIFORM_DOMAIN_SPACE_DISTRIBUTIONcharacter(len=33)parameter
UNIFORM_BOX_SPACE_DISTRIBUTIONcharacter(len=32)parameter
UNIFORM_CELL_SPACE_DISTRIBUTIONcharacter(len=31)parameter
SPACE_RANDOM_NUMBER_GENERATORcharacter(len=29)parameter
SPACE_LAYERED_NUMBER_GENERATORcharacter(len=30)parameter
UNIFORM_MAXWELLIAN_VELOCITY_DISTRIBUTIONcharacter(len=18)parameter
NON_UNIFORM_MAXWELLIAN_VELOCITY_DISTRIBUTIONcharacter(len=22)parameter
VELOCITY_RANDOM_NUMBER_GENERATORcharacter(len=32)parameter
VELOCITY_LAYERED_NUMBER_GENERATORcharacter(len=33)parameter
space_rand_num_generator procedure(space_random_number_generator_interface)pointerSpace random number generator interface
velocity_rand_num_generatorprocedure(velocity_random_number_generator_interface)pointerSpace random number generator interface

Derived Types

prism_particle_injection_object

Components

NameTypeAttributesDescription
mpihtype(mpih_object)MPI handler.
space_distributioncharacter(len=99)Particle space distribution type.
space_random_number_generatorcharacter(len=99)Type of random number generator for space distribution
box_numberreal(kind=R8P)Number of boxes in which ensure charge neutrality
space_pairinglogicalEnable space pairing of particles
velocity_distributioncharacter(len=99)Particle velocity distribution type.
T_ireal(kind=R8P)Ionic plasma temperature (uniform)
T_i_xreal(kind=R8P)Ionic plasma temperature along x (non-uniform)
T_i_yreal(kind=R8P)Ionic plasma temperature along y (non-uniform)
T_i_zreal(kind=R8P)Ionic plasma temperature along z (non-uniform)
T_ereal(kind=R8P)Electronic plasma temperature (uniform)
T_e_xreal(kind=R8P)Electronic plasma temperature along x (non-uniform)
T_e_yreal(kind=R8P)Electronic plasma temperature along y (non-uniform)
T_e_zreal(kind=R8P)Electronic plasma temperature along z (non-uniform)
T_nreal(kind=R8P)Neutrals plasma temperature (uniform)
T_n_xreal(kind=R8P)Neutrals plasma temperature along x (non-uniform)
T_n_yreal(kind=R8P)Neutrals plasma temperature along y (non-uniform)
T_n_zreal(kind=R8P)Neutrals plasma temperature along z (non-uniform)
x_positionreal(kind=R8P)x coordinate of the initial position of the particle in single particle problem
y_positionreal(kind=R8P)y coordinate of the initial position of the particle in single particle problem
z_positionreal(kind=R8P)z coordinate of the initial position of the particle in single particle problem
chargereal(kind=R8P)charge of the particle in single particle problem
massreal(kind=R8P)mass of the particle in single particle problem
velocity_random_number_generatorcharacter(len=99)Type of random number generator for space distribution
velocity_pairinglogicalEnable space pairing of particles
v_drift_xreal(kind=R8P)Plasma drift velocity along x
v_drift_yreal(kind=R8P)Plasma drift_velocity along y
v_drift_zreal(kind=R8P)Plasma drift velocity along z
v_av_correctionlogicalFlag to correct the average v.
particle_space_injection procedure(particle_space_injection_interface)pass(self), pointerParticle space injection.
particle_velocity_injectionprocedure(particle_velocity_injection_interface)pass(self), pointerParticle velocity injection.

Type-Bound Procedures

NameAttributesDescription
descriptionpass(self)Return pretty-printed object description.
initializepass(self)Initialize IC.
load_from_filepass(self)Load config from file.
set_particle_initial_injectionpass(self)
uniform_domain_space_injectionpass(self)
uniform_cell_space_injectionpass(self)
uniform_maxwellian_velocity_injectionpass(self)
non_uniform_maxwellian_velocity_injectionpass(self)
single_particle_injectionpass(self)

Interfaces

particle_space_injection_interface

space_random_number_generator_interface

particle_velocity_injection_interface

velocity_random_number_generator_interface

Subroutines

initialize

Initialize particle_injection.

fortran
subroutine initialize(self, file_parameters, pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inoutExternal fields.
file_parameterstype(file_ini)inSimulation parameters ini file handler.
pictype(prism_pic_object)inPic object

Call graph

load_from_file

Load PIC configuration from file.

fortran
subroutine load_from_file(self, file_parameters, pic, go_on_fail)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inoutParticle injection object.
file_parameterstype(file_ini)inFile handler.
pictype(prism_pic_object)inPIC object
go_on_faillogicalinoptionalGo on if load fails.

Call graph

set_particle_initial_injection

fortran
subroutine set_particle_initial_injection(self, field, pic, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
fieldtype(field_object)in
pictype(prism_pic_object)inout
q_picreal(kind=R8P)inout

Call graph

single_particle_injection

fortran
subroutine single_particle_injection(self, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
q_picreal(kind=R8P)inout

Call graph

uniform_domain_space_injection

fortran
subroutine uniform_domain_space_injection(self, field, pic, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
fieldtype(field_object)in
pictype(prism_pic_object)in
q_picreal(kind=R8P)inout

Call graph

uniform_cell_space_injection

fortran
subroutine uniform_cell_space_injection(self, field, pic, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
fieldtype(field_object)in
pictype(prism_pic_object)in
q_picreal(kind=R8P)inout

Call graph

uniform_maxwellian_velocity_injection

fortran
subroutine uniform_maxwellian_velocity_injection(self, field, pic, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
fieldtype(field_object)in
pictype(prism_pic_object)in
q_picreal(kind=R8P)inout

Call graph

non_uniform_maxwellian_velocity_injection

fortran
subroutine non_uniform_maxwellian_velocity_injection(self, field, pic, q_pic)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inout
fieldtype(field_object)in
pictype(prism_pic_object)in
q_picreal(kind=R8P)inout

Call graph

write_initial_injection_tab

fortran
subroutine write_initial_injection_tab(filename, q_pic, np)

Arguments

NameTypeIntentAttributesDescription
filenamecharacter(len=*)in
q_picreal(kind=R8P)in
npinteger(kind=I4P)in

Call graph

random_number_generator

fortran
subroutine random_number_generator(N, shuffled_list, i_numb, r_n)

Arguments

NameTypeIntentAttributesDescription
Ninteger(kind=I4P)in
shuffled_listinteger(kind=I4P)inout
i_numbinteger(kind=I4P)in
r_nreal(kind=R8P)inout

layered_number_generator

fortran
subroutine layered_number_generator(N, shuffled_list, i_numb, r_n)

Arguments

NameTypeIntentAttributesDescription
Ninteger(kind=I4P)in
shuffled_listinteger(kind=I4P)inout
i_numbinteger(kind=I4P)in
r_nreal(kind=R8P)inout

Call graph

add_drift_velocity

fortran
subroutine add_drift_velocity(q_pic, v_drift)

Arguments

NameTypeIntentAttributesDescription
q_picreal(kind=R8P)inout
v_driftreal(kind=R8P)in

Call graph

apply_vel_av_correction

fortran
subroutine apply_vel_av_correction(q_pic, v_drift)

Arguments

NameTypeIntentAttributesDescription
q_picreal(kind=R8P)inout
v_driftreal(kind=R8P)in

Call graph

Functions

description

Return a pretty-formatted object description.

Returns: character(len=:)

fortran
function description(self, pic) result(desc)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_particle_injection_object)inExternal fields.
pictype(prism_pic_object)inPIC object

Call graph

fisher_yates_shuffle

Returns: integer(kind=I4P)

fortran
function fisher_yates_shuffle(index_list, nn) result(shuffled_list)

Arguments

NameTypeIntentAttributesDescription
index_listinteger(kind=I4P)in
nninteger(kind=I4P)in

Call graph