escript  Revision_4925
dudley/src/CPPAdapter/MeshAdapter.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
18 #if !defined dudley_MeshAdapter_20040526_H
19 #define dudley_MeshAdapter_20040526_H
20 #include "system_dep.h"
21 
22 #include "dudley/Mesh.h"
23 #include "dudley/Dudley.h"
24 #include "dudley/Assemble.h"
25 #include "esysUtils/Esys_MPI.h"
26 
27 #include "DudleyError.h"
28 #include "DudleyAdapterException.h"
29 
30 #include <pasowrap/SystemMatrixAdapter.h>
31 #include <pasowrap/TransportProblemAdapter.h>
32 #include "escript/AbstractContinuousDomain.h"
33 #include "escript/FunctionSpace.h"
34 #include "escript/FunctionSpaceFactory.h"
35 
36 #include <boost/shared_ptr.hpp>
37 #include <boost/python/dict.hpp>
38 #include <boost/python/extract.hpp>
39 
40 #include <map>
41 #include <vector>
42 #include <string>
43 #include <sstream>
44 
45 namespace dudley {
46 
48 {
49  void operator()(void const *ptr) const
50  {
51  }
52 };
53 
54 
66 
67  public:
68 
69  //
70  // Codes for function space types supported
71  static const int DegreesOfFreedom;
72  static const int ReducedDegreesOfFreedom;
73  static const int Nodes;
74  static const int ReducedNodes;
75  static const int Elements;
76  static const int ReducedElements;
77  static const int FaceElements;
78  static const int ReducedFaceElements;
79  static const int Points;
80  static const int ContactElementsZero;
81  static const int ReducedContactElementsZero;
82  static const int ContactElementsOne;
83  static const int ReducedContactElementsOne;
84 
104  MeshAdapter(Dudley_Mesh* dudleyMesh=0);
105 
111  MeshAdapter(const MeshAdapter& in);
112 
120  ~MeshAdapter();
121 
127  virtual int getMPISize() const;
134  virtual int getMPIRank() const;
135 
142  virtual void MPIBarrier() const;
143 
150  virtual bool onMasterProcessor() const;
151 
153 #ifdef ESYS_MPI
154  MPI_Comm
155 #else
156  unsigned int
157 #endif
158  getMPIComm() const;
159 
160 
167  void write(const std::string& fileName) const;
168 
174  void Print_Mesh_Info(const bool full=false) const;
175 
182  void dump(const std::string& fileName) const;
183 
189  Dudley_Mesh* getDudley_Mesh() const;
190 
198  int getTagFromSampleNo(int functionSpaceType, int sampleNo) const;
199 
206  const int* borrowSampleReferenceIDs(int functionSpaceType) const;
207 
214  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
215 
221  virtual std::string getDescription() const;
222 
228  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
229 
236 
242  virtual int getContinuousFunctionCode() const;
243 
249  virtual int getReducedContinuousFunctionCode() const;
250 
256  virtual int getFunctionCode() const;
257 
263  virtual int getReducedFunctionCode() const;
264 
270  virtual int getFunctionOnBoundaryCode() const;
271 
277  virtual int getReducedFunctionOnBoundaryCode() const;
278 
284  virtual int getFunctionOnContactZeroCode() const;
285 
291  virtual int getReducedFunctionOnContactZeroCode() const;
292 
298  virtual int getFunctionOnContactOneCode() const;
299 
305  virtual int getReducedFunctionOnContactOneCode() const;
306 
312  virtual int getSolutionCode() const;
313 
319  virtual int getReducedSolutionCode() const;
320 
326  virtual int getDiracDeltaFunctionsCode() const;
327 
332  typedef std::map<int, std::string> FunctionSpaceNamesMapType;
333 
338  virtual int getDim() const;
339 
349  virtual StatusType getStatus() const;
350 
351 
357  virtual int getNumDataPointsGlobal() const;
358 
365  virtual std::pair<int,int> getDataShape(int functionSpaceCode) const;
366 
373  virtual void setToX(escript::Data& arg) const;
374 
382  virtual void setTagMap(const std::string& name, int tag);
383 
390  virtual int getTag(const std::string& name) const;
391 
398  virtual bool isValidTagName(const std::string& name) const;
399 
405  virtual std::string showTagNames() const;
406 
412  virtual void setNewX(const escript::Data& arg);
413 
419  virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
420 
421 
423  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
424 
426  virtual signed char preferredInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
427 
428 
434  bool
435  commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
436 
443  virtual void interpolateACross(escript::Data& target, const escript::Data& source) const;
444 
450  virtual bool probeInterpolationACross(int functionSpaceType_source,const escript::AbstractDomain& targetDomain, int functionSpaceType_target) const;
451 
458  virtual void setToNormal(escript::Data& out) const;
459 
466  virtual void setToSize(escript::Data& out) const;
467 
474  virtual void setToGradient(escript::Data& grad,const escript::Data& arg) const;
475 
482  virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
483 
494  virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;
495 
506  virtual int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const;
507 
514  virtual bool isCellOriented(int functionSpaceCode) const;
515 
517  virtual bool ownSample(int fs_code, index_t id) const;
518 
524  virtual void addPDEToSystem(
526  const escript::Data& A, const escript::Data& B, const escript::Data& C,
527  const escript::Data& D, const escript::Data& X, const escript::Data& Y,
528  const escript::Data& d, const escript::Data& y,
529  const escript::Data& d_contact, const escript::Data& y_contact,
530  const escript::Data& d_dirac, const escript::Data& y_dirac) const;
531 
532 
538  virtual void addPDEToLumpedSystem(
539  escript::Data& mat,
540  const escript::Data& D,
541  const escript::Data& d,
542  const escript::Data& d_dirac,
543  const bool useHRZ) const;
544 
550  virtual void addPDEToRHS(escript::Data& rhs,
551  const escript::Data& X, const escript::Data& Y,
552  const escript::Data& y, const escript::Data& y_contact, const escript::Data& y_dirac) const;
559  virtual void addPDEToTransportProblem(
561  const escript::Data& M,
562  const escript::Data& A, const escript::Data& B, const escript::Data& C,const escript::Data& D,
563  const escript::Data& X,const escript::Data& Y,
564  const escript::Data& d, const escript::Data& y,
565  const escript::Data& d_contact,const escript::Data& y_contact,
566  const escript::Data& d_dirac,const escript::Data& y_dirac) const;
567 
568 
575  const int row_blocksize,
576  const escript::FunctionSpace& row_functionspace,
577  const int column_blocksize,
578  const escript::FunctionSpace& column_functionspace,
579  const int type) const;
588  const int blocksize,
589  const escript::FunctionSpace& functionspace,
590  const int type) const;
591 
596  virtual escript::Data getX() const;
597 
602  virtual escript::Data getNormal() const;
603 
608  virtual escript::Data getSize() const;
609 
614  virtual bool operator==(const escript::AbstractDomain& other) const;
616  virtual bool operator!=(const escript::AbstractDomain& other) const;
617 
624  virtual void setTags(const int functionSpaceType, const int newTag, const escript::Data& mask) const;
625 
631  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
632 
634  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
635 
636 
641  virtual
642  bool canTag(int functionSpaceCode) const;
643 
649  virtual
650  int getApproximationOrder(const int functionSpaceCode) const;
651 
652 
654  bool supportsContactElements() const;
655 
656 
659  const escript::FunctionSpace& what, long seed, const boost::python::tuple& filter) const;
660 
661  protected:
662 
663  private:
664  void extractArgsFromDict(const boost::python::dict& arg, int& numData,
665  char**& names, escriptDataC*& data,
666  escriptDataC**& dataPtr) const;
667 
668  //
669  // pointer to the externally created dudley mesh
670  boost::shared_ptr<Dudley_Mesh> m_dudleyMesh;
671 
673 
674 };
675 
676 } // end of namespace
677 
678 #endif
virtual std::string showTagNames() const
Returns all tag names in a single string sperated by commas.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1946
AbstractContinuousDomain, base class for continuous domains.
Definition: AbstractContinuousDomain.h:46
Give a short description of what FunctionSpace does.
Definition: FunctionSpace.h:46
static const int ReducedElements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:76
virtual std::string functionSpaceTypeAsString(int functionSpaceType) const
Return a description for the given function space type code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:493
static const int Points
Definition: dudley/src/CPPAdapter/MeshAdapter.h:79
virtual bool probeInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
True if interpolation is possible from source to target.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1629
virtual int getDiracDeltaFunctionsCode() const
Return a DiracDeltaFunctions code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:590
virtual void setNewX(const escript::Data &arg)
assigns new location to the domain
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1322
virtual escript::Data randomFill(const escript::DataTypes::ShapeType &shape, const escript::FunctionSpace &what, long seed, const boost::python::tuple &filter) const
Fills the data object with filtered random values.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:2094
virtual bool canTag(int functionSpaceCode) const
Checks if this domain allows tags for the specified functionSpaceCode.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:2032
virtual int getReducedFunctionCode() const
Return a function with reduced integration order FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:546
virtual bool isValidFunctionSpaceType(int functionSpaceType) const
Returns true if the given integer is a valid function space type for this domain. ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:504
virtual bool onMasterProcessor() const
Return true if on MPI processor 0, else false.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:91
void operator()(void const *ptr) const
Definition: dudley/src/CPPAdapter/MeshAdapter.h:49
virtual void addPDEToTransportProblem(escript::AbstractTransportProblem &tp, escript::Data &source, const escript::Data &M, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y, const escript::Data &d, const escript::Data &y, const escript::Data &d_contact, const escript::Data &y_contact, const escript::Data &d_dirac, const escript::Data &y_dirac) const
adds a PDE onto a transport problem
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:786
static const int Nodes
Definition: dudley/src/CPPAdapter/MeshAdapter.h:73
MeshAdapter(Dudley_Mesh *dudleyMesh=0)
Constructor for MeshAdapter.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:49
virtual int getReducedFunctionOnContactOneCode() const
Return a FunctionOnContactOne code with reduced integration order.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:575
virtual void setToGradient(escript::Data &grad, const escript::Data &arg) const
copies the gradient of arg into grad. The actual function space to be considered for the gradient is ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1212
virtual std::string getDescription() const
Return a description for this domain.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:488
escript::ATP_ptr newTransportProblem(const int blocksize, const escript::FunctionSpace &functionspace, const int type) const
creates a TransportProblemAdapter
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1429
virtual int getTag(const std::string &name) const
Return the tag key for tag name.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1930
void dump(const std::string &fileName) const
dumps the mesh to a file with the given name.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:130
void Print_Mesh_Info(const bool full=false) const
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:125
virtual void setToSize(escript::Data &out) const
copies the size of samples into out. The actual function space to be considered is defined by out...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1278
~MeshAdapter()
Destructor for MeshAdapter. As specified in the constructor this calls Dudley_Mesh_free for the point...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:66
virtual void setToNormal(escript::Data &out) const
copies the surface normals at data points into out. The actual function space to be considered is def...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1091
Definition: dudley/src/CPPAdapter/MeshAdapter.h:47
virtual StatusType getStatus() const
Returns a status indicator of the domain. The status identifier should be unique over the live time i...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:2051
virtual int getApproximationOrder(const int functionSpaceCode) const
returns the approximation order used for a function space functionSpaceCode
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:2057
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
static dim_t M
Definition: SparseMatrix_saveHB.cpp:36
int getTagFromSampleNo(int functionSpaceType, int sampleNo) const
Return the tag key for the given sample number.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1839
virtual int getNumberOfTagsInUse(int functionSpaceCode) const
return the number of tags in use and a pointer to an array with the number of tags in use ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1959
virtual int getFunctionOnContactOneCode() const
Return a FunctionOnContactOne code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:570
Dudley_Mesh * getDudley_Mesh() const
return the pointer to the underlying dudley mesh structure
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:112
static const int ReducedFaceElements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:78
virtual bool isCellOriented(int functionSpaceCode) const
returns true if data on this domain and a function space of type functionSpaceCode has to considered ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1464
virtual void addPDEToSystem(escript::AbstractSystemMatrix &mat, escript::Data &rhs, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y, const escript::Data &d, const escript::Data &y, const escript::Data &d_contact, const escript::Data &y_contact, const escript::Data &d_dirac, const escript::Data &y_dirac) const
adds a PDE onto the stiffness matrix mat and a rhs
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:686
bool commonFunctionSpace(const std::vector< int > &fs, int &resultcode) const
given a vector of FunctionSpace typecodes, pass back a code which then can all be interpolated to...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1490
virtual int getReducedFunctionOnBoundaryCode() const
Return a function on boundary with reduced integration order FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:555
virtual void addPDEToLumpedSystem(escript::Data &mat, const escript::Data &D, const escript::Data &d, const escript::Data &d_dirac, const bool useHRZ) const
adds a PDE onto the lumped stiffness matrix matrix
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:731
boost::shared_ptr< AbstractTransportProblem > ATP_ptr
Definition: AbstractTransportProblem.h:162
virtual int getDim() const
Returns the spatial dimension of the domain.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:598
int MPI_Comm
Definition: Esys_MPI.h:29
virtual int getReducedSolutionCode() const
Return a ReducedSolution code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:585
virtual bool operator==(const escript::AbstractDomain &other) const
comparison operators
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1755
virtual int getFunctionOnContactZeroCode() const
Return a FunctionOnContactZero code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:560
static const int Elements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:75
virtual int getMPISize() const
return the number of processors used for this domain
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:76
static const int ReducedNodes
Definition: dudley/src/CPPAdapter/MeshAdapter.h:74
virtual int getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const
return the identifier of the transport problem type to be used when a particular solver, perconditioner, package and symmetric matrix is used.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1777
virtual bool isValidTagName(const std::string &name) const
Returns true if name is a defined tage name.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1940
virtual const int * borrowListOfTagsInUse(int functionSpaceCode) const
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1995
Definition: dudley/src/Mesh.h:77
virtual int getReducedContinuousFunctionCode() const
Return a continuous on reduced order nodes FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:537
bool supportsContactElements() const
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:2089
static const int ContactElementsZero
Definition: dudley/src/CPPAdapter/MeshAdapter.h:80
static const int ReducedDegreesOfFreedom
Definition: dudley/src/CPPAdapter/MeshAdapter.h:72
virtual escript::Data getSize() const
returns the element size
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1794
#define DUDLEY_DLL_API
Definition: dudley/src/CPPAdapter/system_dep.h:44
Provide a wrapper around a Data object so Data may be accessed from C.
Definition: DataC.h:30
int StatusType
Definition: AbstractDomain.h:78
virtual int getFunctionOnBoundaryCode() const
Return a function on boundary FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:551
virtual std::pair< int, int > getDataShape(int functionSpaceCode) const
Return the number of data points per sample, and the number of samples as a pair. ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:618
void extractArgsFromDict(const boost::python::dict &arg, int &numData, char **&names, escriptDataC *&data, escriptDataC **&dataPtr) const
Data represents a collection of datapoints.
Definition: Data.h:71
static const int DegreesOfFreedom
Definition: dudley/src/CPPAdapter/MeshAdapter.h:71
virtual int getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const
return the identifier of the matrix type to be used for the global stiffness matrix when a particular...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1770
virtual void setToX(escript::Data &arg) const
copies the location of data points into arg. The domain of arg has to match this. has to be implement...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1068
virtual int getNumDataPointsGlobal() const
Return the number of data points summed across all MPI processes.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:609
static FunctionSpaceNamesMapType m_functionSpaceTypeNames
Definition: dudley/src/CPPAdapter/MeshAdapter.h:672
virtual bool probeInterpolationACross(int functionSpaceType_source, const escript::AbstractDomain &targetDomain, int functionSpaceType_target) const
determines whether interpolation from source to target is possible. Must be implemented by the actual...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1750
virtual void setTagMap(const std::string &name, int tag)
sets a map from a clear tag name to a tag key
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1922
virtual void setTags(const int functionSpaceType, const int newTag, const escript::Data &mask) const
assigns new tag newTag to all samples of functionspace with a positive value of mask for any its samp...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1881
int index_t
Definition: types.h:25
escript::ASM_ptr newSystemMatrix(const int row_blocksize, const escript::FunctionSpace &row_functionspace, const int column_blocksize, const escript::FunctionSpace &column_functionspace, const int type) const
creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1376
void setFunctionSpaceTypeNames()
Build the table of function space type names.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:511
virtual int getSolutionCode() const
Return a Solution code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:580
virtual void MPIBarrier() const
If compiled for MPI then execute an MPI_Barrier, else do nothing.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:84
virtual void interpolateACross(escript::Data &target, const escript::Data &source) const
interpolates data given on source onto target where source and target are given on different domains...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1139
static const int ReducedContactElementsOne
Definition: dudley/src/CPPAdapter/MeshAdapter.h:83
virtual signed char preferredInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
Preferred direction of interpolation.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1614
virtual int getReducedFunctionOnContactZeroCode() const
Return a FunctionOnContactZero code with reduced integration order.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:565
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:45
static const int ContactElementsOne
Definition: dudley/src/CPPAdapter/MeshAdapter.h:82
void write(const std::string &fileName) const
Write the current mesh to a file with the given name.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:116
virtual void interpolateOnDomain(escript::Data &target, const escript::Data &source) const
interpolates data given on source onto target where source and target have to be given on the same do...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:841
const int * borrowSampleReferenceIDs(int functionSpaceType) const
Return the reference number of the given sample number.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1799
virtual escript::Data getNormal() const
return boundary normals at the quadrature point on the face elements
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1789
virtual int getFunctionCode() const
Return a function FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:542
Give a short description of what AbstractSystemMatrix does.
Definition: AbstractSystemMatrix.h:44
boost::shared_ptr< Dudley_Mesh > m_dudleyMesh
Definition: dudley/src/CPPAdapter/MeshAdapter.h:670
virtual bool ownSample(int fs_code, index_t id) const
True if this rank owns the sample(id) Must be implemented by the Domain adapter.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1341
virtual void setToIntegrals(std::vector< double > &integrals, const escript::Data &arg) const
copies the integrals of the function defined by arg into integrals. arg has to be defined on this...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1152
virtual escript::Data getX() const
returns locations in the FEM nodes
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1784
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:201
Definition: AbstractDomain.h:62
std::map< int, std::string > FunctionSpaceNamesMapType
Definition: dudley/src/CPPAdapter/MeshAdapter.h:332
static const int ReducedContactElementsZero
Definition: dudley/src/CPPAdapter/MeshAdapter.h:81
static const int FaceElements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:77
MeshAdapter implements the AbstractContinuousDomain interface for the Dudley library.
Definition: dudley/src/CPPAdapter/MeshAdapter.h:65
virtual bool operator!=(const escript::AbstractDomain &other) const
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:1765
unsigned int getMPIComm() const
get the communicator for this domain. Returns 0 on non-MPI builds Routine must be implemented by the ...
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:102
virtual int getContinuousFunctionCode() const
Return a continuous FunctionSpace code.
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:533
virtual int getMPIRank() const
return the number MPI rank of this processor
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:80
virtual void addPDEToRHS(escript::Data &rhs, const escript::Data &X, const escript::Data &Y, const escript::Data &y, const escript::Data &y_contact, const escript::Data &y_dirac) const
adds a PDE onto the stiffness matrix mat and a rhs
Definition: dudley/src/CPPAdapter/MeshAdapter.cpp:760