CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
Grid3D Class Reference

#include <Grid3D.h>

Public Types

using BVector = BStorageArray
 
using Container = std::vector< BVector >
 
typedef ValueType ReturnType
 
typedef float Scalar
 
typedef Basic3DVector< ScalarValueType
 

Public Member Functions

const Containerdata () const
 
void dump () const
 
 Grid3D ()
 
 Grid3D (const Grid1D &ga, const Grid1D &gb, const Grid1D &gc, std::vector< BVector > &data)
 
const Grid1Dgrida () const
 
const Grid1Dgridb () const
 
const Grid1Dgridc () const
 
int index (int i, int j, int k) const
 
ValueType operator() (int i) const
 
ValueType operator() (int i, int j, int k) const
 
int stride1 () const
 
int stride2 () const
 
int stride3 () const
 

Private Attributes

Container data_
 
Grid1D grida_
 
Grid1D gridb_
 
Grid1D gridc_
 
int stride1_
 
int stride2_
 

Detailed Description

Implementation of a 3D regular grid.

Author
T. Todorov

Definition at line 28 of file Grid3D.h.

Member Typedef Documentation

◆ BVector

Definition at line 35 of file Grid3D.h.

◆ Container

using Grid3D::Container = std::vector<BVector>

Definition at line 37 of file Grid3D.h.

◆ ReturnType

Definition at line 33 of file Grid3D.h.

◆ Scalar

typedef float Grid3D::Scalar

Definition at line 31 of file Grid3D.h.

◆ ValueType

Definition at line 32 of file Grid3D.h.

Constructor & Destructor Documentation

◆ Grid3D() [1/2]

Grid3D::Grid3D ( )
inline

Definition at line 39 of file Grid3D.h.

39 {}

◆ Grid3D() [2/2]

Grid3D::Grid3D ( const Grid1D ga,
const Grid1D gb,
const Grid1D gc,
std::vector< BVector > &  data 
)
inline

Definition at line 41 of file Grid3D.h.

References data.

42  : grida_(ga), gridb_(gb), gridc_(gc) {
43  data_.swap(data);
45  stride2_ = gridc_.nodes();
46  }
Grid1D gridb_
Definition: Grid3D.h:69
const Container & data() const
Definition: Grid3D.h:63
int stride2_
Definition: Grid3D.h:75
Grid1D grida_
Definition: Grid3D.h:68
Grid1D gridc_
Definition: Grid3D.h:70
int stride1_
Definition: Grid3D.h:74
int nodes() const
Definition: Grid1D.h:21
Container data_
Definition: Grid3D.h:72

Member Function Documentation

◆ data()

const Container& Grid3D::data ( ) const
inline

Definition at line 63 of file Grid3D.h.

Referenced by RectangularCartesianMFGrid::dump(), RectangularCylindricalMFGrid::dump(), and TrapezoidalCartesianMFGrid::dump().

63 { return data_; }
Container data_
Definition: Grid3D.h:72

◆ dump()

void Grid3D::dump ( void  ) const

Definition at line 17 of file Grid3D.cc.

References gather_cfg::cout, grida(), gridb(), gridc(), mps_fire::i, dqmiolumiharvest::j, dqmdumpme::k, Grid1D::node(), Grid1D::nodes(), and operator()().

17  {
18  for (int j = 0; j < gridb().nodes(); ++j) {
19  for (int k = 0; k < gridc().nodes(); ++k) {
20  for (int i = 0; i < grida().nodes(); ++i) {
21  std::cout << grida().node(i) << " " << gridb().node(j) << " " << gridc().node(k) << " " << operator()(i, j, k)
22  << std::endl;
23  }
24  }
25  }
26 }
const Grid1D & grida() const
Definition: Grid3D.h:59
Scalar node(int i) const
Definition: Grid1D.h:24
int nodes() const
Definition: Grid1D.h:21
const Grid1D & gridb() const
Definition: Grid3D.h:60
const Grid1D & gridc() const
Definition: Grid3D.h:61
ValueType operator()(int i) const
Definition: Grid3D.h:55

◆ grida()

const Grid1D& Grid3D::grida ( ) const
inline

◆ gridb()

const Grid1D& Grid3D::gridb ( ) const
inline

◆ gridc()

const Grid1D& Grid3D::gridc ( ) const
inline

◆ index()

int Grid3D::index ( int  i,
int  j,
int  k 
) const
inline

Definition at line 51 of file Grid3D.h.

References mps_fire::i, dqmiolumiharvest::j, and dqmdumpme::k.

Referenced by LinearGridInterpolator3D::interpolate().

51 { return i * stride1_ + j * stride2_ + k; }
int stride2_
Definition: Grid3D.h:75
int stride1_
Definition: Grid3D.h:74

◆ operator()() [1/2]

ValueType Grid3D::operator() ( int  i) const
inline

Definition at line 55 of file Grid3D.h.

References mps_fire::i.

Referenced by dump().

55 { return ValueType(data_[i][0], data_[i][1], data_[i][2]); }
Basic3DVector< Scalar > ValueType
Definition: Grid3D.h:32
Container data_
Definition: Grid3D.h:72

◆ operator()() [2/2]

ValueType Grid3D::operator() ( int  i,
int  j,
int  k 
) const
inline

Definition at line 57 of file Grid3D.h.

References mps_fire::i, dqmiolumiharvest::j, and dqmdumpme::k.

57 { return (*this)(index(i, j, k)); }
int index(int i, int j, int k) const
Definition: Grid3D.h:51

◆ stride1()

int Grid3D::stride1 ( ) const
inline

Definition at line 52 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

52 { return stride1_; }
int stride1_
Definition: Grid3D.h:74

◆ stride2()

int Grid3D::stride2 ( ) const
inline

Definition at line 53 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

53 { return stride2_; }
int stride2_
Definition: Grid3D.h:75

◆ stride3()

int Grid3D::stride3 ( ) const
inline

Definition at line 54 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

54 { return 1; }

Member Data Documentation

◆ data_

Container Grid3D::data_
private

Definition at line 72 of file Grid3D.h.

◆ grida_

Grid1D Grid3D::grida_
private

Definition at line 68 of file Grid3D.h.

◆ gridb_

Grid1D Grid3D::gridb_
private

Definition at line 69 of file Grid3D.h.

◆ gridc_

Grid1D Grid3D::gridc_
private

Definition at line 70 of file Grid3D.h.

◆ stride1_

int Grid3D::stride1_
private

Definition at line 74 of file Grid3D.h.

◆ stride2_

int Grid3D::stride2_
private

Definition at line 75 of file Grid3D.h.