Memosa-FVM  0.2
GenericBCS< X, Diag, OffDiag > Class Template Reference

#include <GenericBCS.h>

Inheritance diagram for GenericBCS< X, Diag, OffDiag >:
Collaboration diagram for GenericBCS< X, Diag, OffDiag >:

Public Types

typedef BaseGenericBCS< X,
Diag, OffDiag > 
T_Parent
 
- Public Types inherited from BaseGenericBCS< X, Diag, OffDiag >
typedef NumTypeTraits< X >
::T_Scalar 
T_Scalar
 
typedef Array< T_ScalarTArray
 
typedef Array< int > IntArray
 
typedef Vector< T_Scalar, 3 > VectorT3
 
typedef CRMatrix< Diag,
OffDiag, X > 
CCMatrix
 
typedef CCMatrix::PairWiseAssembler CCAssembler
 
typedef FluxJacobianMatrix
< Diag, X > 
FMatrix
 
typedef DiagonalMatrix< Diag, X > BBMatrix
 
typedef Array< Diag > DiagArray
 
typedef Array< OffDiag > OffDiagArray
 
typedef Array< X > XArray
 
typedef Array< VectorT3VectorT3Array
 

Public Member Functions

 GenericBCS (const StorageSite &faces, const Mesh &mesh, const GeomFields &geomFields, Field &varField, Field &fluxField, MultiFieldMatrix &matrix, MultiField &xField, MultiField &rField)
 
void applySymmetryBC () const
 
- Public Member Functions inherited from BaseGenericBCS< X, Diag, OffDiag >
 BaseGenericBCS (const StorageSite &faces, const Mesh &mesh, const GeomFields &geomFields, Field &varField, Field &fluxField, MultiFieldMatrix &matrix, MultiField &xField, MultiField &rField)
 
void applyDirichletBC (int f, const X &bValue) const
 
void applyDirichletBC (const X &bValue) const
 
void applyDirichletBC (const FloatValEvaluator< X > &bValue) const
 
void applyNeumannBC (const int f, const X &specifiedFlux) const
 
void applyNeumannBC (const X &bFlux) const
 
void applyNeumannBC (const FloatValEvaluator< X > &bFlux) const
 
void applyExtrapolationBC () const
 
void applyExtrapolationBC (const int f) const
 
void applyConvectionBC (const int f, const X &hCoeff, const X &Xinf) const
 
void applyConvectionBC (const X &hCoeff, const X &Xinf) const
 
void applyRadiationBC (const int f, const X &emissivity, const X &Xinf) const
 
void applyMixedBC (const int f, const X &hCoeff, const X &emissivity, const X &Xinf) const
 
void applyInterfaceBC (const int f) const
 
void applyInterfaceBC () const
 
void applyDielectricInterfaceBC (const int f, const X &hCoeff, const X &Xinf, const X &source) const
 
void applyDielectricInterfaceBC (const X &hCoeff, const X &Xinf, const X &source) const
 
void applyFlowBC (const TArray &convFlux, const X &bValue) const
 
void applyNonzeroDiagBC () const
 
void applyNonzeroDiagBC (int f) const
 

Additional Inherited Members

- Protected Attributes inherited from BaseGenericBCS< X, Diag, OffDiag >
const StorageSite_faces
 
const StorageSite_cells
 
const IntArray_ibType
 
const CRConnectivity_faceCells
 
const Field_varField
 
const Field_fluxField
 
const MultiField::ArrayIndex _xIndex
 
const MultiField::ArrayIndex _fluxIndex
 
CCMatrix_dRdX
 
FMatrix_dFluxdX
 
BBMatrix_dFluxdFlux
 
CCAssembler_assembler
 
DiagArray_dRdXDiag
 
XArray_x
 
XArray_r
 
XArray_flux
 
XArray_rFlux
 
const Field_areaMagField
 
const TArray_faceAreaMag
 
const Field_areaField
 
const VectorT3Array_faceArea
 
const bool _is2D
 

Detailed Description

template<class X, class Diag, class OffDiag>
class GenericBCS< X, Diag, OffDiag >

Definition at line 473 of file GenericBCS.h.

