Skip to content

gc_kernels ​

Source: src/tests/prism/cpu/fd/PIC/gather_consistency/gather_consistency.F90

Contents ​

Variables ​

NameTypeAttributesDescription
R8Pintegerparameter
NintegerparameterCells per axis.
PIreal(kind=R8P)parameter
FV1real(kind=R8P)parameter
FD1real(kind=R8P)parameter

Derived Types ​

config ​

Components ​

NameTypeAttributesDescription
namecharacter(len=32)
kindcharacter(len=16)poly (non-conserving), matched, londrillo.
orderintegerParticle B-spline order.
filterlogicalfilter_deposition flag.
hsintegerFD half stencil.
preal(kind=R8P)
qwreal(kind=R8P)
radiusinteger
qfirstinteger
nqinteger
shiftreal(kind=R8P)Odd esirkepov_Q: base shape on the dual nodes.
gather_orderintegerfield_weighting_model order of the current gather.
minvreal(kind=R8P)londrillo: inverse of the constrained face map.

Subroutines ​

set_matched ​

modified_kernels / totorica_kernels of PRISM (q = 0: totorica with c%hs).

fortran
subroutine set_matched(c, q)

Arguments

NameTypeIntentAttributesDescription
ctype(config)inout
qintegerin

set_londrillo ​

Constrained face map of ensure_londrillo_current_solver_cache (odd mirror at the line ends), inverted densely.

fortran
subroutine set_londrillo(c)

Arguments

NameTypeIntentAttributesDescription
ctype(config)inout

Call graph

shape_1d ​

Charge shape of one axis on the cell centers (before P for matched).

fortran
subroutine shape_1d(c, x, w)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
xreal(kind=R8P)in
wreal(kind=R8P)out

Call graph

deposit_rho ​

fortran
subroutine deposit_rho(c, xp, rho)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
xpreal(kind=R8P)in
rhoreal(kind=R8P)out

Call graph

deposit_j ​

Esirkepov over the symmetric displacement xp -/+ v*dt/2 (dt small), then the solver; poly: J = rho v.

fortran
subroutine deposit_j(c, xp, v, jc)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
xpreal(kind=R8P)in
vreal(kind=R8P)in
jcreal(kind=R8P)out

Call graph

axis_op ​

fortran
subroutine axis_op(c, f, ax)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
freal(kind=R8P)inout
axintegerin

Call graph

dft3 ​

fortran
subroutine dft3(f, inverse_flag)

Arguments

NameTypeIntentAttributesDescription
fcomplex(kind=R8P)inout
inverse_flaglogicalin

Call graph

solve_e ​

E = -grad_h phi, -div_h grad_h phi = rho (null modes of the wide Laplacian dropped).

fortran
subroutine solve_e(hs, rho, e)

Arguments

NameTypeIntentAttributesDescription
hsintegerin
rhoreal(kind=R8P)in
ereal(kind=R8P)out

Call graph

solve_b ​

B = curl_h K J, K = (-lap_h)^-1 (magnetostatics of the particle's own current).

fortran
subroutine solve_b(hs, jc, b)

Arguments

NameTypeIntentAttributesDescription
hsintegerin
jcreal(kind=R8P)in
breal(kind=R8P)out

Call graph

Functions ​

bspl ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function bspl(order, r) result(w)

Arguments

NameTypeIntentAttributesDescription
orderintegerin
rreal(kind=R8P)in

Call graph

eff ​

effective_bspline_weight of adam_prism_pic_object (filtered NGP included).

Attributes: pure

Returns: real(kind=R8P)

fortran
function eff(order, r, filter) result(w)

Arguments

NameTypeIntentAttributesDescription
orderintegerin
rreal(kind=R8P)in
filterlogicalin

Call graph

xc ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function xc(i) result(x)

Arguments

NameTypeIntentAttributesDescription
iintegerin

Call graph

inverse ​

Returns: real(kind=R8P)

fortran
function inverse(a) result(b)

Arguments

NameTypeIntentAttributesDescription
areal(kind=R8P)in

Call graph

filt_p ​

filter_modified_axis: o_i = sum_s p(s) a_{i+s} (zero extension).

Returns: real(kind=R8P)

fortran
function filt_p(c, a) result(o)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
areal(kind=R8P)in

Call graph

filt_pt ​

Transpose of filt_p: o_m = sum_s p(s) a_{m-s}.

Returns: real(kind=R8P)

fortran
function filt_pt(c, a) result(o)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
areal(kind=R8P)in

Call graph

current_line ​

build_esirkepov_face_line + modified_current_line (matched) or the londrillo solve, one line along d.

Returns: real(kind=R8P)

fortran
function current_line(c, h, dt) result(j)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
hreal(kind=R8P)in
dtreal(kind=R8P)in

Call graph

line_to_faces_t ​

Transpose of the faces -> centers map of current_line: gf(f), f = 0..N (flux index, face x_f + 1/2).

Returns: real(kind=R8P)

fortran
function line_to_faces_t(c, g) result(gf)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
greal(kind=R8P)in

Call graph

gather_current ​

bspline_field_weighting: order = field_weighting_model, filter = filter_deposition.

Returns: real(kind=R8P)

fortran
function gather_current(c, xp, f) result(g)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
xpreal(kind=R8P)in
freal(kind=R8P)in

Call graph

gather_e ​

Coherent E gather: transpose of the charge operator, then the charge shape.

Returns: real(kind=R8P)

fortran
function gather_e(c, xp, f) result(g)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
xpreal(kind=R8P)in
freal(kind=R8P)in

Call graph

gather_j ​

Coherent gather of a field multiplying j_d: transpose of the J_d operator, then the instantaneous Esirkepov shape (order-1 B-spline on the faces along d, the charge shape on the transverse axes).

Returns: real(kind=R8P)

fortran
function gather_j(c, d, xp, f) result(g)

Arguments

NameTypeIntentAttributesDescription
ctype(config)in
dintegerin
xpreal(kind=R8P)in
freal(kind=R8P)in

Call graph

contract ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function contract(wx, wy, wz, f) result(g)

Arguments

NameTypeIntentAttributesDescription
wxreal(kind=R8P)in
wyreal(kind=R8P)in
wzreal(kind=R8P)in
freal(kind=R8P)in

Call graph

symbol ​

Centered FD first derivative of half stencil hs, real part of its symbol / i.

Attributes: pure

Returns: real(kind=R8P)

fortran
function symbol(hs, m) result(d)

Arguments

NameTypeIntentAttributesDescription
hsintegerin
mintegerin

Call graph