16 #ifndef __RIPLEY_RECTANGLE_H__
17 #define __RIPLEY_RECTANGLE_H__
19 #include <ripley/RipleyDomain.h>
40 Rectangle(
int n0,
int n1,
double x0,
double y0,
double x1,
double y1,
41 int d0=-1,
int d1=-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 fs_code,
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;
176 escript::Data randomFill(
long seed,
const boost::python::tuple& filter)
const;
180 virtual dim_t getNumNodes()
const;
181 virtual dim_t getNumElements()
const;
182 virtual dim_t getNumFaceElements()
const;
183 virtual dim_t getNumDOF()
const;
185 virtual void assembleCoordinates(escript::Data& arg)
const;
186 virtual void assembleGradient(escript::Data& out, escript::Data& in)
const;
187 virtual void assembleIntegrate(
DoubleVector& integrals, escript::Data& arg)
const;
189 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 escript::Data& rhs,
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 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 escript::Data& rhs,
const escript::Data& A,
const escript::Data& B,
211 const escript::Data& C,
const escript::Data& D,
212 const escript::Data& X,
const escript::Data& Y)
const;
214 escript::Data& rhs,
const escript::Data& d,
215 const escript::Data& y)
const;
217 virtual void interpolateNodesOnElements(escript::Data& out,
218 escript::Data& in,
bool reduced)
const;
219 virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
221 virtual void nodesToDOF(escript::Data& out, escript::Data& in)
const;
222 virtual void dofToNodes(escript::Data& out, escript::Data& in)
const;
225 void populateSampleIds();
226 void createPattern();
229 bool addS,
bool addF,
int firstNode,
int nEq=1,
int nComp=1)
const;
231 template<
typename ValueType>
232 void readBinaryGridImpl(escript::Data& out,
const std::string& filename,
233 const std::vector<int>& first,
234 const std::vector<int>& numValues,
235 const std::vector<int>& multiplier,
236 int byteOrder)
const;
238 template<
typename ValueType>
239 void writeBinaryGridImpl(
const escript::Data& in,
240 const std::string& filename,
int byteOrder)
const;
305 EsysAssert((dim>=0 && dim<2),
"'dim' out of bounds");
306 EsysAssert((index>=0 && index<
m_NN[dim]),
"'index' out of bounds");
312 return boost::python::make_tuple(
314 boost::python::make_tuple(
m_dx[0],
m_dx[1]),
315 boost::python::make_tuple(
m_gNE[0],
m_gNE[1]));
319 bool reducedColOrder)
const
353 #endif // __RIPLEY_RECTANGLE_H__