17 #ifndef __SPECKLEY_CROSSDOMAINCOUPLER_H__ 18 #define __SPECKLEY_CROSSDOMAINCOUPLER_H__ 20 #include <speckley/Rectangle.h> 21 #include <speckley/Brick.h> 22 #include <ripley/Rectangle.h> 23 #include <ripley/Brick.h> 58 int oqx,
int oqy,
int oqz,
double *out,
const double *factor_x,
59 const double *factor_y,
const double *factor_z,
63 double *bottom,
double *top,
double *brecv,
double *trecv,
64 int bSize,
int tSize,
int distance)
const;
116 #endif // __SPECKLEY_CROSSDOMAINCOUPLER_H__ Definition: AbstractAssembler.cpp:22
Definition: CrossDomainCoupler.h:35
int order
Definition: CrossDomainCoupler.h:85
SpeckleyDomain extends the AbstractContinuousDomain interface for the Speckley library and is the bas...
Definition: speckley/src/SpeckleyDomain.h:84
void calculateOrder3(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:273
bool probeInterpolationAcross(int fsType_source, const escript::AbstractDomain &domain, int fsType_target, int dim)
Definition: CrossDomainCoupler.cpp:36
void shareBrickZFaces(struct Ripley &r, int hasLower, int hasUpper, int lower, int upper, escript::Data &target) const
Definition: CrossDomainCoupler.cpp:757
void shareWithNeighbours(bool lowerFirst, int hasLower, int hasUpper, double *bottom, double *top, double *brecv, double *trecv, int bSize, int tSize, int distance) const
Definition: CrossDomainCoupler.cpp:964
void calculateOrder10(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:371
void shareBrickYFaces(struct Ripley &r, int hasLower, int hasUpper, int lower, int upper, escript::Data &target) const
Definition: CrossDomainCoupler.cpp:673
double s_dx[3]
Definition: CrossDomainCoupler.h:82
dim_t mins[3]
Definition: CrossDomainCoupler.h:39
dim_t s_NE[3]
Definition: CrossDomainCoupler.h:81
void calculate(struct Ripley &r, dim_t ex, dim_t ey, dim_t ez, int oqx, int oqy, int oqz, double *out, const double *factor_x, const double *factor_y, const double *factor_z, const escript::Data &source) const
Definition: CrossDomainCoupler.cpp:413
void calculateOrder4(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:284
int numQuads
Definition: CrossDomainCoupler.h:86
Definition: CrossDomainCoupler.h:27
void calculateOrder8(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:338
void interpolateAcross3D(escript::Data &target, const escript::Data &source, const Brick *speck, const double s_dx[3], int rank, MPI_Comm comm)
interpolates data given on source onto target where source and target are given on different domains ...
void calculateOrder6(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:309
void shareRectangleYEdges(struct Ripley &r, int hasLower, int hasUpper, int lower, int upper, escript::Data &target) const
Definition: CrossDomainCoupler.cpp:904
double speckley_origin[3]
Definition: CrossDomainCoupler.h:84
dim_t NE[3]
Definition: CrossDomainCoupler.h:38
const ripley::RipleyDomain * domain
Definition: CrossDomainCoupler.h:36
RipleyCoupler(const SpeckleyDomain *speck, const double s_dx[2], int rank)
Definition: CrossDomainCoupler.cpp:50
dim_t maxs[3]
Definition: CrossDomainCoupler.h:40
bool validInterpolation(escript::Data &target, const escript::Data &source, const SpeckleyDomain *speck, const double *s_dx, const ripley::RipleyDomain *other) const
Definition: CrossDomainCoupler.cpp:79
int MPI_Comm
Definition: Esys_MPI.h:38
bool hasLower[3]
Definition: CrossDomainCoupler.h:89
void interpolate(escript::Data &target, const escript::Data &source) const
Definition: CrossDomainCoupler.cpp:457
int numComp
Definition: CrossDomainCoupler.h:93
Data represents a collection of datapoints.
Definition: Data.h:68
void calculateOrder2(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:263
void shareRectangleXEdges(struct Ripley &r, int hasLower, int hasUpper, int lower, int upper, escript::Data &target) const
Definition: CrossDomainCoupler.cpp:826
RipleyDomain extends the AbstractContinuousDomain interface for the Ripley library and is the base cl...
Definition: ripley/src/RipleyDomain.h:85
void generateLocations(struct Ripley &r, double **positions) const
Definition: CrossDomainCoupler.cpp:137
double dx[3]
Definition: CrossDomainCoupler.h:37
void getEdgeSpacing(struct Ripley r, int *lower, int *upper) const
Definition: CrossDomainCoupler.cpp:389
bool hasUpper[3]
Definition: CrossDomainCoupler.h:90
void calculateOrder5(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:296
void calculateOrder9(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:354
const SpeckleyDomain * speck
Definition: CrossDomainCoupler.h:80
void calculateOrder7(int dim, double loc, double *results) const
Definition: CrossDomainCoupler.cpp:323
index_t dim_t
Definition: types.h:27
Brick is the 3-dimensional implementation of a SpeckleyDomain.
Definition: speckley/src/Brick.h:32
Base class for all escript domains.
Definition: AbstractDomain.h:45
int s_NX[3]
Definition: CrossDomainCoupler.h:83
void shareBrickXFaces(struct Ripley &r, int hasLower, int hasUpper, int lower, int upper, escript::Data &target) const
Definition: CrossDomainCoupler.cpp:556