Appearance
gc_kernels
Source: src/tests/prism/cpu/fd/PIC/gather_consistency/gather_consistency.F90
Contents
- config
- set_matched
- set_londrillo
- shape_1d
- deposit_rho
- deposit_j
- axis_op
- dft3
- solve_e
- solve_b
- bspl
- eff
- xc
- inverse
- filt_p
- filt_pt
- current_line
- line_to_faces_t
- gather_current
- gather_e
- gather_j
- contract
- symbol
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
R8P | integer | parameter | |
N | integer | parameter | Cells per axis. |
PI | real(kind=R8P) | parameter | |
FV1 | real(kind=R8P) | parameter | |
FD1 | real(kind=R8P) | parameter |
Derived Types
config
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
name | character(len=32) | ||
kind | character(len=16) | poly (non-conserving), matched, londrillo. | |
order | integer | Particle B-spline order. | |
filter | logical | filter_deposition flag. | |
hs | integer | FD half stencil. | |
p | real(kind=R8P) | ||
qw | real(kind=R8P) | ||
radius | integer | ||
qfirst | integer | ||
nq | integer | ||
shift | real(kind=R8P) | Odd esirkepov_Q: base shape on the dual nodes. | |
gather_order | integer | field_weighting_model order of the current gather. | |
minv | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | inout | ||
q | integer | in |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
x | real(kind=R8P) | in | ||
w | real(kind=R8P) | out |
Call graph
deposit_rho
fortran
subroutine deposit_rho(c, xp, rho)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
xp | real(kind=R8P) | in | ||
rho | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
xp | real(kind=R8P) | in | ||
v | real(kind=R8P) | in | ||
jc | real(kind=R8P) | out |
Call graph
axis_op
fortran
subroutine axis_op(c, f, ax)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
f | real(kind=R8P) | inout | ||
ax | integer | in |
Call graph
dft3
fortran
subroutine dft3(f, inverse_flag)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
f | complex(kind=R8P) | inout | ||
inverse_flag | logical | in |
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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
hs | integer | in | ||
rho | real(kind=R8P) | in | ||
e | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
hs | integer | in | ||
jc | real(kind=R8P) | in | ||
b | real(kind=R8P) | out |
Call graph
Functions
bspl
Attributes: pure
Returns: real(kind=R8P)
fortran
function bspl(order, r) result(w)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
order | integer | in | ||
r | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
order | integer | in | ||
r | real(kind=R8P) | in | ||
filter | logical | in |
Call graph
xc
Attributes: pure
Returns: real(kind=R8P)
fortran
function xc(i) result(x)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
i | integer | in |
Call graph
inverse
Returns: real(kind=R8P)
fortran
function inverse(a) result(b)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
a | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
a | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
a | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
h | real(kind=R8P) | in | ||
dt | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
g | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
xp | real(kind=R8P) | in | ||
f | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
xp | real(kind=R8P) | in | ||
f | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | type(config) | in | ||
d | integer | in | ||
xp | real(kind=R8P) | in | ||
f | real(kind=R8P) | in |
Call graph
contract
Attributes: pure
Returns: real(kind=R8P)
fortran
function contract(wx, wy, wz, f) result(g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
wx | real(kind=R8P) | in | ||
wy | real(kind=R8P) | in | ||
wz | real(kind=R8P) | in | ||
f | real(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
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
hs | integer | in | ||
m | integer | in |
Call graph