5 #ifndef _IBMDISCRETIZATION_H_
6 #define _IBMDISCRETIZATION_H_
27 template <
class X,
class Diag,
class OffDiag>
66 const XArray& xCell =
dynamic_cast<const XArray&
>(xField[vIndex]);
78 for (
int c=0; c<nCells; c++)
81 int cellIBType = mesh.getIBTypeForCell(c);
88 cellVelocity[c]=zeroVelocity;
89 for (
int nbpos=row[c]; nbpos<row[c+1]; nbpos++){
104 else if (cellIBType == 1)
109 double sumCellDist=0;
121 for (
int nbpos=row[c]; nbpos<row[c+1]; nbpos++){
123 const int j=col[nbpos];
124 offdiag[nbpos]=1.0/(row[c+1]-row[c]);
125 rCell[c]-=offdiag[nbpos]*cellVelocity[j];
127 rCell[c]+=cellVelocity[c];
const Array< int > & getCol() const
Vector< T_Scalar, 3 > VectorT3
const Array< int > & getRow() const
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
CRMatrix< Diag, OffDiag, X > CCMatrix
CCMatrix::OffDiagArray OffDiagArray
const GeomFields & _geomFields
void discretize(const Mesh &mesh, MultiFieldMatrix &mfmatrix, MultiField &xField, MultiField &rField)
Array< Diag > & getDiag()
virtual const CRConnectivity & getConnectivity() const
IbmDiscretization(const MeshList &meshes, const GeomFields &geomFields, FlowFields &flowFields)
NumTypeTraits< X >::T_Scalar T_Scalar
Array< OffDiag > & getOffDiag()
pair< const Field *, const StorageSite * > ArrayIndex
const StorageSite & getCells() const
Array< VectorT3 > VectorT3Array
vector< Mesh * > MeshList
CCMatrix::DiagArray DiagArray