Derived Types

TypeLocationExtendsDescription
AdditiveDerivation additive_derivation_class Derivation

Composite derivation class containing a number of calculation rules applied additively. All derivations must return same length array

BasicNormalization basic_normalization_class Normalization

Basic normalization based on electron quantities and containing most common values

BoundedExtDerivation bounded_ext_derivation_class Derivation

Calculates extrapolated value of a fluid quantity at a boundary cell edge, optionally applying a lower and/or upper bound to the extrapolated value. Accepts scalar variables for lower/upper bounds. Expects 1-3 variables, The first expected variable name is the interpolated variable. The second is the upper bound if no lower bound variable is expected, otherwise it is the lower bound. The third is the upper bound (if expected). Bounds are all expected to have positive values, and this will be ensured by taking their absolute values. If applied to the left boundary, will apply -abs(lowerBound) as upper bound and -abs(upperBound) as lower bound, i.e. the bounds are reflected around 0.

BTableau explicit_rk_integrator_class None

Butcher tableau derived type

CalculationKernel calculation_tree_class None

Kernel containing calculation node properties

CalculationNode calculation_tree_class Object

Node class for the abstract calculation left child/right sibling tree. Each node has a reference to its leftmost child, its sibling to the immediate right, and to its parent.

Read more…
CalculationRule variable_container_class Object

Object used to calculate derived variables using a derivation object and set of required variable names

CalculationTree calculation_tree_class Object
CalculationTreeDerivation calculation_tree_derivation_class Derivation

Derivation object that has a calculation tree component, used to evaluate the derivation result independently of the passed indices. The derivation is constructed using a FlatTree, which needs to be unpacked before the derivation can be used. Note: This derivation should only be used if the passed object is the global VariableContainers variable array.

CCLDiffDerivation ccl_diff_derivation_class Derivation

Calculates the Chang-Cooper-Langdon diffusion coefficient for f0 Coulomb collisions assuming that the passed variables are the single harmonic f0 and the ccl interpolation weight

CCLDragDerivation ccl_drag_derivation_class Derivation

Calculates the Chang-Cooper-Langdon drag coefficient for f0 Coulomb collisions assuming that the passed variable is the single harmonic f0

CCLWeightDerivation ccl_weight_derivation_class Derivation

Calculates the Chang-Cooper-Langdon interpolation weight for f0 Coulomb collisions assuming that the two passed variables are single harmonic C and D integrals (see 4.5 in Mijin thesis)

CDiffStencilValGenerator c_diff_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating fixed central differencing stencil with no face interpolation

CentralDiffDerivation central_diff_grad_derivation_class Derivation

Returns equal to the central difference of the first passed (fluid) variable, optionally multiplied by a constant and product of fluid variables raised to corresponding powers

ColdIonIJIntDerivation cold_ion_ij_int_derivation_class Derivation

Calculates the Shkarofsky I or J integrals for cold drifting ions (normalized to ion density). The passed variable is assumed to be the ion flow velocity

CommunicationData mpi_controller_class None

Contains lists of variables to broadcast in processor rows and variables participating in halo exchange

CompositeIntegrator composite_integrator_class Manipulator

Composite integrator object allowing for different integration stages

CompositeManipulator composite_manipulator_class Object

Composite manipulator object allowing for application of multiple manipulators in series based on their priority

ConstSignal constant_signal_class TimeSignal

Signal wrapper always returning 1

CoordProfiles general_mat_term_class None

Container for profiles in the x,h, and v directions

COOSparsityPattern coo_sparsity_pattern_class Object

Coordinate list format sparsity pattern

CoulombLogDerivation coulomb_log_derivation_class Derivation

Returns values of the coulomb log based on electron density and temperature variables (and optionally ionization). The passed indices are assumed to be in T,n,Z order if ee or ei logarithm, or in n1,n2,T1,T2 order if ii logarithm. Assumes that density is normalized to m^{-3} units, and temperature to eV.

CRMBoltzTermGenerator crm_fixed_boltzmann_term_generator_class TermGenerator

TermGenerator object used to generate electron Boltzmann terms with fixed inelastic mappings based on associated variables in species list and CRM modelbound data. Assumes that all passed transition indices correspond to fixed inlastic mapping transitions. Assumes that the cross-section values in the transitions include any nonlinear normalization dependence (e.g. recombination etc.)

