CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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

Definition at line 36 of file Grid3D.h.

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

Definition at line 38 of file Grid3D.h.

Definition at line 34 of file Grid3D.h.

typedef float Grid3D::Scalar

Definition at line 32 of file Grid3D.h.

Definition at line 33 of file Grid3D.h.

Constructor & Destructor Documentation

Grid3D::Grid3D ( )
inline

Definition at line 40 of file Grid3D.h.

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

Definition at line 42 of file Grid3D.h.

43  :
44  grida_(ga), gridb_(gb), gridc_(gc) {
45  data_.swap(data);
47  stride2_ = gridc_.nodes();
48  }
Grid1D gridb_
Definition: Grid3D.h:78
int stride2_
Definition: Grid3D.h:84
Grid1D grida_
Definition: Grid3D.h:77
Grid1D gridc_
Definition: Grid3D.h:79
int nodes() const
Definition: Grid1D.h:24
const Container & data() const
Definition: Grid3D.h:71
int stride1_
Definition: Grid3D.h:83
Container data_
Definition: Grid3D.h:81

Member Function Documentation

const Container& Grid3D::data ( ) const
inline
void Grid3D::dump ( void  ) const

Definition at line 18 of file Grid3D.cc.

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

19 {
20  for (int j=0; j<gridb().nodes(); ++j) {
21  for (int k=0; k<gridc().nodes(); ++k) {
22  for (int i=0; i<grida().nodes(); ++i) {
23  std::cout << grida().node(i) << " " << gridb().node(j) << " " << gridc().node(k) << " "
24  << operator()(i,j,k) << std::endl;
25  }
26  }
27  }
28 }
int i
Definition: DBlmapReader.cc:9
const Grid1D & grida() const
Definition: Grid3D.h:67
Scalar node(int i) const
Definition: Grid1D.h:27
ValueType operator()(int i) const
Definition: Grid3D.h:59
int nodes() const
Definition: Grid1D.h:24
const Grid1D & gridc() const
Definition: Grid3D.h:69
int j
Definition: DBlmapReader.cc:9
tuple cout
Definition: gather_cfg.py:145
const Grid1D & gridb() const
Definition: Grid3D.h:68
const Grid1D& Grid3D::grida ( ) const
inline
const Grid1D& Grid3D::gridb ( ) const
inline
const Grid1D& Grid3D::gridc ( ) const
inline
int Grid3D::index ( int  i,
int  j,
int  k 
) const
inline

Definition at line 55 of file Grid3D.h.

References relval_2017::k.

Referenced by BeautifulSoup.PageElement::_invert(), and LinearGridInterpolator3D::interpolate().

55 {return i*stride1_ + j*stride2_ + k;}
int i
Definition: DBlmapReader.cc:9
int stride2_
Definition: Grid3D.h:84
int j
Definition: DBlmapReader.cc:9
int stride1_
Definition: Grid3D.h:83
ValueType Grid3D::operator() ( int  i) const
inline

Definition at line 59 of file Grid3D.h.

Referenced by dump().

59  {
60  return ValueType(data_[i][0],data_[i][1],data_[i][2]);
61  }
int i
Definition: DBlmapReader.cc:9
Basic3DVector< Scalar > ValueType
Definition: Grid3D.h:33
Container data_
Definition: Grid3D.h:81
ValueType Grid3D::operator() ( int  i,
int  j,
int  k 
) const
inline

Definition at line 63 of file Grid3D.h.

References cmsHarvester::index.

63  {
64  return (*this)(index(i,j,k));
65  }
int i
Definition: DBlmapReader.cc:9
int index(int i, int j, int k) const
Definition: Grid3D.h:55
int j
Definition: DBlmapReader.cc:9
int Grid3D::stride1 ( ) const
inline

Definition at line 56 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

56 { return stride1_;}
int stride1_
Definition: Grid3D.h:83
int Grid3D::stride2 ( ) const
inline

Definition at line 57 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

57 { return stride2_;}
int stride2_
Definition: Grid3D.h:84
int Grid3D::stride3 ( ) const
inline

Definition at line 58 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

58 { return 1;}

Member Data Documentation

Container Grid3D::data_
private

Definition at line 81 of file Grid3D.h.

Grid1D Grid3D::grida_
private

Definition at line 77 of file Grid3D.h.

Grid1D Grid3D::gridb_
private

Definition at line 78 of file Grid3D.h.

Grid1D Grid3D::gridc_
private

Definition at line 79 of file Grid3D.h.

int Grid3D::stride1_
private

Definition at line 83 of file Grid3D.h.

int Grid3D::stride2_
private

Definition at line 84 of file Grid3D.h.