XGCa
|
Functions | |
void | neg_gradpar_single_plane (const View< bool *, CLayout, DeviceType > &is_inside, const Projection< DeviceType > &projection, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &input_left, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &input_center, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &input_right, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &output, double sgn, Order derivative_order) |
void | negative_gradparx2 (const GradParXTmp &gpxt, const Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > &input, const Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > &output, Order derivative_order) |
void neg_gradpar_single_plane | ( | const View< bool *, CLayout, DeviceType > & | is_inside, |
const Projection< DeviceType > & | projection, | ||
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > & | input_left, | ||
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > & | input_center, | ||
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > & | input_right, | ||
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > & | output, | ||
double | sgn, | ||
Order | derivative_order | ||
) |
Calculates the gradient of the input array. Includes a precomputation to check which nodes are inside the boundary provided. This could be done once in grid setup and stored. This code is called from Fortran and is self-contained. Thus, everything needed is passed from Fortran to C++ even though grid information is already in the C++ grid object. It will eventually be refactored accordingly.
[in] | nseg | is the number of boundary segments(?) |
[in] | sml_bt_sign | is the user-input direction of the toroidal magnetic field |
[in] | tr_fort | is an array of the triangles the corresponding to the field-following path through the vertex |
[in] | p_fort | is an array of the weights of the three triangle vertices for tr_fort triangles |
[in] | dx_fort | is an array of distances |
[in] | bd_fort | is an array of the boundary segments |
[in] | input | is the potential |
[out] | output | is the gradient of the potential |
[in] | derivative_order | is which derivative to take |
void negative_gradparx2 | ( | const GradParXTmp & | gpxt, |
const Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > & | input, | ||
const Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > & | output, | ||
Order | derivative_order | ||
) |
Calculates the gradient of the input array. Includes a precomputation to check which nodes are inside the boundary provided. This could be done once in grid setup and stored. This code is called from Fortran and is self-contained. Thus, everything needed is passed from Fortran to C++ even though grid information is already in the C++ grid object. It will eventually be refactored accordingly.
[in] | nseg | is the number of boundary segments(?) |
[in] | sml_bt_sign | is the user-input direction of the toroidal magnetic field |
[in] | tr_fort | is an array of the triangles the corresponding to the field-following path through the vertex |
[in] | p_fort | is an array of the weights of the three triangle vertices for tr_fort triangles |
[in] | dx_fort | is an array of distances |
[in] | bd_fort | is an array of the boundary segments |
[in] | input | is the potential |
[out] | output | is the gradient of the potential |
[in] | derivative_order | is which derivative to take |