MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CuboidStencil Class Reference

#include <Stencil.h>

+ Inheritance diagram for CuboidStencil:
+ Collaboration diagram for CuboidStencil:

Public Member Functions

void addFlux (unsigned int meshIndex, vector< double > &f, const vector< vector< double > > &S, const vector< double > &diffConst) const
 
 CuboidStencil (double dx, double dy, double dz, unsigned int nx, unsigned int ny)
 
 ~CuboidStencil ()
 
- Public Member Functions inherited from Stencil
 Stencil ()
 
virtual ~Stencil ()
 

Private Attributes

double dx_
 
double dy_
 
double dz_
 
double invDxSq_
 
double invDySq_
 
double invDzSq_
 
unsigned int nx_
 
unsigned int ny_
 

Detailed Description

Assumes a 3-D cuboid array

Definition at line 86 of file Stencil.h.

Constructor & Destructor Documentation

CuboidStencil::CuboidStencil ( double  dx,
double  dy,
double  dz,
unsigned int  nx,
unsigned int  ny 
)

Definition at line 180 of file Stencil.cpp.

References dx_, dy_, dz_, invDxSq_, invDySq_, and invDzSq_.

182  : dx_( dx ), dy_( dy ), nx_( nx ), ny_( ny )
183 {
184  if ( dx <= 0 ) {
185  dx_ = 1;
186  invDxSq_ = 1;
187  } else {
188  invDxSq_ = 1.0 / ( dx * dx );
189  }
190 
191  if ( dy <= 0 ) {
192  dy_ = 1;
193  invDySq_ = 1;
194  } else {
195  invDySq_ = 1.0 / ( dy * dy );
196  }
197 
198  if ( dz <= 0 ) {
199  dz_ = 1;
200  invDzSq_ = 1;
201  } else {
202  invDzSq_ = 1.0 / ( dz * dz );
203  }
204 }
unsigned int ny_
Definition: Stencil.h:103
double invDxSq_
Definition: Stencil.h:99
double invDzSq_
Definition: Stencil.h:101
unsigned int nx_
Definition: Stencil.h:102
double dx_
Definition: Stencil.h:96
double dy_
Definition: Stencil.h:97
double invDySq_
Definition: Stencil.h:100
double dz_
Definition: Stencil.h:98
CuboidStencil::~CuboidStencil ( )

Definition at line 207 of file Stencil.cpp.

208 {;}

Member Function Documentation

void CuboidStencil::addFlux ( unsigned int  meshIndex,
vector< double > &  f,
const vector< vector< double > > &  S,
const vector< double > &  diffConst 
) const
virtual

computes the Flux f in the voxel on meshIndex. Takes the matrix of molNumber[meshIndex][pool] and the vector of diffusionConst[pool] as arguments.

Implements Stencil.

Definition at line 211 of file Stencil.cpp.

References invDxSq_, invDzSq_, nx_, ny_, stencil1(), and stencilN().

214 {
215  assert( f.size() <= S[0].size() );
216  if ( S.size() < 2 * nx_ )
217  return;
218  assert( meshIndex < S.size() );
219  int index = meshIndex;
220  stencilN( f, index, nx_, 1, invDxSq_, S, diffConst ); // Diffusion in x
221  stencilN( f, index, nx_*ny_, nx_, invDxSq_, S, diffConst ); // Diff in y
222  stencil1( f, index, nx_*ny_, invDzSq_, S, diffConst ); // Diffusion in z
223 }
unsigned int ny_
Definition: Stencil.h:103
double invDxSq_
Definition: Stencil.h:99
double invDzSq_
Definition: Stencil.h:101
void stencil1(vector< double > &f, int index, unsigned int n, double invSq, const vector< vector< double > > &S, const vector< double > &diffConst)
Definition: Stencil.cpp:18
unsigned int nx_
Definition: Stencil.h:102
void stencilN(vector< double > &f, int index, unsigned int n, int offset, double invSq, const vector< vector< double > > &S, const vector< double > &diffConst)
Definition: Stencil.cpp:55

+ Here is the call graph for this function:

Member Data Documentation

double CuboidStencil::dx_
private

Definition at line 96 of file Stencil.h.

Referenced by CuboidStencil().

double CuboidStencil::dy_
private

Definition at line 97 of file Stencil.h.

Referenced by CuboidStencil().

double CuboidStencil::dz_
private

Definition at line 98 of file Stencil.h.

Referenced by CuboidStencil().

double CuboidStencil::invDxSq_
private

Definition at line 99 of file Stencil.h.

Referenced by addFlux(), and CuboidStencil().

double CuboidStencil::invDySq_
private

Definition at line 100 of file Stencil.h.

Referenced by CuboidStencil().

double CuboidStencil::invDzSq_
private

Definition at line 101 of file Stencil.h.

Referenced by addFlux(), and CuboidStencil().

unsigned int CuboidStencil::nx_
private

Definition at line 102 of file Stencil.h.

Referenced by addFlux().

unsigned int CuboidStencil::ny_
private

Definition at line 103 of file Stencil.h.

Referenced by addFlux().


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