Member Typedef Documentation

template<class X, class Diag, class OffDiag>
typedef BaseGenericBCS<X,Diag,OffDiag> GenericBCS< X, Diag, OffDiag >::T_Parent

Definition at line 477 of file GenericBCS.h.

Constructor & Destructor Documentation

template<class X, class Diag, class OffDiag>
GenericBCS< X, Diag, OffDiag >::GenericBCS ( const StorageSite faces,
const Mesh mesh,
const GeomFields geomFields,
Field varField,
Field fluxField,
MultiFieldMatrix matrix,
MultiField xField,
MultiField rField 
)
inline

Definition at line 479 of file GenericBCS.h.

485  :
486  T_Parent(faces,mesh,geomFields,varField,fluxField,matrix,xField,rField)
487  {}
BaseGenericBCS< X, Diag, OffDiag > T_Parent
Definition: GenericBCS.h:477

Member Function Documentation

template<class X, class Diag, class OffDiag>
void GenericBCS< X, Diag, OffDiag >::applySymmetryBC ( ) const
inline

Definition at line 491 of file GenericBCS.h.

References BaseGenericBCS< X, Diag, OffDiag >::_assembler, BaseGenericBCS< X, Diag, OffDiag >::_dFluxdFlux, BaseGenericBCS< X, Diag, OffDiag >::_dRdX, BaseGenericBCS< X, Diag, OffDiag >::_dRdXDiag, BaseGenericBCS< X, Diag, OffDiag >::_faceCells, BaseGenericBCS< X, Diag, OffDiag >::_faces, BaseGenericBCS< X, Diag, OffDiag >::_flux, BaseGenericBCS< X, Diag, OffDiag >::_r, BaseGenericBCS< X, Diag, OffDiag >::_rFlux, BaseGenericBCS< X, Diag, OffDiag >::_x, CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff01(), CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff10(), StorageSite::getCount(), and CRMatrix< T_Diag, T_OffDiag, X >::setBoundary().

492  {
493  for(int f=0; f<this->_faces.getCount(); f++)
494  {
495  const int c0 = this->_faceCells(f,0);
496  const int c1 = this->_faceCells(f,1);
497 
498  // the current value of flux and its Jacobians
499  //const X fluxB = -this->_r[c1];
500  //const OffDiag dFluxdXC0 = -this->_assembler.getCoeff10(f);
501  const Diag dFluxdXC1 = -this->_dRdXDiag[c1];
502 
503  const X xB = this->_x[c0];
504 
505 
506  const X xc1mxB = this->_x[c1]-xB;
507  this->_x[c1] = xB;
508 
509  // eliminate boundary dependency from cell equation
510  this->_dRdXDiag[c0] += dFluxdXC1;
511  this->_r[c0] -= dFluxdXC1*xc1mxB;
512  this->_assembler.getCoeff01(f) = 0;
513 
514  // boundary value equation
517  this->_r[c1] = X(0);//xc0mxB;
518  this->_dRdX.setBoundary(c1);
519 
520  //setup the equation for the boundary flux correction
521 
522  this->_flux[f] = X(0);
523  this->_rFlux[f] = X(0);
525  }
526  }
BBMatrix & _dFluxdFlux
Definition: GenericBCS.h:456
CCAssembler & _assembler
Definition: GenericBCS.h:457
OffDiag & getCoeff10(const int np)
Definition: CRMatrix.h:131
const CRConnectivity & _faceCells
Definition: GenericBCS.h:449
XArray & _rFlux
Definition: GenericBCS.h:462
const StorageSite & _faces
Definition: GenericBCS.h:446
XArray & _x
Definition: GenericBCS.h:459
XArray & _r
Definition: GenericBCS.h:460
OffDiag & getCoeff01(const int np)
Definition: CRMatrix.h:126
void setBoundary(const int nr)
Definition: CRMatrix.h:1056
XArray & _flux
Definition: GenericBCS.h:461
int getCount() const
Definition: StorageSite.h:39
DiagArray & _dRdXDiag
Definition: GenericBCS.h:458
CCMatrix & _dRdX
Definition: GenericBCS.h:454

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