CRMDensTermGenerator crm_dens_term_generator_class TermGenerator

TermGenerator object used to generate particle source terms based on associated variables in species list and CRM modelbound data. Assumes rates are normalized so that the resulting source term is normalized to densNorm/timeNorm.

CRMElEnergyTermGenerator crm_el_energy_term_generator_class TermGenerator

TermGenerator object used to generate electronj energy source and sink terms based on associated variables in species list and CRM modelbound data. Assumes rates are normalized so that the resulting source term is normalized to densNorm*eVTemperature/timeNorm.

CRMSecElTermGenerator crm_secondary_el_source_term_generator_class TermGenerator

TermGenerator object used to generate secondary electron source/sink terms based on associated variables in species list and CRM modelbound data.

CRMVarBoltzTermGenerator crm_variable_boltzmann_term_generator_class TermGenerator

TermGenerator object used to generate electron Boltzmann terms with variable inelastic mappings based on associated variables in species list and CRM modelbound data. Assumes that all passed transition indices correspond to variable inlastic mapping transitions. Assumes that the cross-section values in the transitions include any nonlinear normalization dependence (e.g. recombination etc.)

CustomModelBuilder custom_model_builder_class ModelBuilder

Builder for custom models with user defined terms and modelbound data

CutSineSignal cut_sine_signal_class TimeSignal

Periodic signal where in params(1) and params(2) are between 0 and 1. Returns half-sine if params(1)<mod(time,period)<params(2). Otherwise returns 0.

D2DV2Derivation d2dv2_derivation_class Derivation

Calculates v_o*d(v_i df/dv)/dv, where v_o and v_i are velocity vectors, and f is a distribution. Can return either a distribution or a single harmonic. Assumes that df/dv at v->inf is 0.

DataCoords matrix_term_abstract_class None

Data type used to store global coordinates of any given matrix row

DBTransition db_transition_class Transition

Transition with fixed energy where the cross-section is calculated using SOL-KiT's version of discrete detailed balance

DDVDerivation ddv_derivation_class Derivation

Calculates v_o*d(v_i f)/dv, where v_o and v_i are velocity vectors, and f is a distribution. Can return either a distribution or a single harmonic. Assumes that f at v->inf is 0.

DDVStencilGenerator ddv_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating d/dv type stencils for single harmonics. Automatically includes spatial dependence. Has options for custom velocity grid interpolation of the distribution function and definition of the velocity cell boundary flux in the form C*f where f is the distribution function and C is a custom value. The interpolation weights and C are assumed to be defined on right velocity cell boundaries. Assumes that the velocity stencil is [-1,0,1]

Derivation derivation_abstract_class Object

Abstract derivation object defining the interface for calculating derived variables and data

DerivationContainer derivation_abstract_class None
DerivedTransition derived_transition_class Transition

Transition where the rate is calculated using a derivation object and with a fixed transition energy. Optionally, momentum and energy rates can be calculated using derivation objects

DiffusionStencilValGenerator diffusion_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating a diffusion stencil, optionally using a derivation object to calculate the diffusion coefficient at faces. The default diffusion coefficient is unity.

ElectronSheathGammaDerivation sheath_gamma_derivation_class Derivation

Returns the sheath heat transmission coefficient for electrons depending on electron and ion temperatures in the boundary cell. Assumes the indices are in Te,Ti order

EnvironmentWrapper basic_environment_wrapper Object

EnvironmentWrapper object storing publicly accessible grid, variable, and controller data

ExplicitRKIntegrator explicit_rk_integrator_class Integrator

Explicit Runge-Kutta integrator

ExplicitTerm explicit_term_abstract_class Term

Abstract term providing basic interfaces for build terms used in explicit timestepping

ExplicitTermIndexingData explicit_term_abstract_class None

Indexing data used by the default abstract explicit term

Extrapolation extrapolation_abstract_class Object

Abstract Extrapolation object, responsible for extrapolating fluid quantites onto x grid boundaries

FBDiffStencilValGenerator fb_diff_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating forward or backwards difference stencils. These are two-point stencils of the form [-Jout(i)Jin(i),Jout(i)Jin(i+1)], or [-Jout(i)Jin(i-1),Jout(i)Jin(i)], depending on whether the difference is forward or backwards. Jout and Jin should be defined on the x grid, and should act like the (inverse) Jacobian/Hodge star operator.

