escript  Revision_
DudleyDomain.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2020 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
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-2017 by Centre for Geoscience Computing (GeoComp)
14 * Development from 2019 by School of Earth and Environmental Sciences
15 **
16 *****************************************************************************/
17 
18 #ifndef __DUDLEY_DOMAIN_H__
19 #define __DUDLEY_DOMAIN_H__
20 
21 /****************************************************************************
22 
23  Dudley: Domain
24 
25  A mesh is built from nodes and elements which describe the domain, surface,
26  and point sources (the latter are needed to establish links with other
27  codes, in particular particle codes). The nodes are stored in a NodeFile
28  and elements in ElementFiles. Dudley domains have three ElementFiles
29  containing the elements, surface and point sources, respectively.
30  Notice that the surface elements do not necessarily cover the entire
31  surface of the domain.
32 
33  The element type is either Tri3 or Tet4 depending on dimensionality
34  and also determines the type of surface elements to be used.
35 
36  The numbering of the nodes starts with 0.
37 
38  Important: it is assumed that every node appears in at least one element or
39  surface element and that any node used in an element, surface element or as
40  a point is specified in the NodeFile, see also resolveNodeIds.
41 
42  All nodes and elements are tagged. The tag allows to group nodes and
43  elements. A typical application is to mark surface elements on a
44  certain portion of the domain with the same tag. All these surface
45  elements can then be assigned the same value e.g. for the pressure.
46 
47 *****************************************************************************/
48 
49 #include <dudley/Dudley.h>
50 #include <dudley/ElementFile.h>
51 #include <dudley/NodeFile.h>
52 #include <dudley/Util.h>
53 
54 #include <escript/AbstractContinuousDomain.h>
55 #include <escript/FunctionSpace.h>
56 #include <escript/FunctionSpaceFactory.h>
57 
58 #ifdef ESYS_HAVE_PASO
59 #include <paso/SystemMatrixPattern.h>
60 #endif
61 #ifdef ESYS_HAVE_TRILINOS
62 #include <trilinoswrap/types.h>
63 #endif
64 
65 #include <map>
66 #include <string>
67 #include <vector>
68 
69 namespace dudley {
70 
71 typedef std::map<std::string, int> TagMap;
72 
73 enum SystemMatrixType {
74  SMT_PASO = 1<<8,
75  SMT_TRILINOS = 1<<10,
76  SMT_COMPLEX = 1<<16,
77  SMT_UNROLL = 1<<17
78 };
79 
85 class DudleyDomain : public escript::AbstractContinuousDomain
86 {
87 public:
93  static escript::Domain_ptr load(const std::string& filename);
94 
103  static escript::Domain_ptr read(escript::JMPI mpiInfo,
104  const std::string& filename, bool optimize);
105 
115  const std::string& filename, int numDim,
116  bool optimize);
117 
129  static escript::Domain_ptr create2D(dim_t NE0, dim_t NE1, double l0,
130  double l1, bool optimize,
131  escript::JMPI jmpi);
132 
146  static escript::Domain_ptr create3D(dim_t NE0, dim_t NE1, dim_t NE2,
147  double l0, double l1, double l2,
148  bool optimize, escript::JMPI jmpi);
149 
158  DudleyDomain(const std::string& name, int numDim, escript::JMPI jmpi);
159 
164  DudleyDomain(const DudleyDomain& in);
165 
170  ~DudleyDomain();
171 
176  NodeFile* getNodes() const { return m_nodes; }
177 
182  void setElements(ElementFile* elements);
183 
188  ElementFile* getElements() const { return m_elements; }
189 
194  void setFaceElements(ElementFile* elements);
195 
200  ElementFile* getFaceElements() const { return m_faceElements; }
201 
206  void setPoints(ElementFile* elements);
207 
212  ElementFile* getPoints() const { return m_points; }
213 
218  virtual escript::JMPI getMPI() const { return m_mpiInfo; }
219 
224  virtual int getMPISize() const { return m_mpiInfo->size; }
225 
230  virtual int getMPIRank() const { return m_mpiInfo->rank; }
231 
236  virtual void MPIBarrier() const;
237 
242  virtual bool onMasterProcessor() const { return getMPIRank() == 0; }
243 
244  MPI_Comm getMPIComm() const { return m_mpiInfo->comm; }
245 
252  void write(const std::string& fileName) const;
253 
258  void Print_Mesh_Info(bool full=false) const;
259 
265  void dump(const std::string& fileName) const;
266 
273  int getTagFromSampleNo(int functionSpaceType, index_t sampleNo) const;
274 
280  const index_t* borrowSampleReferenceIDs(int functionSpaceType) const;
281 
287  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
288 
293  virtual std::string getDescription() const;
294 
299  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
300 
306 
311  virtual int getContinuousFunctionCode() const;
312 
317  virtual int getReducedContinuousFunctionCode() const;
318 
323  virtual int getFunctionCode() const;
324 
329  virtual int getReducedFunctionCode() const;
330 
335  virtual int getFunctionOnBoundaryCode() const;
336 
341  virtual int getReducedFunctionOnBoundaryCode() const;
342 
347  virtual int getFunctionOnContactZeroCode() const;
348 
353  virtual int getReducedFunctionOnContactZeroCode() const;
354 
359  virtual int getFunctionOnContactOneCode() const;
360 
365  virtual int getReducedFunctionOnContactOneCode() const;
366 
371  virtual int getSolutionCode() const;
372 
377  virtual int getReducedSolutionCode() const;
378 
383  virtual int getDiracDeltaFunctionsCode() const;
384 
388  typedef std::map<int, std::string> FunctionSpaceNamesMapType;
389 
393  virtual int getDim() const { return m_nodes->numDim; }
394 
401  virtual StatusType getStatus() const;
402 
407  virtual dim_t getNumDataPointsGlobal() const;
408 
414  virtual std::pair<int,dim_t> getDataShape(int functionSpaceCode) const;
415 
421  virtual void setToX(escript::Data& arg) const;
422 
429  virtual void setTagMap(const std::string& name, int tag);
430 
436  virtual int getTag(const std::string& name) const;
437 
443  virtual bool isValidTagName(const std::string& name) const;
444 
449  virtual std::string showTagNames() const;
450 
455  virtual void setNewX(const escript::Data& arg);
456 
461  virtual void interpolateOnDomain(escript::Data& target,
462  const escript::Data& source) const;
463 
464  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,
465  int functionSpaceType_target) const;
466 
467  virtual signed char preferredInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const;
468 
473  bool commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
474 
479  virtual void interpolateAcross(escript::Data& target, const escript::Data& source) const;
480 
484  virtual bool probeInterpolationAcross(int functionSpaceType_source,
485  const escript::AbstractDomain& targetDomain,
486  int functionSpaceType_target) const;
487 
493  virtual void setToNormal(escript::Data& out) const;
494 
500  virtual void setToSize(escript::Data& out) const;
501 
507  virtual void setToGradient(escript::Data& grad, const escript::Data& arg) const;
508 
514  virtual void setToIntegrals(std::vector<escript::DataTypes::real_t>& integrals,
515  const escript::Data& arg) const;
516  virtual void setToIntegrals(std::vector<escript::DataTypes::cplx_t>& integrals,
517  const escript::Data& arg) const;
518 
527  virtual int getSystemMatrixTypeId(const boost::python::object& options) const;
528 
538  virtual int getTransportTypeId(int solver, int preconditioner, int package,
539  bool symmetry) const;
540 
546  virtual bool isCellOriented(int functionSpaceCode) const;
547 
548  virtual bool ownSample(int fsCode, index_t id) const;
549 
554  virtual void addPDEToSystem(
556  const escript::Data& A, const escript::Data& B,
557  const escript::Data& C, const escript::Data& D,
558  const escript::Data& X, const escript::Data& Y,
559  const escript::Data& d, const escript::Data& y,
560  const escript::Data& d_contact,
561  const escript::Data& y_contact,
562  const escript::Data& d_dirac,
563  const escript::Data& y_dirac) const;
564 
569  virtual void addPDEToLumpedSystem(escript::Data& mat,
570  const escript::Data& D,
571  const escript::Data& d,
572  const escript::Data& d_dirac,
573  bool useHRZ) const;
574 
579  virtual void addPDEToRHS(escript::Data& rhs, const escript::Data& X,
580  const escript::Data& Y, const escript::Data& y,
581  const escript::Data& y_contact,
582  const escript::Data& y_dirac) const;
583 
588  virtual void addPDEToTransportProblem(
590  escript::Data& source, const escript::Data& M,
591  const escript::Data& A, const escript::Data& B,
592  const escript::Data& C, const escript::Data& D,
593  const escript::Data& X, const escript::Data& Y,
594  const escript::Data& d, const escript::Data& y,
595  const escript::Data& d_contact,
596  const escript::Data& y_contact,
597  const escript::Data& d_dirac,
598  const escript::Data& y_dirac) const;
599 
605  int row_blocksize,
606  const escript::FunctionSpace& row_functionspace,
607  int column_blocksize,
608  const escript::FunctionSpace& column_functionspace,
609  int type) const;
610 
616  const escript::FunctionSpace& functionspace,
617  int type) const;
618 
622  virtual escript::Data getX() const;
623 
627 #ifdef ESYS_HAVE_BOOST_NUMPY
628  boost::python::numpy::ndarray getNumpyX() const;
629 
630  boost::python::numpy::ndarray getConnectivityInfo() const;
631 #endif
632 
637  virtual escript::Data getNormal() const;
638 
642  virtual escript::Data getSize() const;
643 
647  virtual bool operator==(const escript::AbstractDomain& other) const;
648  virtual bool operator!=(const escript::AbstractDomain& other) const;
649 
654  virtual void setTags(int functionSpaceType, int newTag,
655  const escript::Data& mask) const;
656 
662  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
663 
664  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
665 
670  virtual bool canTag(int functionSpaceCode) const;
671 
675  virtual int getApproximationOrder(int functionSpaceCode) const;
676 
677  virtual bool supportsContactElements() const { return false; }
678 
680  const escript::FunctionSpace& what, long seed,
681  const boost::python::tuple& filter) const;
682 
683  void createMappings(const std::vector<index_t>& dofDistribution,
684  const std::vector<index_t>& nodeDistribution);
685 
688  void relabelElementNodes(const index_t* newNode, index_t offset);
689 
690  template<typename Scalar>
691  void setToIntegralsWorker(std::vector<Scalar>& integrals,
692  const escript::Data& arg) const;
693 
694 #ifdef ESYS_HAVE_PASO
695  paso::SystemMatrixPattern_ptr getPasoPattern() const;
697 #endif
698 
699 #ifdef ESYS_HAVE_TRILINOS
700  esys_trilinos::const_TrilinosGraph_ptr getTrilinosGraph() const {
702  return m_nodes->getTrilinosGraph();
703  }
704 #endif
705 
706 private:
707  void prepare(bool optimize);
708 
716  void resolveNodeIds();
717 
718 #ifdef ESYS_HAVE_PASO
719  paso::SystemMatrixPattern_ptr makePasoPattern() const;
720 #endif
721 
722  void createColoring(const index_t* dofMap);
723  void distributeByRankOfDOF(const IndexVector& distribution);
724  void markNodes(std::vector<short>& mask, index_t offset) const;
725  void optimizeDOFDistribution(IndexVector& distribution);
726  void optimizeDOFLabeling(const IndexVector& distribution);
728  void updateTagList();
729  void printElementInfo(const ElementFile* e, const std::string& title,
730  const std::string& defaultType, bool full) const;
731 
732  void writeElementInfo(std::ostream& stream, const ElementFile* e,
733  const std::string& defaultType) const;
734 
738  std::string m_name;
740  NodeFile* m_nodes;
742  ElementFile* m_elements;
744  ElementFile* m_faceElements;
746  ElementFile* m_points;
749 #ifdef ESYS_HAVE_PASO
750  // pointer to the sparse matrix pattern
751  mutable paso::SystemMatrixPattern_ptr pasoPattern;
752 #endif
753 
755 };
756 
757 } // end of namespace
758 
759 #endif // __DUDLEY_DOMAIN_H__
760 
dudley::NodeFile::globalDegreesOfFreedom
index_t * globalDegreesOfFreedom
Definition: dudley/src/NodeFile.h:156
dudley::SMT_COMPLEX
Definition: DudleyDomain.h:112
dudley::DudleyDomain::getFaceElements
ElementFile * getFaceElements() const
returns a pointer to this domain's face element file
Definition: DudleyDomain.h:236
dudley::DudleyDomain::setToIntegralsWorker
void setToIntegralsWorker(std::vector< Scalar > &integrals, const escript::Data &arg) const
Definition: DudleyDomain.cpp:1309
escript::SolverOptions
SolverOptions
Definition: SolverOptions.h:92
MPI_Status
int MPI_Status
Definition: EsysMPI.h:44
escript::SolverBuddy
Definition: SolverOptions.h:170
escript::Data::isComplex
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1164
dudley::DudleyDomain::MPIBarrier
virtual void MPIBarrier() const
If compiled for MPI then execute an MPI_Barrier, else do nothing.
Definition: DudleyDomain.cpp:99
escript::FunctionSpace::getSize
escript::Data getSize() const
Returns the sample size (e.g. the diameter of elements, radius of particles).
Definition: FunctionSpace.cpp:294
dudley::ElementFile::Tag
int * Tag
Tag[i] is the tag of element i.
Definition: dudley/src/ElementFile.h:133
dudley::DudleyDomain::m_mpiInfo
escript::JMPI m_mpiInfo
MPI information.
Definition: DudleyDomain.h:772
dudley::DudleyDomain::updateTagList
void updateTagList()
regenerates list of tags in use for node file and element files
Definition: DudleyDomain.cpp:2162
dudley::DudleyDomain::printElementInfo
void printElementInfo(const ElementFile *e, const std::string &title, const std::string &defaultType, bool full) const
Definition: dudley/src/Mesh_write.cpp:50
escript::DataTypes::real_t
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:76
dudley::Points
Definition: Dudley.h:70
REGISTER_ESCRIPT_EXCEPTION_TRANSLATORS
#define REGISTER_ESCRIPT_EXCEPTION_TRANSLATORS
Definition: ExceptionTranslators.h:25
dudley::SMT_PASO
Definition: DudleyDomain.h:110
dudley::Assemble_LumpedSystem
void Assemble_LumpedSystem(const NodeFile *nodes, const ElementFile *elements, escript::Data &lumpedMat, const escript::Data &D, bool useHRZ)
Definition: dudley/src/Assemble_LumpedSystem.cpp:38
dudley::DudleyDomain::interpolateAcross
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: DudleyDomain.cpp:1286
dudley::DudleyDomain::getDataShape
virtual std::pair< int, dim_t > getDataShape(int functionSpaceCode) const
Return the number of data points per sample, and the number of samples as a pair.
Definition: DudleyDomain.cpp:886
dudley::NodeFile::nodesDistribution
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: dudley/src/NodeFile.h:163
dudley::DudleyException
Definition: DudleyException.h:37
dudley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: dudley/src/NodeFile.h:145
dudley::ElementFile::createColoring
void createColoring(dim_t numNodes, const index_t *degreeOfFreedom)
Definition: ElementFile_createColoring.cpp:37
dudley::Assemble_getNormal
void Assemble_getNormal(const NodeFile *nodes, const ElementFile *elements, escript::Data &normals)
calculates the normal vector at quadrature points on face elements
Definition: dudley/src/Assemble_getNormal.cpp:38
dudley::DudleyDomain::getNumberOfTagsInUse
virtual int getNumberOfTagsInUse(int functionSpaceCode) const
returns the number of tags in use and a pointer to an array with the number of tags in use
Definition: DudleyDomain.cpp:1989
paso::SystemMatrix
this class holds a (distributed) stiffness matrix
Definition: SystemMatrix.h:60
dudley::DudleyDomain::resolveNodeIds
void resolveNodeIds()
Definition: Mesh_resolveNodeIds.cpp:35
dudley::DudleyDomain::onMasterProcessor
virtual bool onMasterProcessor() const
returns true if on MPI processor 0, else false
Definition: DudleyDomain.h:278
dudley::NodeFile
Definition: dudley/src/NodeFile.h:38
escript::SO_METHOD_DIRECT
Definition: SolverOptions.h:125
dudley::NodeFile::createNodeMappings
void createNodeMappings(const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: NodeFile_createMappings.cpp:236
dudley::NodeFile::setCoordinates
void setCoordinates(const escript::Data &newX)
Definition: dudley/src/NodeFile.cpp:184
dudley::Nodes
Definition: Dudley.h:65
dudley::DudleyDomain::m_name
std::string m_name
domain description
Definition: DudleyDomain.h:774
dudley::DudleyDomain::addPDEToRHS
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: DudleyDomain.cpp:991
dudley::DudleyDomain::write
void write(const std::string &fileName) const
writes the current mesh to a file with the given name in the fly file format.
Definition: dudley/src/Mesh_write.cpp:83
dudley::DudleyDomain::load
static escript::Domain_ptr load(const std::string &filename)
recovers domain from a dump file
Definition: dudley/src/DomainFactory.cpp:365
dudley::NodeFile::borrowTargetDegreesOfFreedom
const index_t * borrowTargetDegreesOfFreedom() const
returns the mapping from local degrees of freedom to a target
Definition: dudley/src/NodeFile.h:233
escript::SolverBuddy::getPackage
SolverOptions getPackage() const
Definition: SolverOptions.cpp:471
escript::continuousFunction
FunctionSpace continuousFunction(const AbstractDomain &domain)
Create function space objects.
Definition: FunctionSpaceFactory.cpp:43
dudley::ElementFile::Nodes
index_t * Nodes
Nodes[INDEX(k, i, numNodes)] is the k-th node in the i-th element.
Definition: dudley/src/ElementFile.h:145
dudley::DudleyDomain::setElements
void setElements(ElementFile *elements)
replaces the element file by elements
Definition: DudleyDomain.cpp:106
escript::NotImplementedError
An exception class for features which are not (yet) implemented.
Definition: EsysException.h:91
dudley::DudleyDomain::getContinuousFunctionCode
virtual int getContinuousFunctionCode() const
Return a continuous FunctionSpace code.
Definition: DudleyDomain.cpp:809
dudley::DudleyDomain::getElements
ElementFile * getElements() const
returns a pointer to this domain's element file
Definition: DudleyDomain.h:224
paso::SystemMatrix_ptr
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:53
paso::TransportProblem::borrowMassMatrix
SystemMatrix_ptr borrowMassMatrix() const
Definition: Transport.h:69
escript::DataTypes::DataVectorAlt< real_t >
dudley::DudleyDomain::m_elements
ElementFile * m_elements
the table of the elements
Definition: DudleyDomain.h:778
escript::SolverBuddy::getSolverMethod
SolverOptions getSolverMethod() const
Definition: SolverOptions.cpp:408
escript::randomFillArray
void randomFillArray(long seed, double *array, size_t n)
Definition: Random.cpp:74
dudley::SMT_TRILINOS
Definition: DudleyDomain.h:111
dudley::DudleyDomain::setToX
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: DudleyDomain.cpp:1248
dudley::NodeFile::getNumNodes
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: dudley/src/NodeFile.h:203
escript::AbstractDomain::StatusType
int StatusType
Definition: AbstractDomain.h:65
dudley::NodeFile::createDenseDOFLabeling
dim_t createDenseDOFLabeling()
Definition: NodeFile_createDenseLabelings.cpp:34
paso::SystemMatrixPattern_ptr
boost::shared_ptr< SystemMatrixPattern > SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:52
dudley::DudleyDomain::dump
void dump(const std::string &fileName) const
dumps the mesh to a file with the given name.
Definition: DudleyDomain.cpp:464
dudley::DudleyDomain::DudleyDomain
DudleyDomain(const std::string &name, int numDim, escript::JMPI jmpi)
Constructor for DudleyDomain.
Definition: DudleyDomain.cpp:68
dudley::readGmsh
Domain_ptr readGmsh(const string &fileName, int numDim, int, int, bool optimize)
reads a gmsh mesh file
Definition: dudley/src/DomainFactory.cpp:680
dudley::DudleyDomain::getMPIRank
virtual int getMPIRank() const
returns the number MPI rank of this processor
Definition: DudleyDomain.h:266
dudley::DudleyDomain::writeElementInfo
void writeElementInfo(std::ostream &stream, const ElementFile *e, const std::string &defaultType) const
Definition: dudley/src/Mesh_write.cpp:32
dudley::DudleyDomain::probeInterpolationOnDomain
virtual bool probeInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
True if interpolation is possible from source to target.
Definition: DudleyDomain.cpp:1640
dudley::ElementFile::Owner
int * Owner
Owner[i] contains the rank that owns element i.
Definition: dudley/src/ElementFile.h:136
escript::Domain_ptr
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:53
escript::AbstractTransportProblem
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:56
dudley::DudleyDomain::createMappings
void createMappings(const std::vector< index_t > &dofDistribution, const std::vector< index_t > &nodeDistribution)
Definition: DudleyDomain.cpp:124
dudley::DudleyDomain::getStatus
virtual StatusType getStatus() const
Returns a status indicator of the domain. The status identifier should be unique over the live time i...
Definition: DudleyDomain.cpp:2061
dudley::NodeFile::updateTagList
void updateTagList()
Definition: dudley/src/NodeFile.h:238
dudley::DegreesOfFreedom
Definition: Dudley.h:64
dudley::NodeFile::setTags
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: dudley/src/NodeFile.cpp:213
dudley::DudleyDomain::functionSpaceTypeAsString
virtual std::string functionSpaceTypeAsString(int functionSpaceType) const
Return a description for the given function space type code.
Definition: DudleyDomain.cpp:773
escript::SO_PRECONDITIONER_ILUT
Definition: SolverOptions.h:145
dudley::Assemble_NodeCoordinates
void Assemble_NodeCoordinates(const NodeFile *nodes, escript::Data &x)
copies node coordinates into expanded Data object x
Definition: dudley/src/Assemble_NodeCoordinates.cpp:39
dudley::ElementFile::markNodes
void markNodes(std::vector< short > &mask, index_t offset) const
Definition: dudley/src/ElementFile.cpp:240
dudley::NodeFile::getLastNode
index_t getLastNode() const
Definition: dudley/src/NodeFile.h:188
escript::SolverBuddy::isComplex
bool isComplex() const
Definition: SolverOptions.cpp:637
dudley::DudleyDomain::getReducedFunctionOnContactZeroCode
virtual int getReducedFunctionOnContactZeroCode() const
Return a FunctionOnContactZero code with reduced integration order.
Definition: DudleyDomain.cpp:844
escript::FunctionSpace
Definition: FunctionSpace.h:47
dudley::DudleyDomain::operator==
virtual bool operator==(const escript::AbstractDomain &other) const
comparison operators
Definition: DudleyDomain.cpp:1715
escript::Data::getFunctionSpace
const FunctionSpace & getFunctionSpace() const
Return the function space.
Definition: Data.h:462
dudley::NodeFile::status
int status
Definition: dudley/src/NodeFile.h:176
dudley::SystemMatrixType
SystemMatrixType
Definition: DudleyDomain.h:109
dudley::Elements
Definition: Dudley.h:66
dudley::DudleyDomain::getDiracDeltaFunctionsCode
virtual int getDiracDeltaFunctionsCode() const
Return a DiracDeltaFunctions code.
Definition: DudleyDomain.cpp:869
escript::FunctionSpace::getDomain
const_Domain_ptr getDomain() const
Returns the function space domain.
Definition: FunctionSpace.cpp:102
MPI_INT
#define MPI_INT
Definition: EsysMPI.h:45
dudley::DudleyDomain::read
static escript::Domain_ptr read(escript::JMPI mpiInfo, const std::string &filename, bool optimize)
reads a mesh from a fly file. For MPI parallel runs fans out the mesh to multiple processes.
Definition: dudley/src/Mesh_read.cpp:149
weipa::VisItControl::initialize
bool initialize(const std::string &simFile, const std::string &comment)
Definition: VisItControl.cpp:203
dudley::DudleyDomain::setToSize
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: DudleyDomain.cpp:1391
dudley::DudleyDomain::m_points
ElementFile * m_points
the table of points (treated as elements of dimension 0)
Definition: DudleyDomain.h:782
dudley::rectangle_driver
Domain_ptr rectangle_driver(const bp::list &args)
Definition: dudley/src/DomainFactory.cpp:753
dudley::IndexList_insertElements
void IndexList_insertElements(IndexList *index_list, const ElementFile *elements, const index_t *map)
Definition: dudley/src/IndexList.cpp:48
dudley::DudleyDomain::interpolateOnDomain
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: DudleyDomain.cpp:1057
escript::FunctionSpace::getNormal
escript::Data getNormal() const
Returns the surface normal field.
Definition: FunctionSpace.cpp:285
dudley::NodeFile::getNumDegreesOfFreedomTargets
dim_t getNumDegreesOfFreedomTargets() const
returns the number of degrees of freedom targets (own and shared)
Definition: dudley/src/NodeFile.h:213
dudley::DudleyDomain::getFunctionCode
virtual int getFunctionCode() const
Return a function FunctionSpace code.
Definition: DudleyDomain.cpp:819
dudley
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:32
dudley::DudleyDomain::m_functionSpaceTypeNames
static FunctionSpaceNamesMapType m_functionSpaceTypeNames
Definition: DudleyDomain.h:790
dudley::DudleyDomain::getSize
virtual escript::Data getSize() const
returns the element size
Definition: DudleyDomain.cpp:1858
dudley::Assemble_getSize
void Assemble_getSize(const NodeFile *nodes, const ElementFile *elements, escript::Data &size)
Definition: dudley/src/Assemble_getSize.cpp:37
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:63
paso::TransportProblem_ptr
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:31
dudley::DudleyDomain::create3D
static escript::Domain_ptr create3D(dim_t NE0, dim_t NE1, dim_t NE2, double l0, double l1, double l2, bool optimize, escript::JMPI jmpi)
Creates a 3-dimensional rectangular domain.
Definition: Mesh_tet4.cpp:27
dudley::DudleyDomain::getFunctionOnContactOneCode
virtual int getFunctionOnContactOneCode() const
Return a FunctionOnContactOne code.
Definition: DudleyDomain.cpp:849
paso::util::l2
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:527
paso::TransportProblem::borrowTransportMatrix
SystemMatrix_ptr borrowTransportMatrix() const
Definition: Transport.h:64
escript::AbstractSystemMatrix::getPtr
ASM_ptr getPtr()
Returns smart pointer which is managing this object. If one does not exist yet it creates one.
Definition: AbstractSystemMatrix.cpp:54
dudley::DudleyDomain::getPoints
ElementFile * getPoints() const
returns a pointer to this domain's point (nodal) element file
Definition: DudleyDomain.h:248
escript::FunctionSpace::getX
escript::Data getX() const
Returns the spatial locations of the data points.
Definition: FunctionSpace.cpp:228
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:90
escript::DataTypes::ShapeType
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:68
dudley::ElementFile::numElements
dim_t numElements
number of elements
Definition: dudley/src/ElementFile.h:125
escript::JMPI
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
escript::ATP_ptr
boost::shared_ptr< AbstractTransportProblem > ATP_ptr
Definition: AbstractTransportProblem.h:173
escript::AbstractSystemMatrix
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:55
dudley::ElementFile
Definition: dudley/src/ElementFile.h:64
dudley::NodeFile::tagsInUse
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: dudley/src/NodeFile.h:151
dudley::DudleyDomain::addPDEToSystem
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: DudleyDomain.cpp:944
dudley::DudleyDomain::optimizeDOFDistribution
void optimizeDOFDistribution(IndexVector &distribution)
Definition: dudley/src/Mesh_optimizeDOFDistribution.cpp:76
dudley::TagMap
std::map< std::string, int > TagMap
Definition: DudleyDomain.h:107
dudley::DudleyDomain::randomFill
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: DudleyDomain.cpp:2086
dudley::DudleyDomain::create2D
static escript::Domain_ptr create2D(dim_t NE0, dim_t NE1, double l0, double l1, bool optimize, escript::JMPI jmpi)
Creates a 2-dimensional rectangular domain.
Definition: Mesh_tri3.cpp:25
dudley::DudleyDomain::m_nodes
NodeFile * m_nodes
the table of the nodes
Definition: DudleyDomain.h:776
dudley::ElementFile::Id
index_t * Id
Definition: dudley/src/ElementFile.h:130
dudley::DudleyDomain::getReducedContinuousFunctionCode
virtual int getReducedContinuousFunctionCode() const
Return a continuous on reduced order nodes FunctionSpace code.
Definition: DudleyDomain.cpp:814
dudley::DudleyDomain::markNodes
void markNodes(std::vector< short > &mask, index_t offset) const
Definition: DudleyDomain.cpp:150
dudley::DudleyDomain::optimizeDOFLabeling
void optimizeDOFLabeling(const IndexVector &distribution)
optimizes the labeling of the DOFs on each processor
Definition: Mesh_optimizeDOFLabeling.cpp:38
dudley::DudleyDomain::newSystemMatrix
escript::ASM_ptr newSystemMatrix(int row_blocksize, const escript::FunctionSpace &row_functionspace, int column_blocksize, const escript::FunctionSpace &column_functionspace, int type) const
creates a stiffness matrix and initializes it with zeros
Definition: DudleyDomain.cpp:1456
dudley::DudleyDomain::setToIntegrals
virtual void setToIntegrals(std::vector< escript::DataTypes::real_t > &integrals, const escript::Data &arg) const
copies the integrals of the function defined by arg into integrals. arg has to be defined on this.
dudley::DudleyDomain::getReducedSolutionCode
virtual int getReducedSolutionCode() const
Return a ReducedSolution code.
Definition: DudleyDomain.cpp:864
dudley::NodeFile::createDenseNodeLabeling
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
dudley::DudleyDomain::m_tagMap
TagMap m_tagMap
the tag map mapping names to tag keys
Definition: DudleyDomain.h:784
dudley::DudleyDomain::Print_Mesh_Info
void Print_Mesh_Info(bool full=false) const
Definition: dudley/src/Mesh_write.cpp:139
escript::Data::isEmpty
bool isEmpty() const
Definition: Data.cpp:1136
dudley::DudleyDomain::getFunctionOnBoundaryCode
virtual int getFunctionOnBoundaryCode() const
Return a function on boundary FunctionSpace code.
Definition: DudleyDomain.cpp:829
dudley::DudleyDomain::getNodes
NodeFile * getNodes() const
returns a pointer to this domain's node file
Definition: DudleyDomain.h:212
dudley::DudleyDomain::FunctionSpaceNamesMapType
std::map< int, std::string > FunctionSpaceNamesMapType
Definition: DudleyDomain.h:424
dudley::DudleyDomain::getTagFromSampleNo
int getTagFromSampleNo(int functionSpaceType, index_t sampleNo) const
Return the tag key for the given sample number.
Definition: DudleyDomain.cpp:1897
dudley::DudleyDomain::isCellOriented
virtual bool isCellOriented(int functionSpaceCode) const
returns true if data on this domain and a function space of type functionSpaceCode has to considered ...
Definition: DudleyDomain.cpp:1536
dudley::DudleyDomain::getTag
virtual int getTag(const std::string &name) const
Return the tag key for tag name.
Definition: DudleyDomain.cpp:1960
dudley::DudleyDomain::borrowListOfTagsInUse
virtual const int * borrowListOfTagsInUse(int functionSpaceCode) const
Definition: DudleyDomain.cpp:2011
dudley::DudleyDomain::newTransportProblem
escript::ATP_ptr newTransportProblem(int blocksize, const escript::FunctionSpace &functionspace, int type) const
creates a TransportProblem
Definition: DudleyDomain.cpp:1509
dudley::ElementFile::optimizeOrdering
void optimizeOrdering()
reorders the elements so that they are stored close to the nodes
Definition: dudley/src/ElementFile.cpp:176
dudley::DudleyDomain::canTag
virtual bool canTag(int functionSpaceCode) const
Checks if this domain allows tags for the specified functionSpace code.
Definition: DudleyDomain.cpp:2046
escript::SO_PRECONDITIONER_AMG
Definition: SolverOptions.h:142
paso::TransportProblem
Definition: Transport.h:35
dudley::DudleyDomain::getReducedFunctionCode
virtual int getReducedFunctionCode() const
Return a function with reduced integration order FunctionSpace code.
Definition: DudleyDomain.cpp:824
dudley::ElementFile::updateTagList
void updateTagList()
Definition: dudley/src/ElementFile.h:187
paso::TransportProblem::getTypeId
static int getTypeId(int solver, int preconditioner, int package, bool symmetry, const escript::JMPI &mpi_info)
Definition: Transport.h:94
dudley::DudleyDomain::getTransportTypeId
virtual int getTransportTypeId(int solver, int preconditioner, int package, bool symmetry) const
return the identifier of the transport problem type to be used when a particular solver,...
Definition: DudleyDomain.cpp:1792
dudley::ReducedElements
Definition: Dudley.h:67
dudley::Assemble_integrate
void Assemble_integrate(const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, std::vector< Scalar > &integrals)
integrates data on quadrature points
Definition: dudley/src/Assemble_integrate.cpp:41
dudley::NodeFile::getFirstNode
index_t getFirstNode() const
Definition: dudley/src/NodeFile.h:183
dudley::NodeFile::getGlobalNumNodes
dim_t getGlobalNumNodes() const
Definition: dudley/src/NodeFile.h:193
escript::SolverBuddy::isSymmetric
bool isSymmetric() const
Definition: SolverOptions.cpp:647
dudley::DudleyDomain::setToNormal
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: DudleyDomain.cpp:1267
dudley::DudleyDomain::showTagNames
virtual std::string showTagNames() const
Returns all tag names in a single string sperated by commas.
Definition: DudleyDomain.cpp:1976
dudley::brick_driver
Domain_ptr brick_driver(const bp::list &args)
Definition: dudley/src/DomainFactory.cpp:711
dudley::DudleyDomain::ownSample
virtual bool ownSample(int fsCode, index_t id) const
Definition: DudleyDomain.cpp:1432
escript::SolverBuddy::getPreconditioner
SolverOptions getPreconditioner() const
Definition: SolverOptions.cpp:352
escript::isDirectSolver
bool isDirectSolver(const SolverOptions &method)
returns true if the passed solver method refers to a direct solver type
Definition: SolverOptions.h:155
dudley::DudleyDomain::getApproximationOrder
virtual int getApproximationOrder(int functionSpaceCode) const
returns the approximation order used for a function space functionSpaceCode
Definition: DudleyDomain.cpp:2066
dudley::DudleyDomain::getMPISize
virtual int getMPISize() const
returns the number of processors used for this domain
Definition: DudleyDomain.h:260
dudley::DudleyDomain::probeInterpolationAcross
virtual bool probeInterpolationAcross(int functionSpaceType_source, const escript::AbstractDomain &targetDomain, int functionSpaceType_target) const
determines whether interpolation from source to target is possible.
Definition: DudleyDomain.cpp:1709
dudley::ElementFile::relabelNodes
void relabelNodes(const index_t *newNode, index_t offset)
Definition: dudley/src/ElementFile.cpp:250
dudley::ElementFile::numLocalDim
int numLocalDim
dimension of the element e.g. 2 for a line in 2D or 3D
Definition: dudley/src/ElementFile.h:162
dudley::FaceElements
Definition: Dudley.h:68
escript::RuntimeErrorTranslator
void RuntimeErrorTranslator(const EsysException &e)
Function which translates an EsysException into a python RuntimeError.
Definition: ExceptionTranslators.cpp:49
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:85
dudley::NodeFile::dofDistribution
escript::Distribution_ptr dofDistribution
MPI distribution of degrees of freedom.
Definition: dudley/src/NodeFile.h:166
dudley::DudleyDomain::readGmsh
static escript::Domain_ptr readGmsh(escript::JMPI mpiInfo, const std::string &filename, int numDim, bool optimize)
reads a gmsh mesh file.
Definition: dudley/src/Mesh_readGmsh.cpp:28
dudley::DudleyDomain::createColoring
void createColoring(const index_t *dofMap)
tries to reduce the number of colours for all element files
Definition: DudleyDomain.cpp:2146
dudley::DudleyDomain::setTagMap
virtual void setTagMap(const std::string &name, int tag)
sets a map from a clear tag name to a tag key
Definition: DudleyDomain.cpp:1955
dudley::DudleyDomain::getMPI
virtual escript::JMPI getMPI() const
returns a reference to the MPI information wrapper for this domain
Definition: DudleyDomain.h:254
dudley::DudleyDomain::setNewX
virtual void setNewX(const escript::Data &arg)
assigns new location to the domain
Definition: DudleyDomain.cpp:1419
dudley::DudleyDomain::relabelElementNodes
void relabelElementNodes(const index_t *newNode, index_t offset)
Definition: DudleyDomain.cpp:157
dudley::readMesh
Domain_ptr readMesh(const string &fileName, int, int, bool optimize)
reads a mesh from a fly file. For MPI parallel runs fans out the mesh to multiple processes.
Definition: dudley/src/DomainFactory.cpp:673
dudley::ReducedFaceElements
Definition: Dudley.h:69
dudley::DudleyDomain::getNumDataPointsGlobal
virtual dim_t getNumDataPointsGlobal() const
Return the number of data points summed across all MPI processes.
Definition: DudleyDomain.cpp:877
dudley::DudleyDomain::setFunctionSpaceTypeNames
void setFunctionSpaceTypeNames()
Build the table of function space type names.
Definition: DudleyDomain.cpp:791
dudley::DudleyDomain::setPoints
void setPoints(ElementFile *elements)
replaces the point element file by elements
Definition: DudleyDomain.cpp:118
dudley::DudleyDomain::addPDEToTransportProblem
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: DudleyDomain.cpp:1014
dudley::DudleyDomain::addPDEToLumpedSystem
virtual void addPDEToLumpedSystem(escript::Data &mat, const escript::Data &D, const escript::Data &d, const escript::Data &d_dirac, bool useHRZ) const
adds a PDE onto the lumped stiffness matrix matrix
Definition: DudleyDomain.cpp:977
escript::SO_DEFAULT
Definition: SolverOptions.h:107
dudley::DudleyDomain::getSolutionCode
virtual int getSolutionCode() const
Return a Solution code.
Definition: DudleyDomain.cpp:859
dudley::DudleyDomain::getSystemMatrixTypeId
virtual int getSystemMatrixTypeId(const boost::python::object &options) const
return the identifier of the matrix type to be used for the global stiffness matrix when a particular...
Definition: DudleyDomain.cpp:1732
escript::FunctionSpace::getTypeCode
int getTypeCode() const
Returns the function space type code.
Definition: FunctionSpace.cpp:94
dudley::DudleyDomain::getMPIComm
MPI_Comm getMPIComm() const
get the communicator for this domain. Returns an integer on non-MPI builds Routine must be implemente...
Definition: DudleyDomain.h:280
dudley::DudleyDomain::distributeByRankOfDOF
void distributeByRankOfDOF(const IndexVector &distribution)
Definition: Mesh_distributeByRankOfDOF.cpp:38
dudley::DudleyDomain
DudleyDomain implements the AbstractContinuousDomain interface for the Dudley library.
Definition: DudleyDomain.h:121
escript::function
FunctionSpace function(const AbstractDomain &domain)
Return a function FunctionSpace.
Definition: FunctionSpaceFactory.cpp:55
escript::Vector
Data Vector(double value, const FunctionSpace &what, bool expanded)
Return a Data object containing vector data-points. ie: rank 1 data-points.
Definition: DataFactory.cpp:138
dudley::NodeFile::Id
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: dudley/src/NodeFile.h:147
dudley::DudleyDomain::operator!=
virtual bool operator!=(const escript::AbstractDomain &other) const
Return true if given domains are not equal.
Definition: DudleyDomain.cpp:1727
dudley::DudleyDomain::optimizeElementOrdering
void optimizeElementOrdering()
redistributes elements to minimize communication during assemblage
Definition: DudleyDomain.cpp:2154
paso::M
static dim_t M
Definition: SparseMatrix_saveHB.cpp:50
dudley::DudleyDomain::getFunctionOnContactZeroCode
virtual int getFunctionOnContactZeroCode() const
Return a FunctionOnContactZero code.
Definition: DudleyDomain.cpp:839
dudley::NodeFile::Tag
int * Tag
Tag[i] is the tag of node i.
Definition: dudley/src/NodeFile.h:149
dudley::DudleyDomain::getDescription
virtual std::string getDescription() const
Return a description for this domain.
Definition: DudleyDomain.cpp:768
escript::functionOnBoundary
FunctionSpace functionOnBoundary(const AbstractDomain &domain)
Return a function on boundary FunctionSpace.
Definition: FunctionSpaceFactory.cpp:67
dudley::DudleyDomain::supportsContactElements
virtual bool supportsContactElements() const
Definition: DudleyDomain.h:713
dudley::DudleyDomain::prepare
void prepare(bool optimize)
prepares the mesh for further use
Definition: DudleyDomain.cpp:2100
MPI_Comm
int MPI_Comm
Definition: EsysMPI.h:41
dudley::ElementFile::Color
index_t * Color
Definition: dudley/src/ElementFile.h:150
dudley::DudleyDomain::setFaceElements
void setFaceElements(ElementFile *elements)
replaces the face element file by elements
Definition: DudleyDomain.cpp:112
dudley::SMT_UNROLL
Definition: DudleyDomain.h:113
dudley::DudleyDomain::isValidTagName
virtual bool isValidTagName(const std::string &name) const
Returns true if name is a defined tag name.
Definition: DudleyDomain.cpp:1971
escript::AbstractDomain
Base class for all escript domains.
Definition: AbstractDomain.h:62
dudley::DudleyDomain::getDim
virtual int getDim() const
Returns the spatial dimension of the domain.
Definition: DudleyDomain.h:429
dudley::Assemble_PDE
void Assemble_PDE(const NodeFile *nodes, const ElementFile *elements, escript::ASM_ptr S, escript::Data &F, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: dudley/src/Assemble_PDE.cpp:122
paso::SystemMatrix::getSystemMatrixTypeId
static int getSystemMatrixTypeId(int solver, int preconditioner, int package, bool symmetry, const escript::JMPI &mpi_info)
Definition: SystemMatrix.cpp:545
dudley::DudleyDomain::getReducedFunctionOnBoundaryCode
virtual int getReducedFunctionOnBoundaryCode() const
Return a function on boundary with reduced integration order FunctionSpace code.
Definition: DudleyDomain.cpp:834
dudley::DudleyDomain::setToGradient
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: DudleyDomain.cpp:1344
escript::IndexList
Definition: escriptcore/src/IndexList.h:28
dudley::DudleyDomain::isValidFunctionSpaceType
virtual bool isValidFunctionSpaceType(int functionSpaceType) const
Returns true if the given integer is a valid function space type for this domain.
Definition: DudleyDomain.cpp:784
dudley::NodeFile::borrowGlobalNodesIndex
const index_t * borrowGlobalNodesIndex() const
Definition: dudley/src/NodeFile.h:198
escript::Data::getExpandedVectorReference
DataTypes::RealVectorType & getExpandedVectorReference(DataTypes::real_t dummy=0)
Ensures that the Data is expanded and returns its underlying vector Does not check for exclusive writ...
Definition: Data.cpp:5845
dudley::DudleyDomain::commonFunctionSpace
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: DudleyDomain.cpp:1556
escript::SO_PACKAGE_TRILINOS
Definition: SolverOptions.h:116
escript::ASM_ptr
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:45
escript::DataTypes::cplx_t
std::complex< real_t > cplx_t
complex data type
Definition: DataTypes.h:79
dudley::ElementFile::setTags
void setTags(int newTag, const escript::Data &mask)
sets element tags to newTag where mask > 0
Definition: dudley/src/ElementFile.cpp:205
escript::Data::expand
void expand()
Whatever the current Data type make this into a DataExpanded.
Definition: Data.cpp:1184
dudley::NodeFile::degreesOfFreedomId
index_t * degreesOfFreedomId
Definition: dudley/src/NodeFile.h:172
dudley::DudleyDomain::setTags
virtual void setTags(int functionSpaceType, 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: DudleyDomain.cpp:1927
dudley::DudleyDomain::getReducedFunctionOnContactOneCode
virtual int getReducedFunctionOnContactOneCode() const
Return a FunctionOnContactOne code with reduced integration order.
Definition: DudleyDomain.cpp:854
dudley::NodeFile::getNumDegreesOfFreedom
dim_t getNumDegreesOfFreedom() const
returns the number of degrees of freedom (on this rank)
Definition: dudley/src/NodeFile.h:208
dudley::NodeFile::Coordinates
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: dudley/src/NodeFile.h:158
dudley::ElementFile::tagsInUse
std::vector< int > tagsInUse
array of tags which are actually used
Definition: dudley/src/ElementFile.h:139
escript::ValueError
An exception class that signals an invalid argument value.
Definition: EsysException.h:101
dudley::ElementFile::etype
ElementTypeId etype
element type ID
Definition: dudley/src/ElementFile.h:165
dudley::DudleyDomain::preferredInterpolationOnDomain
virtual signed char preferredInterpolationOnDomain(int functionSpaceType_source, int functionSpaceType_target) const
Preferred direction of interpolation. If you really need to test for a particular direction,...
Definition: DudleyDomain.cpp:1698
dudley::DudleyDomain::m_faceElements
ElementFile * m_faceElements
the table of face elements
Definition: DudleyDomain.h:780
escript::AbstractContinuousDomain
AbstractContinuousDomain, base class for continuous domains.
Definition: AbstractContinuousDomain.h:58
dudley::DudleyDomain::getX
virtual escript::Data getX() const
returns locations in the FEM nodes
Definition: DudleyDomain.cpp:1804
dudley::ElementFile::numNodes
int numNodes
number of nodes per element
Definition: dudley/src/ElementFile.h:142
dudley::NodeFile::globalNodesIndex
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: dudley/src/NodeFile.h:160
dudley::DudleyDomain::~DudleyDomain
~DudleyDomain()
Destructor for DudleyDomain.
Definition: DudleyDomain.cpp:91
escript::DataTypes::IndexVector
std::vector< index_t > IndexVector
Definition: DataTypes.h:88
dudley::DudleyDomain::getNormal
virtual escript::Data getNormal() const
returns locations in the FEM nodes as a numpy ndarray
Definition: DudleyDomain.cpp:1853
dudley::DudleyDomain::borrowSampleReferenceIDs
const index_t * borrowSampleReferenceIDs(int functionSpaceType) const
Return the reference number of the given sample number.
Definition: DudleyDomain.cpp:1863
BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(dudleycpp)
Definition: dudleycpp.cpp:31