Graph Framework
Loading...
Searching...
No Matches
equilibrium::efit< T, SAFE_MATH > Class Template Referencefinal

2D EFIT equilibrium. More...

#include <equilibrium.hpp>

Inheritance diagram for equilibrium::efit< T, SAFE_MATH >:
equilibrium::generic< T, SAFE_MATH >

Public Member Functions

 efit (const T psimin, const T dpsi, const backend::buffer< T > te_c0, const backend::buffer< T > te_c1, const backend::buffer< T > te_c2, const backend::buffer< T > te_c3, graph::shared_leaf< T, SAFE_MATH > te_scale, const backend::buffer< T > ne_c0, const backend::buffer< T > ne_c1, const backend::buffer< T > ne_c2, const backend::buffer< T > ne_c3, graph::shared_leaf< T, SAFE_MATH > ne_scale, const backend::buffer< T > pres_c0, const backend::buffer< T > pres_c1, const backend::buffer< T > pres_c2, const backend::buffer< T > pres_c3, graph::shared_leaf< T, SAFE_MATH > pres_scale, const T rmin, const T dr, const T zmin, const T dz, const backend::buffer< T > fpol_c0, const backend::buffer< T > fpol_c1, const backend::buffer< T > fpol_c2, const backend::buffer< T > fpol_c3, const size_t num_cols, const backend::buffer< T > c00, const backend::buffer< T > c01, const backend::buffer< T > c02, const backend::buffer< T > c03, const backend::buffer< T > c10, const backend::buffer< T > c11, const backend::buffer< T > c12, const backend::buffer< T > c13, const backend::buffer< T > c20, const backend::buffer< T > c21, const backend::buffer< T > c22, const backend::buffer< T > c23, const backend::buffer< T > c30, const backend::buffer< T > c31, const backend::buffer< T > c32, const backend::buffer< T > c33)
 Construct a EFIT equilibrium.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_electron_density (graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z)
 Get the electron density.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_ion_density (const size_t index, graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z)
 Get the ion density.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_electron_temperature (graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z)
 Get the electron temperature.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_ion_temperature (const size_t index, graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z)
 Get the ion temperature.
 
virtual graph::shared_vector< T, SAFE_MATH > get_magnetic_field (graph::shared_leaf< T, SAFE_MATH > x, graph::shared_leaf< T, SAFE_MATH > y, graph::shared_leaf< T, SAFE_MATH > z)
 Get the magnetic field.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_characteristic_field (const size_t device_number=0) final
 Get the characteristic field.
 
- Public Member Functions inherited from equilibrium::generic< T, SAFE_MATH >
 generic (const std::vector< T > &masses, const std::vector< uint8_t > &charges)
 Construct a generic equilibrum.
 
virtual ~generic ()
 Destructor.
 
size_t get_num_ion_species () const
 Get the number of ion species.
 
get_ion_mass (const size_t index) const
 Get the mass for an ion species.
 
uint8_t get_ion_charge (const size_t index) const
 Get the charge for an ion species.
 
