Skip to content

adam_prism_external_fields_object ​

ADAM, PRISM external fields definition, CPU backend.

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

Dependencies

Contents ​

Variables ​

NameTypeAttributesDescription
INI_SECTION_NAMEcharacter(len=15)parameterINI (config) file section name.
EF_TYPE_MAGNETIC_NOZZLEcharacter(len=15)parameterMagnetic Nozzle.
EF_TYPE_NONEcharacter(len=4)parameterDisable external field.
EF_TYPE_RMFcharacter(len=3)parameterRotating Magnetic Field.
EF_TYPE_UNIFORM_FIELDcharacter(len=13)parameterUniform D and B field.
EF_TYPE_RMF_AND_MAGNETIC_NOZZLEcharacter(len=23)parameterRotating Magnetic Field/Magnetic Nozzle.

Derived Types ​

prism_external_fields_object ​

PRISM external fields object.

Components ​

NameTypeAttributesDescription
ef_typecharacter(len=99)Field type.
RMF_frequencyreal(kind=R8P)Rotating magnetic field frequency.
RMF_B_amplitudereal(kind=R8P)Rotating magnetic field amplitude.
RMF_rotation_axischaracter(len=99)Rotating magnetic field rotation axis (X, Y, Z).
Uniform_D_amplitudereal(kind=R8P)Uniform electric displacement field amplitude.
Uniform_B_amplitudereal(kind=R8P)Uniform magnetic field amplitude.
displacement_from_rmfreal(kind=R8P)D scale for the RMF.
Uniform_directioncharacter(len=99)Uniform field direction (X, Y, Z).
alphainteger(kind=I4P)RMF rotation axis coordinate 1
betainteger(kind=I4P)RMF rotation axis coordinate 2
gamminteger(kind=I4P)RMF rotation axis coordinate 3
uniform_axisinteger(kind=I4P)Uniform field direction index.
pec_facesinteger(kind=I4P)allocatablePhysical PEC faces by local block, for FNL kernels.
add_external_fieldsprocedure(add_external_fields_interface)pass(self), pointerAdd external fields.
sub_external_fieldsprocedure(sub_external_fields_interface)pass(self), pointerSubtract external fields.

Type-Bound Procedures ​

NameAttributesDescription
descriptionpass(self)Return pretty-printed object description.
initializepass(self)Initialize IC.
load_from_filepass(self)Load config from file.
add_external_fields_rmfpass(self)Add rotating magnetic field to the field.
add_external_fields_uniformpass(self)Add uniform external field to the field.
sub_external_fields_rmfpass(self)Add rotating magnetic field to the field.
sub_external_fields_uniformpass(self)Subtract uniform external field from the field.

Interfaces ​

add_external_fields_interface ​

sub_external_fields_interface ​

Subroutines ​

initialize ​

Initialize external fields.

fortran
subroutine initialize(self, file_parameters, field, grid, physics)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
file_parameterstype(file_ini)inSimulation parameters ini file handler.
fieldtype(field_object)in
gridtype(grid_object)in
physicstype(prism_physics_object)in

Call graph

load_from_file ​

Load config from file.

fortran
subroutine load_from_file(self, file_parameters, go_on_fail)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
file_parameterstype(file_ini)inSimulation parameters ini file handler.
go_on_faillogicalinoptionalGo on if load fails.

Call graph

add_external_fields_rmf ​

Add rotating magnetic field to the field.

fortran
subroutine add_external_fields_rmf(self, field, grid, time, dt, gamm, q)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
fieldtype(field_object)inoutThe field.
gridtype(grid_object)inGrid (sibling realm component, threaded
timereal(kind=R8P)inCurrent simulation time.
dtreal(kind=R8P)inoptionalTime step.
gammreal(kind=R8P)inoptionalGamma values of RK SSP
qreal(kind=R8P)inoutPrimitive variables.

Call graph

add_external_fields_uniform ​

Add uniform external electric displacement and magnetic field to the field.

fortran
subroutine add_external_fields_uniform(self, field, grid, time, dt, gamm, q)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
fieldtype(field_object)inoutThe field.
gridtype(grid_object)inGrid.
timereal(kind=R8P)inCurrent simulation time.
dtreal(kind=R8P)inoptionalTime step.
gammreal(kind=R8P)inoptionalGamma values of RK SSP.
qreal(kind=R8P)inoutPrimitive variables.

Call graph

sub_external_fields_rmf ​

Add rotating magnetic field to the field.

fortran
subroutine sub_external_fields_rmf(self, field, grid, time, dt, gamm, q)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
fieldtype(field_object)inoutThe field.
gridtype(grid_object)inGrid (sibling realm component, threaded
timereal(kind=R8P)inCurrent simulation time.
dtreal(kind=R8P)inoptionalTime step.
gammreal(kind=R8P)inoptionalGamma values of RK SSP
qreal(kind=R8P)inoutPrimitive variables.

Call graph

sub_external_fields_uniform ​

Subtract uniform external electric displacement and magnetic field from the field.

fortran
subroutine sub_external_fields_uniform(self, field, grid, time, dt, gamm, q)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inoutExternal fields.
fieldtype(field_object)inoutThe field.
gridtype(grid_object)inGrid.
timereal(kind=R8P)inCurrent simulation time.
dtreal(kind=R8P)inoptionalTime step.
gammreal(kind=R8P)inoptionalGamma values of RK SSP.
qreal(kind=R8P)inoutPrimitive variables.

Call graph

physical_pec_faces ​

Identify physical PEC faces of one block; internal block ghosts keep the unreflected field.

Attributes: pure

fortran
subroutine physical_pec_faces(field, grid, b, pec_faces)

Arguments

NameTypeIntentAttributesDescription
fieldtype(field_object)in
gridtype(grid_object)in
binteger(kind=I4P)in
pec_faceslogicalout

Call graph

reflect_pec_ghost ​

Apply the same PEC parity as prism_cpu_object%set_boundary_conditions to an external field.

Attributes: pure

fortran
subroutine reflect_pec_ghost(i, j, k, ni, nj, nk, pec_faces, i_sample, j_sample, k_sample, sign_D, sign_B)

Arguments

NameTypeIntentAttributesDescription
iinteger(kind=I4P)in
jinteger(kind=I4P)in
kinteger(kind=I4P)in
niinteger(kind=I4P)in
njinteger(kind=I4P)in
nkinteger(kind=I4P)in
pec_faceslogicalin
i_sampleinteger(kind=I4P)out
j_sampleinteger(kind=I4P)out
k_sampleinteger(kind=I4P)out
sign_Dreal(kind=R8P)out
sign_Breal(kind=R8P)out

Call graph

Functions ​

description ​

Return a pretty-formatted object description.

Attributes: pure

Returns: character(len=:)

fortran
function description(self) result(desc)

Arguments

NameTypeIntentAttributesDescription
selfclass(prism_external_fields_object)inExternal fields.

Call graph