FixedBoltzmannStencilGen fixed_boltzmann_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating velocity component of Boltzmann collision operator emissionabsorption terms with fixed inelastic mappings. Expects fixed vStencil derived from the weights matrix if absorption term, otherwise vStencil = [0]. Generates Wvsigma(v) for absorption term or - v*sigma(v) for emission. If cross-section depends on x, it assumes no halo.

FixedECSTransition fixed_ecs_transition_class Transition

Transition object with a fixed transition energy and cross-section, which takes moments of a distribution function to calculate rates

FlatNDData flat_nd_data_class Object

Flat representation of multidimensional data allowing for multidimensional indexing using vector notation - i.e. dataObj%getValue([1,2,3]) = someData(1,2,3). Allows for dimensionality agnostic implementations of various algorithms.

FlatTree calculation_tree_class None

Flattened calculation tree for pointer-safe copying

FluidStencilGen1D fluid_gen1d_class JaggedArrayGenerator

JaggedArrayGenerator for extending the fixed stencil capabilities of StencilGenerator1D to allow for an additional multiplicative dependence on fluid variables in the passed variable container or modelbound data. Allows associating different variables to each column.

FScalingDerivation f_scaling_derivation_class MatDerivation

Extrapolates a distribution function to the boundary or last cell centre as a (numH,numV) matrix. Assumes that there are no m>0 harmonics for staggered grids. Expects 1-4 variables. The first is the extrapolated distribution, the second the density vector. The third is the staggered density if the variables are staggered. The value of the density at the boundary (scalar) is either the third or the fourth variable, and should be present only if extrapolating to the boundary.

FunWrapperDerivation1I1 param_wrapper_1i1_derivation_class Derivation

Wraps single integer parameter and single real array function, passing first index variable as input, optionally multiplying it with a constant before passing

GeneralMatrixTerm general_mat_term_class MatrixTerm

General matrix term with the capability to take in various stencils, time and spaticoordinate profiles, and evaluate other term groups in the host model. Required row and column variables passed through the VarData object are raised to corresponding powers.

GenIntPolyFunDeriv gen_int_polynomial_fun_derivation_class Derivation

Derivation taking in multiple variables and calculating multConst*fun(sum coef_i prod vars^powers) where prod vars^powers is shorthand for a product of multiple variables raised to corresponding powers. Basically behaves like a multiplicative derivation where the inner derivation is a massive sum of simple derivation outputs with integer powers. Implemented to allow AMJUEL rate fit derivations efficiently

Geometry geometry_class Object

Geometry object storing spatial cell widths, cell face and cell centre jacobians, as well as linear interpolation coefficients

Grid grid_class Object

Grid object storing cell positions of x and v grid, as well as Legendre harmonic data of the grid

GroupEvaluator group_evaluator_class Manipulator

Manipulator that evaluates a specific model term group and writes the result into variable with given index

HatSignal hat_signal_class TimeSignal

Periodic signal where in params(1) and params(2) are between 0 and 1. Returns 1 if params(1)<mod(time,period)<params(2). Otherwise returns 0.

HDF5Controller hdf5_controller_class Object

Controller object responsible for HDF5 IO

HExtractorDerivation harmonic_extractor_derivation_class Derivation

Extracts target harmonic from distribution variable

IJIntDerivation ij_int_derivation_class Derivation

Calculates the Shkarofsky I or J integrals for each passed harmonic.

Indexing indexing_class Object

Indexing object containing local and global indexing rules

InelasticGridData inelastic_grid_data_class Object

Object responsible for storing inelastic mapping matrices, determining active emitter cels, and interpolating variable energy mapping matrices

IntArray support_types None

Array of integer values

Integrator integrator_abstract_class Manipulator

Abstract Integrator object

IntegratorCallStep composite_integrator_class None

Object containing data pertaining to single integration step

IntegratorContainer composite_integrator_class None

Container allowing for heterogeneous Integrator arrays

InternalControllerOptions implicit_PicardBDE_integrator_class None
Interpolation1D lin_interp1D_class Object

Linear interpolation object housing information necessary for linearly interpolating 1D data. Will fail assertsion if interpolation points are outside of the grid.

InterpolationDerivation interpolation_derivation_class Derivation

Derivation that interpolates a variable from the original to the dual grid, or vise versa. Distributions are interpolated by assuming that even l harmonics live on the original grid and odd harmonics on the dual grid.

InterpolationND lin_interpnd_class Object

Linear interpolation object housing information necessary for linearly interpolating N-dimensional data using weighted averages. If interpolation points are outside of the grid will return 0 for interpolated value. NOTE: Does not support changing the number of interpolation points after the first interpolation call.

InterpStencilGenerator interp_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating implicit interpolation stencil between regular and staggered grids. Expects that the xStencil is [0,1] for regular to staggered grid interpolation, and [-1,0] for staggered to regular. If non-periodic and going from staggered to regular the values are implicitly extrapolated to the first and last cell centres from the edges leading up to the boundary. In this case the generator expects that the left boundary stencil is overriden with [0,1] and the right stencil with [-2,-1]

JaggedArrayGenerator jagged_array_generator_class Object

JaggedArrayGenerator object for calculating jagged real arrays based on variable data

JSONController json_controller_class None

Object responsible for reading and writing to JSON files

LinExtrapolation lin_extrapolation_class Extrapolation

Linear extrapolation object

LocValExtractorDerivation loc_val_extractor_derivation_class Derivation

Extracts target location value from a fluid variable as a scalar variable. Expects a single input.

LogExtrapolation log_extrapolation_class Extrapolation

Linear extrapolation object

LogicalArray support_types None

Array of logical values

Manipulator manipulator_abstract_class Object

Abstract Manipulator object used to manipulate data through Modeller callback

ManipulatorContainer manipulator_abstract_class None
MatDerivation mat_derivation_abstract_class Object

Abstract derivation object defining the interface for calculating dense matrix quantities

MatDerivationContainer mat_derivation_abstract_class None
MatrixTerm matrix_term_abstract_class Term

Abstract matrix term containing general matrix construction routines and interface with PETSc. The values of a matrix are by default constructed by evaluating row and column functions for each element, and multiplying with the corresponding multiplicative and normalization constants

MatrixTermIndexingData matrix_term_abstract_class None

Indexing data used by the matrix term

MatTermContainer model_class None

Container allowing for heterogeneous matrix term arrays

MaxwellianDerivation maxwellian_derivation_class Derivation

Calculates Maxwellian distribution. Expects temperature and density indices (in that order), and assumes velocity is normalized to electron thermal speed.

Model model_class ModelSurrogate

Object storing, evaluating, and manipulating various term objects, with terms categorized as either implicit (MatrixTerm objects) or general (Term objects).

ModelboundCRMData modelbound_CRM_data_class ModelboundData

Object responsible for storing and providing centralized access to transition objects and, optionally, inelastic grid data

ModelboundData modelbound_data_abstract_class Object

Abstract general modelbound data object used to build classes that contain data for updating terms

ModelboundDataExtractor modelbound_data_extractor_class Manipulator

Manipulator that extracts a (rank 1!) modelbound data variable from a model into a variable

ModelboundDataVarlike modelbound_data_varlike_class ModelboundData

Modelbound data object containing variable-like data updated using a variable container

ModelboundLBCData modelbound_lbc_data_class ModelboundData

Modelbound data object containing data used to construct kinetic logical boundary condition. Assumes no m>0 harmonics. Assumes standard normalization. Data accessible through standard data copy routine: "gamma" - sheath heat transmission coefficient "potential" - potential drop at sheath normalized to boundary temperature "coVel" - cut-off velocity "shTemp" - sheath temperature obtained using the cut-off distribution

ModelBuilder model_builder_abstract_class Object

Abstract ModelBuilder object, housing basic functionality for the construction of Model objects and passing those objects to their final Modeller destination

ModelContainer modeller_class None

Container for Model objects allowing heterogeneous arrays

Modeller modeller_class ModellerSurrogate

Central object responsible for storing variables and models, as well as doing integration and data manipulation

ModellerSurrogate modeller_surrogate_class Object
ModelSurrogate model_surrogate_class Object
MomentDerivation moment_derivation_class Derivation

Moment derivation object. First step in derivation is taking the mOrder-th moment of the h-th harmonic of the first passed variable (assumes that it is a distribution), optionally multiplied by constant velocity space vector g. The results is then optionally multiplied by a constant and a product of fluid variables raised to powers (as in SimpleDerivation).

MPIController mpi_controller_class Object

Provides a centralized interface with MPI and various support routines compatible with ReMKiT1D needs

MultiplicativeDerivation multiplicative_derivation_class Derivation

Composite derivation class containing two calculation rules applied additively. Both derivations must return same length array. Optionally applies one of several intrinsic functions to "inner" derivation result before multiplication.

MultiplicativeGeneratorCore multiplicative_generator_core_class Object

Provides capability of building stencil value objects based on tensor products of individual stencil value array

MultiplicativeStencilGen multiplicative_stencil_generator_class JaggedArrayGenerator

Generates stencil values based on independent data for x,h,v dimensions

NamedArrayContainer support_types None

Container with named arrays of integers, reals, logicals, and strings

NamedInteger support_types None

Named integer value

NamedIntegerArray support_types None

Named integer array

NamedLogical support_types None

Named logical value

NamedLogicalArray support_types None

Named logical value array

NamedReal support_types None

Named real value

NamedRealArray support_types None

Named real value array

NamedScalarContainer support_types None

Container with arrays on named integers, reals, logicals, and strings

NamedString support_types None

Named string

NamedStringArray support_types None

Named array of strings

NDInterpolationDerivation lin_interpnd_derivation_class Derivation

Interpolates n-dimensional data linearly based on n-input variables (must all be the same length)

Normalization normalization_abstract_class Object

Abstract normalization object providing access routines

Object god_objects None

Base object class used to determine whether complex objects have been properly initialized

Operator operator_abstract_class Object

Abstract operator class for use in explicit terms to transform real arrays

Partition partition_class Object

Object responsible for storing the x-h domain decomposition

PETScController petsc_controller_class Object

Object responsible for interfacing with PETSc

PETScPreallocationData petsc_preallocation_data_class Object

Object used to properly preallocate PETSc matrices

PETSsObjs petsc_controller_class None
PicardBDEIntegrator implicit_PicardBDE_integrator_class Integrator

Implicit Backwards Euler integrator with Picard iterations for handling non-linearities

PolyFunDeriv polynomial_fun_derivation_class Derivation

Derivation taking in a single variable v and returning c0 + sum(c_ivp_i), where p are powers and c polynomial coefficents, Can optionally take as many conforming variables as there are coefficients and return c0 + sum(c_iv_i**p_i)

RangeFilterDerivation range_filter_derivation_class Derivation

Composite derivation class containing a single calculation rule, which is overriden with zeros wherever any one in a set of control variables is outside their defined range. If derivIndices isn't passed will pass all indices to the derivation.

RealArray support_types None

Array of real values

RealArrayD2 support_types None

Real array of depth 2

ScalingLBCStencilGen scaling_lbc_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating logical boundary condition for electron distribution function. Contains x,h,v dependencies. Expects xStencil = [0] or [-1], depending on whether the boundary is left or right, and whether variables are staggered. The hStencil should cover all harmonics and assumes no m>0 harmonics. Expects vStencil = [0,1]. Calculates v*f_{cl}, without taking the x width or boundary sign into account.

SignalCollection signal_collection_class Object

Object storing named signals

SignalContainer signal_collection_class None

Container object for signal types

SimpleDerivation simple_derivation_class Derivation

Simple derivation object assuming all variables are confroming. Just multiplies the input array entries and raises them to set powers. Optionally multiplies the result with a constant.

SimpleTimestepController simple_timestep_controller_class TimestepController

Timestep controller that calculates the timestep using the min (max) value of a product of variables raised to corresponding powers. Variables are assumed fluid-like.

SimpleTransition simple_transition_class Transition

Simple transition object with a fixed rate and energy, and single ingoing and outgoing state. The default energy rate is set to rate*energy, and the momentum rate is 0

SolverOptions petsc_controller_class None

Contains data used by the PETSc ksp solver to set various options (refer to PETSc manual)

SparseRowData sparse_row_data_class Object

Sparse row matrix representation

Species species_class Object

Base species class containing particle properties and associated variable names

SpeciesList species_list_class Object

Species list object providing centralized access and initialization of species objects

Stencil stencil_class Object

Stencil object for construction of matrix patterns by mapping row coordinates to sets of column coordinates

Stencil1D stencil1d_class Object

1D stencil component for global stencil construction

StencilGenerator1D stencil_generator1d_class JaggedArrayGenerator

JaggedArrayGenerator for calculating a fixed stencil based on fixed column-wise value vectors and a Stencil1D object. Each column value vector is associated with its entry in the Stencil1D object.

StencilTemplate general_mat_term_class None
StringArray support_types None

Array of character arrays (a string)

Term term_abstract_class Object

General abstract term object

TermContainer model_class None

Container allowing for heterogeneous general term arrays

TermEvaluator term_evaluator_class Manipulator

Manipulator that evaluates a specific model,term pairs and writes the total result into variable with given index

TermGenerator term_generator_abstract_class Object

Abstract TermGenerator object, responsible for automatic generation of terms

TermGeneratorContainer term_generator_abstract_class None

Container object for term generators

TermMomentStencilGenerator term_moment_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating moment terms based on taking velocity moments of other kinetic terms. The term whose moment is taken is expected to be evolving a single harmonic of a distribution variable and have a diagonal spatial stencil. If the implcit variable is a distribution, the spatial stencil must be strictly diagonal (no interpolation allowed).

Textbook textbook_class Object

Object storing named derivations

Timeloop basic_timeloop_class Object

Object responsible for the main integration loop

TimeSignal signal_abstract_class None

Abstract signal class wrapping explicit time dependence. NOTE: Not meant to be initializable, hence not an object

TimeSignalData signal_abstract_class None

Container for time signal data used tu inject explicit time dependence

TimestepController timestep_controller_abstract_class Object

Abstract timestep controller object

Transition transition_abstract_class Object

Represents a process in which an ingoing set of particles(states) is transformed into an outgoing set and to which quantities representing particle/momentum/energy exchange rates can be meaningfully assigned. Optionally, a Transition can have a cross-section object of rank 2 to accommodate anisotropic differential cross-sections.

TransitionContainer modelbound_CRM_data_class None

Container allowing for heterogeneous Transition object arrays

UWCBCStencilValGenerator uwc_bc_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating a flux-like boundary condition stencil. Can take 2 variable indices, one for a flux jacobian variable and the other for a lower jacobian bound variable. If the flux jacobian is present it is extrapolated to the boundary and the stencil multiplied by it. If the lower jacobian bound variable is present it is extrapolated to the boundary and substituted for the flux jacobian if the jacobian's projection to the boundary surface normal is smaller than the lower bound variable. If setting extrapolate to true the stencils will extrapolate the implicit/column variables as well. The stencil is assumed to either be [0,-1] for right boundary or [0,1] for left boundary. Will return size(0) stencil if the current processor does not contain the corresponding boundary.

UWCDiffStencilValGenerator uwc_diff_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating an upwinding or central difference stencil based on interpolation to cell faces. Optionally interpolates a variable with given index in variable container. Interpolation variable required in upwinding mode.

VarData general_mat_term_class None

Container for common data used to initialize general matrix terms

VariableBoltzmannStencilGen variable_boltzmann_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating velocity component of Boltzmann collision operator emission/absorption terms with variable inelastic mappings. Expects upper/lower triangular vStencil (depending on energy sign), otherwise vStencil = [0]. Generates Wvsigma(v) for absorption term or - v*sigma(v) for emission. Assumes no halo in cross-section.

VariableContainer variable_container_class Object

Container for variable data, allows for handling conversion between local data storage and flattened vectors used for PETSc NOTE: Does not support single harmonic variables

VariableECSTransition variable_ecs_transition_class Transition

Transition where the transition energy and cross-section are derived

VariableList variable_list_class Object

Contains a list of variable names and records whether they are distribution functions

VDiffStencilGen v_diffusion_stencil_gen_class JaggedArrayGenerator

JaggedArrayGenerator for calculating d(Ad/dv)/dv type stencils. Formally a d/dv term where the flux is A*df/dv where df/dv at cell edge n+1/2 is (f_{n+1}-f_{n})/(v_{n+1}-v_{n}). A is assumed to be defined on right velocity cell boundaries. Assumes that the velocity stencil is [-1,0,1]

VelContracDerivation vel_contraction_derivation_class Derivation

Derivation that calculates the contraction of velocity vector g with h'th harmonic of single passed distribution variable

VelTProdDerivation vel_tensor_prod_derivation_class Derivation

Derivation that calculates the flattened tensor product of vector v with a fluid variable, optionally shifting v by a second fluid variable and raising the shifted values to a power

VSpace v_space_class Object

Object responsible for taking velocity moments of distributions and other velocity grid manipulation