16 #ifndef __RIPLEY_BRICK_H__
17 #define __RIPLEY_BRICK_H__
19 #include <ripley/RipleyDomain.h>
40 Brick(
int n0,
int n1,
int n2,
double x0,
double y0,
double z0,
double x1,
41 double y1,
double z1,
int d0=-1,
int d1=-1,
int d2=-1);
53 virtual std::string getDescription()
const;
58 virtual bool operator==(
const escript::AbstractDomain& other)
const;
65 void dump(
const std::string& filename)
const;
69 virtual void readNcGrid(escript::Data& out, std::string filename,
70 std::string varname,
const std::vector<int>& first,
71 const std::vector<int>& numValues,
72 const std::vector<int>& multiplier)
const;
76 virtual void readBinaryGrid(escript::Data& out, std::string filename,
77 const std::vector<int>& first,
78 const std::vector<int>& numValues,
79 const std::vector<int>& multiplier,
80 int byteOrder,
int dataType)
const;
84 virtual void writeBinaryGrid(
const escript::Data& in,
86 int byteOrder,
int dataType)
const;
93 const int* borrowSampleReferenceIDs(
int fsType)
const;
99 virtual bool ownSample(
int fsType,
index_t id)
const;
107 virtual void setToNormal(escript::Data& out)
const;
114 virtual void setToSize(escript::Data& out)
const;
120 virtual int getNumDataPointsGlobal()
const;
127 virtual void Print_Mesh_Info(
const bool full=
false)
const;
164 virtual double getLocalCoordinate(
int index,
int dim)
const;
170 virtual boost::python::tuple getGridParameters()
const;
173 virtual dim_t getNumNodes()
const;
174 virtual dim_t getNumElements()
const;
175 virtual dim_t getNumFaceElements()
const;
176 virtual dim_t getNumDOF()
const;
178 virtual void assembleCoordinates(escript::Data& arg)
const;
179 virtual void assembleGradient(escript::Data& out, escript::Data& in)
const;
180 virtual void assembleIntegrate(
DoubleVector& integrals, escript::Data& arg)
const;
182 const escript::Data& A,
const escript::Data& B,
183 const escript::Data& C,
const escript::Data& D,
184 const escript::Data& X,
const escript::Data& Y)
const;
186 escript::Data& rhs,
const escript::Data& d,
187 const escript::Data& y)
const;
189 escript::Data& rhs,
const escript::Data& A,
const escript::Data& B,
190 const escript::Data& C,
const escript::Data& D,
191 const escript::Data& X,
const escript::Data& Y)
const;
193 escript::Data& rhs,
const escript::Data& d,
194 const escript::Data& y)
const;
196 const escript::Data& A,
const escript::Data& B,
197 const escript::Data& C,
const escript::Data& D,
198 const escript::Data& X,
const escript::Data& Y)
const;
200 escript::Data& rhs,
const escript::Data& d,
201 const escript::Data& y)
const;
203 escript::Data& rhs,
const escript::Data& A,
const escript::Data& B,
204 const escript::Data& C,
const escript::Data& D,
205 const escript::Data& X,
const escript::Data& Y)
const;
207 escript::Data& rhs,
const escript::Data& d,
208 const escript::Data& y)
const;
210 virtual void interpolateNodesOnElements(escript::Data& out,
211 escript::Data& in,
bool reduced)
const;
212 virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
214 virtual void nodesToDOF(escript::Data& out, escript::Data& in)
const;
215 virtual void dofToNodes(escript::Data& out, escript::Data& in)
const;
218 void populateSampleIds();
219 void createPattern();
222 bool addS,
bool addF,
int firstNode,
int nEq=1,
int nComp=1)
const;
224 template<
typename ValueType>
225 void readBinaryGridImpl(escript::Data& out,
const std::string& filename,
226 const std::vector<int>& first,
227 const std::vector<int>& numValues,
228 const std::vector<int>& multiplier,
229 int byteOrder)
const;
231 template<
typename ValueType>
232 void writeBinaryGridImpl(
const escript::Data& in,
233 const std::string& filename,
int byteOrder)
const;
300 EsysAssert((dim>=0 && dim<3),
"'dim' out of bounds");
301 EsysAssert((index>=0 && index<
m_NN[dim]),
"'index' out of bounds");
307 return boost::python::make_tuple(
314 bool reducedColOrder)
const
348 #endif // __RIPLEY_BRICK_H__