virtual graph::shared_vector< T, SAFE_MATH > get_esup1 (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the contravariant basis vector in the x1 direction.
 
virtual graph::shared_vector< T, SAFE_MATH > get_esup2 (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the contravariant basis vector in the x2 direction.
 
virtual graph::shared_vector< T, SAFE_MATH > get_esup3 (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the contravariant basis vector in the x3 direction.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_x (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the x position.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_y (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the y position.
 
virtual graph::shared_leaf< T, SAFE_MATH > get_z (graph::shared_leaf< T, SAFE_MATH > x1, graph::shared_leaf< T, SAFE_MATH > x2, graph::shared_leaf< T, SAFE_MATH > x3)
 Get the z position.
 

Additional Inherited Members

- Protected Attributes inherited from equilibrium::generic< T, SAFE_MATH >
const std::vector< T > ion_masses
 Ion masses for each species.
 
const std::vector< uint8_t > ion_charges
 Ion charge for each species.
 

Detailed Description

template<jit::float_scalar T, bool SAFE_MATH = false>
class equilibrium::efit< T, SAFE_MATH >

2D EFIT equilibrium.

This takes a BiCublic spline representation of the psi and cubic splines for ne, te, p, and fpol.

Template Parameters
TBase type of the calculation.
SAFE_MATHUse Safe Math operations.

Constructor & Destructor Documentation

◆ efit()

template<jit::float_scalar T, bool SAFE_MATH = false>
equilibrium::efit< T, SAFE_MATH >::efit ( const T  psimin,
const T  dpsi,
const backend::buffer< T >  te_c0,
const backend::buffer< T >  te_c1,
const backend::buffer< T >  te_c2,
const backend::buffer< T >  te_c3,
graph::shared_leaf< T, SAFE_MATH >  te_scale,
const backend::buffer< T >  ne_c0,
const backend::buffer< T >  ne_c1,
const backend::buffer< T >  ne_c2,
const backend::buffer< T >  ne_c3,
graph::shared_leaf< T, SAFE_MATH >  ne_scale,
const backend::buffer< T >  pres_c0,
const backend::buffer< T >  pres_c1,
const backend::buffer< T >  pres_c2,
const backend::buffer< T >  pres_c3,
graph::shared_leaf< T, SAFE_MATH >  pres_scale,
const T  rmin,
const T  dr,
const T  zmin,
const T  dz,
const backend::buffer< T >  fpol_c0,
const backend::buffer< T >  fpol_c1,
const backend::buffer< T >  fpol_c2,
const backend::buffer< T >  fpol_c3,
const size_t  num_cols,
const backend::buffer< T >  c00,
const backend::buffer< T >  c01,
const backend::buffer< T >  c02,
const backend::buffer< T >  c03,
const backend::buffer< T >  c10,
const backend::buffer< T >  c11,
const backend::buffer< T >  c12,
const backend::buffer< T >  c13,
const backend::buffer< T >  c20,
const backend::buffer< T >  c21,
const backend::buffer< T >  c22,
const backend::buffer< T >  c23,
const backend::buffer< T >  c30,
const backend::buffer< T >  c31,
const backend::buffer< T >  c32,
const backend::buffer< T >  c33 
)
inline

Construct a EFIT equilibrium.

Parameters
[in]psiminMinimum psi value.
[in]dpsiChange in psi value.
[in]te_c0Te c0 spline coefficient.
[in]te_c1Te c1 spline coefficient.
[in]te_c2Te c2 spline coefficient.
[in]te_c3Te c3 spline coefficient.
[in]te_scaleTemperatire scale.
[in]ne_c0Ne c0 spline coefficient.
[in]ne_c1Ne c1 spline coefficient.
[in]ne_c2Ne c2 spline coefficient.
[in]ne_c3Ne c3 spline coefficient.
[in]ne_scaleDenisty scale.
[in]pres_c0Pressure c0 spline coefficient.
[in]pres_c1Pressure c1 spline coefficient.
[in]pres_c2Pressure c2 spline coefficient.
[in]pres_c3Pressure c3 spline coefficient.
[in]pres_scalePressure scale.
[in]rminRadial gird minimum.
[in]drRadial grid spacing.
[in]zminVertical grid minimum.
[in]dzVertical grid spacing.
[in]fpol_c0Flux function c0 spline coefficient.
[in]fpol_c1Flux function c1 spline coefficient.
[in]fpol_c2Flux function c2 spline coefficient.
[in]fpol_c3Flux function c3 spline coefficient.
[in]num_colsNumber of columns for the 2D splines.
[in]c00Psi c00 spline coefficient.
[in]c01Psi c01 spline coefficient.
[in]c02Psi c02 spline coefficient.
[in]c03Psi c03 spline coefficient.
[in]c10Psi c10 spline coefficient.
[in]c11Psi c11 spline coefficient.
[in]c12Psi c12 spline coefficient.
[in]c13Psi c13 spline coefficient.
[in]c20Psi c20 spline coefficient.
[in]c21Psi c21 spline coefficient.
[in]c22Psi c22 spline coefficient.
[in]c23Psi c23 spline coefficient.
[in]c30Psi c30 spline coefficient.
[in]c31Psi c31 spline coefficient.
[in]c32Psi c32 spline coefficient.
[in]c33Psi c33 spline coefficient.

Member Function Documentation

◆ get_characteristic_field()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_characteristic_field ( const size_t  device_number = 0)
inlinefinalvirtual

Get the characteristic field.

Use the value at the y intercept.

Parameters
[in]device_numberDevice to use.
Returns
The characteristic field.

Implements equilibrium::generic< T, SAFE_MATH >.

◆ get_electron_density()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_electron_density ( graph::shared_leaf< T, SAFE_MATH >  x,
graph::shared_leaf< T, SAFE_MATH >  y,
graph::shared_leaf< T, SAFE_MATH >  z 
)
inlinevirtual

Get the electron density.

Parameters
[in]xX position.
[in]yY position.
[in]zZ position.
Returns
The electron density expression.

Implements equilibrium::generic< T, SAFE_MATH >.

◆ get_electron_temperature()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_electron_temperature ( graph::shared_leaf< T, SAFE_MATH >  x,
graph::shared_leaf< T, SAFE_MATH >  y,
graph::shared_leaf< T, SAFE_MATH >  z 
)
inlinevirtual

Get the electron temperature.

Parameters
[in]xX position.
[in]yY position.
[in]zZ position.
Returns
The electron temperature expression.

Implements equilibrium::generic< T, SAFE_MATH >.

◆ get_ion_density()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_ion_density ( const size_t  index,
graph::shared_leaf< T, SAFE_MATH >  x,
graph::shared_leaf< T, SAFE_MATH >  y,
graph::shared_leaf< T, SAFE_MATH >  z 
)
inlinevirtual

Get the ion density.

Parameters
[in]indexThe species index.
[in]xX position.
[in]yY position.
[in]zZ position.
Returns
The ion density expression.

Implements equilibrium::generic< T, SAFE_MATH >.

◆ get_ion_temperature()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_leaf< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_ion_temperature ( const size_t  index,
graph::shared_leaf< T, SAFE_MATH >  x,
graph::shared_leaf< T, SAFE_MATH >  y,
graph::shared_leaf< T, SAFE_MATH >  z 
)
inlinevirtual

Get the ion temperature.

Parameters
[in]indexThe species index.
[in]xX position.
[in]yY position.
[in]zZ position.
Returns
The ion temperature expression.

Implements equilibrium::generic< T, SAFE_MATH >.

◆ get_magnetic_field()

template<jit::float_scalar T, bool SAFE_MATH = false>
virtual graph::shared_vector< T, SAFE_MATH > equilibrium::efit< T, SAFE_MATH >::get_magnetic_field ( graph::shared_leaf< T, SAFE_MATH >  x,
graph::shared_leaf< T, SAFE_MATH >  y,
graph::shared_leaf< T, SAFE_MATH >  z 
)
inlinevirtual

Get the magnetic field.

Parameters
[in]xX position.
[in]yY position.
[in]zZ position.
Returns
Magnetic field expression.

Implements equilibrium::generic< T, SAFE_MATH >.


The documentation for this class was generated from the following file: