STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::structure::MeshParamKit Struct Reference

The abstract of a MeshParameters object is read-only (modify the original to get a new abstract if the dimensions change), but templated to prune the information present. More...

#include <mesh_parameters.h>

Collaboration diagram for stormm::structure::MeshParamKit:

Public Member Functions

 MeshParamKit (int na_in, int nb_in, int nc_in, int95_t orig_x_in, int95_t orig_y_in, int95_t orig_z_in, double scale_in, double inv_scale_in, int scale_bits_in, const double *umat_in, const double *invu_in, const double *full_umat_in, const double *full_invu_in, const double *widths_in, const int95_t *fp_invu_in, double max_span_in, BoundaryCondition bounds_in, Interpolant stencil_kind_in, UnitCellType unit_cell_in)
 The constructor takes arguments for all member variables.
 
 MeshParamKit (const MeshParamKit &original)=default
 The default copy and move constructors will be valid for this object. Const members negate the use of default copy and move assignment operators.
 
 MeshParamKit (MeshParamKit &&original)=default
 

Public Attributes

const int na
 Number of mesh elements along the "a" (~x) axis.
 
const int nb
 Number of mesh elements along the "b" (~y) axis.
 
const int nc
 Number of mesh elements along the "c" (~z) axis.
 
const int95_t orig_x
 Cartesian X origin of the mesh in fixed-precision format.
 
const int95_t orig_y
 Cartesian Y origin of the mesh in fixed-precision format.
 
const int95_t orig_z
 Cartesian Z origin of the mesh in fixed-precision format.
 
const double scale
 
const double inv_scale
 
const float scale_f
 Single-precision form of scale.
 
const float inv_scale_f
 Single-precision form of inv_scale.
 
const int scale_bits
 Bits after the decimal used in the fixed precision scaling.
 
const double umat [9]
 Transformation matrix taking coordinates into element space.
 
const double invu [9]
 
const double full_umat [9]
 
const double full_invu [9]
 
const double widths [3]
 
const int95_t fp_invu [9]
 
const double max_span
 
const BoundaryCondition bounds
 Boundary conditions for the mesh.
 
const Interpolant stencil_kind
 
const UnitCellType unit_cell
 

Detailed Description

The abstract of a MeshParameters object is read-only (modify the original to get a new abstract if the dimensions change), but templated to prune the information present.

Constructor & Destructor Documentation

◆ MeshParamKit()

stormm::structure::MeshParamKit::MeshParamKit ( const MeshParamKit & original)
default

The default copy and move constructors will be valid for this object. Const members negate the use of default copy and move assignment operators.

Parameters
originalThe object to copy or move

Member Data Documentation

◆ fp_invu

const int95_t stormm::structure::MeshParamKit::fp_invu[9]

Fixed-precision inverse transformation matrix for each element

◆ full_invu

const double stormm::structure::MeshParamKit::full_invu[9]

Inverse transformation matrix for taking coordinates in the fractional space of the entire mesh back into Cartesian space

◆ full_umat

const double stormm::structure::MeshParamKit::full_umat[9]

Transformation matrix to take coordinates into the unit cell space of the entire mesh

◆ inv_scale

const double stormm::structure::MeshParamKit::inv_scale

Inverse scaling factor for taking fixed-precision coordinates into STORMM's internal units of Angstroms

◆ invu

const double stormm::structure::MeshParamKit::invu[9]

Inverse transformation matrix for each element, or the vectors defining each side of the element.

◆ max_span

const double stormm::structure::MeshParamKit::max_span

The maximum distance between any two corners of a grid element

◆ scale

const double stormm::structure::MeshParamKit::scale

Scaling factor for taking coordinates with units of Angstroms into the fixed-precision format of the mesh

◆ stencil_kind

const Interpolant stormm::structure::MeshParamKit::stencil_kind

The type of stencil to compute in order to set up for tricubic interpolation

◆ unit_cell

const UnitCellType stormm::structure::MeshParamKit::unit_cell

The type of unit cell which best describes the mesh element. This will be OTHORHOMBIC or TRICLINIC, even if the mesh itself lacks periodic boundary conditions.

◆ widths

const double stormm::structure::MeshParamKit::widths[3]

Widths of the mesh element between faces defining vectors roughly associated with the Cartesian X, Y, and Z axes (of these, the X and Y axes do not exactly line up, but the normals between faces defined by the element's "b" and "c" vectors and its "a" and "c" vectors are close).


The documentation for this struct was generated from the following files: