escript  Revision_Unversioneddirectory
TestDomain.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 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 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 #ifndef __ESCRIPT_TESTDOMAIN_H__
18 #define __ESCRIPT_TESTDOMAIN_H__
19 
20 #include "system_dep.h"
21 
22 #include "NullDomain.h"
23 
24 namespace escript {
25 
42 {
43 public:
44  TestDomain(int pointspersample, int numsamples, int dpsize=1);
45 
46  virtual ~TestDomain();
47 
48  virtual int getMPISize() const;
49  virtual int getMPIRank() const;
50  virtual void MPIBarrier() const;
51  virtual bool onMasterProcessor() const;
52  virtual MPI_Comm getMPIComm() const;
53 
54  virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
55 
56  virtual std::string getDescription() const;
57 
58  virtual std::string functionSpaceTypeAsString(int functionSpaceType) const;
59 
60  virtual void interpolateOnDomain(escript::Data& target,const escript::Data& source) const;
61 
62  virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
63 
64  bool commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
65 
66  virtual escript::Data getX() const;
67 
68  virtual void interpolateAcross(escript::Data& target, const escript::Data& source) const;
69 
70  virtual bool probeInterpolationAcross(int functionSpaceType_source,const AbstractDomain& targetDomain, int functionSpaceType_target) const;
71 
72  virtual int getDefaultCode() const;
73  virtual int getContinuousFunctionCode() const;
74  virtual int getFunctionCode() const;
75  virtual int getFunctionOnBoundaryCode() const;
76  virtual int getFunctionOnContactZeroCode() const;
77  virtual int getFunctionOnContactOneCode() const;
78  virtual int getSolutionCode() const;
79  virtual int getReducedSolutionCode() const;
80  virtual int getDiracDeltaFunctionsCode() const;
81 
82  virtual std::pair<int,dim_t> getDataShape(int functionSpaceCode) const;
83 
84  virtual int getTagFromSampleNo(int functionSpaceType, index_t sampleNo) const;
85 
86  virtual const dim_t* borrowSampleReferenceIDs(int functionSpaceType) const;
87 
88  virtual int getDim() const;
89 
90  virtual bool operator==(const AbstractDomain& other) const;
91 
92  virtual bool operator!=(const AbstractDomain& other) const;
93 
94  virtual bool canTag(int functionSpaceCode) const;
95 
96  virtual int getNumberOfTagsInUse(int functionSpaceCode) const;
97 
98  virtual const int* borrowListOfTagsInUse(int functionSpaceCode) const;
99 
100  virtual escript::Data randomFill(const DataTypes::ShapeType& shape,
101  const FunctionSpace& what, long seed,
102  const boost::python::tuple& filter) const;
103 
104 private:
105  dim_t m_samples; // number of samples
106  int m_dpps; // data points per sample
107  int m_dpsize; // how big are the datapoints?
108  dim_t* m_samplerefids; // sample reference ids
109 };
110 
112 FunctionSpace getTestDomainFunctionSpace(int dpps, dim_t samples, int dpsize);
113 
114 } // end of namespace
115 
116 #endif // __ESCRIPT_TESTDOMAIN_H__
117 
Definition: FunctionSpace.h:34
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:36
NullDomain provides a null value for domain. Needed for the construction of a default FunctionSpace...
Definition: NullDomain.h:40
int m_dpsize
Definition: TestDomain.h:107
Definition: AbstractContinuousDomain.cpp:24
FunctionSpace getTestDomainFunctionSpace(int dpps, dim_t samples, int dpsize)
Definition: TestDomain.cpp:267
dim_t * m_samplerefids
Definition: TestDomain.h:108
(Testing use only) Provides a domain to wrap a collection of values.
Definition: TestDomain.h:41
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
int MPI_Comm
Definition: Esys_MPI.h:38
int m_dpps
Definition: TestDomain.h:106
Data represents a collection of datapoints.
Definition: Data.h:68
dim_t m_samples
Definition: TestDomain.h:105
int index_t
Definition: types.h:24
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:54
index_t dim_t
Definition: types.h:27
Base class for all escript domains.
Definition: AbstractDomain.h:45