18 #if !defined dudley_MeshAdapter_20040526_H 19 #define dudley_MeshAdapter_20040526_H 22 #include "dudley/Mesh.h" 23 #include "dudley/Dudley.h" 24 #include "dudley/Assemble.h" 25 #include "esysUtils/Esys_MPI.h" 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" 36 #include <boost/shared_ptr.hpp> 37 #include <boost/python/dict.hpp> 38 #include <boost/python/extract.hpp> 127 virtual int getMPISize()
const;
134 virtual int getMPIRank()
const;
142 virtual void MPIBarrier()
const;
150 virtual bool onMasterProcessor()
const;
161 void write(
const std::string& fileName)
const;
168 void Print_Mesh_Info(
const bool full=
false)
const;
176 void dump(
const std::string& fileName)
const;
192 int getTagFromSampleNo(
int functionSpaceType,
int sampleNo)
const;
200 const int* borrowSampleReferenceIDs(
int functionSpaceType)
const;
208 virtual bool isValidFunctionSpaceType(
int functionSpaceType)
const;
215 virtual std::string getDescription()
const;
222 virtual std::string functionSpaceTypeAsString(
int functionSpaceType)
const;
229 void setFunctionSpaceTypeNames();
236 virtual int getContinuousFunctionCode()
const;
243 virtual int getReducedContinuousFunctionCode()
const;
250 virtual int getFunctionCode()
const;
257 virtual int getReducedFunctionCode()
const;
264 virtual int getFunctionOnBoundaryCode()
const;
271 virtual int getReducedFunctionOnBoundaryCode()
const;
278 virtual int getFunctionOnContactZeroCode()
const;
285 virtual int getReducedFunctionOnContactZeroCode()
const;
292 virtual int getFunctionOnContactOneCode()
const;
299 virtual int getReducedFunctionOnContactOneCode()
const;
306 virtual int getSolutionCode()
const;
313 virtual int getReducedSolutionCode()
const;
320 virtual int getDiracDeltaFunctionsCode()
const;
332 virtual int getDim()
const;
351 virtual int getNumDataPointsGlobal()
const;
359 virtual std::pair<int,int> getDataShape(
int functionSpaceCode)
const;
376 virtual void setTagMap(
const std::string& name,
int tag);
384 virtual int getTag(
const std::string& name)
const;
392 virtual bool isValidTagName(
const std::string& name)
const;
399 virtual std::string showTagNames()
const;
417 virtual bool probeInterpolationOnDomain(
int functionSpaceType_source,
int functionSpaceType_target)
const;
420 virtual signed char preferredInterpolationOnDomain(
int functionSpaceType_source,
int functionSpaceType_target)
const;
429 commonFunctionSpace(
const std::vector<int>& fs,
int& resultcode)
const;
476 virtual void setToIntegrals(std::vector<double>& integrals,
const escript::Data& arg)
const;
487 virtual int getSystemMatrixTypeId(
const boost::python::object& options)
const;
499 virtual int getTransportTypeId(
const int solver,
const int preconditioner,
const int package,
const bool symmetry)
const;
507 virtual bool isCellOriented(
int functionSpaceCode)
const;
510 virtual bool ownSample(
int fs_code,
index_t id)
const;
517 virtual void addPDEToSystem(
531 virtual void addPDEToLumpedSystem(
536 const bool useHRZ)
const;
552 virtual void addPDEToTransportProblem(
568 const int row_blocksize,
570 const int column_blocksize,
572 const int type)
const;
583 const int type)
const;
617 virtual void setTags(
const int functionSpaceType,
const int newTag,
const escript::Data& mask)
const;
624 virtual int getNumberOfTagsInUse(
int functionSpaceCode)
const;
627 virtual const int* borrowListOfTagsInUse(
int functionSpaceCode)
const;
635 bool canTag(
int functionSpaceCode)
const;
643 int getApproximationOrder(
const int functionSpaceCode)
const;
647 bool supportsContactElements()
const;
657 void extractArgsFromDict(
const boost::python::dict& arg,
int& numData,
AbstractContinuousDomain, base class for continuous domains.
Definition: AbstractContinuousDomain.h:46
Definition: FunctionSpace.h:34
static const int ReducedElements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:76
static const int Points
Definition: dudley/src/CPPAdapter/MeshAdapter.h:79
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:36
void operator()(void const *ptr) const
Definition: dudley/src/CPPAdapter/MeshAdapter.h:49
static const int Nodes
Definition: dudley/src/CPPAdapter/MeshAdapter.h:73
Definition: dudley/src/CPPAdapter/MeshAdapter.h:47
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
static dim_t M
Definition: SparseMatrix_saveHB.cpp:37
static const int ReducedFaceElements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:78
boost::shared_ptr< AbstractTransportProblem > ATP_ptr
Definition: AbstractTransportProblem.h:162
int MPI_Comm
Definition: Esys_MPI.h:38
static const int Elements
Definition: dudley/src/CPPAdapter/MeshAdapter.h:75
static const int ReducedNodes
Definition: dudley/src/CPPAdapter/MeshAdapter.h:74
Definition: dudley/src/Mesh.h:77
static const int ContactElementsZero
Definition: dudley/src/CPPAdapter/MeshAdapter.h:80
static const int ReducedDegreesOfFreedom
Definition: dudley/src/CPPAdapter/MeshAdapter.h:72
#define DUDLEY_DLL_API
Definition: dudley/src/CPPAdapter/system_dep.h:29
int StatusType
Definition: AbstractDomain.h:48
Data represents a collection of datapoints.
Definition: Data.h:68
static const int DegreesOfFreedom
Definition: dudley/src/CPPAdapter/MeshAdapter.h:71
Definition: DudleyAdapterException.h:24
static FunctionSpaceNamesMapType m_functionSpaceTypeNames
Definition: dudley/src/CPPAdapter/MeshAdapter.h:665
int index_t
Definition: types.h:24
static const int ReducedContactElementsOne
Definition: dudley/src/CPPAdapter/MeshAdapter.h:83
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:45
static const int ContactElementsOne
Definition: dudley/src/CPPAdapter/MeshAdapter.h:82
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:37
boost::shared_ptr< Dudley_Mesh > m_dudleyMesh
Definition: dudley/src/CPPAdapter/MeshAdapter.h:663
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:170
Base class for all escript domains.
Definition: AbstractDomain.h:45
std::map< int, std::string > FunctionSpaceNamesMapType
Definition: dudley/src/CPPAdapter/MeshAdapter.h:326
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