escript  Revision_
ripley/src/DefaultAssembler3D.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 #ifndef __RIPLEY_DEFAULTASSEMBLER3D_H__
17 #define __RIPLEY_DEFAULTASSEMBLER3D_H__
18 
19 #include <ripley/Brick.h>
20 
21 namespace ripley {
22 
23 template<class Scalar = double>
25 {
26 public:
28  const dim_t* NE, const dim_t* NN)
30  m_dx(dx),
31  m_NE(NE),
32  m_NN(NN)
33  {
34  domain = REFCOUNTNS::static_pointer_cast<const Brick>(dom);
35  }
36 
38 
39  /* The default RipleyDomain assemblers, with original signatures */
40 
44  escript::Data& rhs, const escript::Data& A,
45  const escript::Data& B, const escript::Data& C,
46  const escript::Data& D, const escript::Data& X,
47  const escript::Data& Y) const;
48 
52  escript::Data& rhs, const escript::Data& d,
53  const escript::Data& y) const;
54 
58  escript::Data& rhs, const escript::Data& A, const escript::Data& B,
59  const escript::Data& C, const escript::Data& D,
60  const escript::Data& X, const escript::Data& Y) const;
61 
66  escript::Data& rhs, const escript::Data& d,
67  const escript::Data& y) const;
68 
72  escript::Data& rhs, const escript::Data& A,
73  const escript::Data& B, const escript::Data& C,
74  const escript::Data& D, const escript::Data& X,
75  const escript::Data& Y) const;
76 
80  escript::Data& rhs, const escript::Data& d,
81  const escript::Data& y) const;
82 
86  escript::Data& rhs, const escript::Data& A, const escript::Data& B,
87  const escript::Data& C, const escript::Data& D,
88  const escript::Data& X, const escript::Data& Y) const;
89 
94  escript::Data& rhs, const escript::Data& d,
95  const escript::Data& y) const;
96 
97  /* The new interface for assemblers */
98 
100  escript::Data& rhs, const DataMap& coefs) const;
102  escript::Data& rhs, const DataMap& coefs) const;
104  escript::Data& rhs, const DataMap& coefs) const;
107  escript::Data& rhs, const DataMap& coefs) const;
109  escript::Data& rhs, const DataMap& coefs) const;
111  escript::Data& rhs, const DataMap& coefs) const;
113  escript::Data& rhs, const DataMap& coefs) const;
116  escript::Data& rhs, const DataMap& coefs) const;
117 
118  void collateFunctionSpaceTypes(std::vector<int>& fsTypes,
119  const DataMap& coefs) const;
120 
121 protected:
122  POINTER_WRAPPER_CLASS(const Brick) domain;
123  const double *m_dx;
124  const dim_t *m_NE;
125  const dim_t *m_NN;
126 };
127 
128 } // namespace ripley
129 
130 #endif // __RIPLEY_DEFAULTASSEMBLER3D_H__
131 
const dim_t * m_NN
Definition: ripley/src/DefaultAssembler3D.h:125
~DefaultAssembler3D()
Definition: ripley/src/DefaultAssembler3D.h:37
Definition: ripley/src/AbstractAssembler.h:32
virtual void assemblePDEBoundarySingleReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const
Definition: ripley/src/DefaultAssembler3D.cpp:3273
virtual void assemblePDEBoundarySingle(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const
Definition: ripley/src/DefaultAssembler3D.cpp:2232
const double * m_dx
Definition: ripley/src/DefaultAssembler3D.h:123
virtual void assemblePDESingleReduced(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
Definition: ripley/src/DefaultAssembler3D.cpp:2890
std::map< std::string, escript::Data > DataMap
Definition: ripley/src/domainhelpers.h:24
Data represents a collection of datapoints.
Definition: Data.h:63
virtual void assemblePDEBoundarySystem(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const
Definition: ripley/src/DefaultAssembler3D.cpp:5752
virtual void assemblePDEBoundarySystemReduced(escript::AbstractSystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const
Definition: ripley/src/DefaultAssembler3D.cpp:6877
void collateFunctionSpaceTypes(std::vector< int > &fsTypes, const DataMap &coefs) const
Definition: ripley/src/DefaultAssembler3D.cpp:30
virtual void assemblePDESingle(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
Definition: ripley/src/DefaultAssembler3D.cpp:152
Brick is the 3-dimensional implementation of a RipleyDomain.
Definition: ripley/src/Brick.h:28
Definition: ripley/src/DefaultAssembler3D.h:24
virtual void assemblePDESystem(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
Definition: ripley/src/DefaultAssembler3D.cpp:3630
Base class for escript system matrices.
Definition: AbstractSystemMatrix.h:42
Definition: ripley/src/AbstractAssembler.h:25
const dim_t * m_NE
Definition: ripley/src/DefaultAssembler3D.h:124
POINTER_WRAPPER_CLASS(const Brick) domain
boost::shared_ptr< const AbstractDomain > const_Domain_ptr
Definition: AbstractDomain.h:39
index_t dim_t
Definition: DataTypes.h:64
virtual void assemblePDESystemReduced(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
Definition: ripley/src/DefaultAssembler3D.cpp:6465