/[escript]/trunk/ripley/src/DefaultAssembler3D.h
ViewVC logotype

Contents of /trunk/ripley/src/DefaultAssembler3D.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4657 - (show annotations)
Thu Feb 6 06:12:20 2014 UTC (5 years, 7 months ago) by jfenwick
File MIME type: text/plain
File size: 5434 byte(s)
I changed some files.
Updated copyright notices, added GeoComp.



1
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
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 __DEFAULT_ASSEMBLER3D_H__
17 #define __DEFAULT_ASSEMBLER3D_H__
18
19 #include <map>
20 #include <escript/Data.h>
21 #include <ripley/Ripley.h>
22 #include <ripley/RipleyException.h>
23 #include <ripley/AbstractAssembler.h>
24 #include <ripley/Brick.h>
25
26 namespace ripley {
27
28
29 class DefaultAssembler3D : public AbstractAssembler {
30 public:
31 DefaultAssembler3D(Brick *dom, double *m_dx, dim_t *m_NX, dim_t *m_NE,
32 dim_t *m_NN) : AbstractAssembler() {
33 domain = dom;
34 this->m_dx = m_dx;
35 this->m_NX = m_NX;
36 this->m_NE = m_NE;
37 this->m_NN = m_NN;
38 }
39 ~DefaultAssembler3D(){};
40 /* The default RipleyDomain assemblers, with original signatures */
41
42 /// assembles a single PDE into the system matrix 'mat' and the right hand
43 /// side 'rhs'
44 virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,
45 const escript::Data& A, const escript::Data& B,
46 const escript::Data& C, const escript::Data& D,
47 const escript::Data& X, const escript::Data& Y) const;
48
49 /// assembles boundary conditions of a single PDE into the system matrix
50 /// 'mat' and the right hand side 'rhs'
51 virtual void assemblePDEBoundarySingle(Paso_SystemMatrix* mat,
52 escript::Data& rhs, const escript::Data& d,
53 const escript::Data& y) const;
54
55 /// assembles a single PDE with reduced order into the system matrix 'mat'
56 /// and the right hand side 'rhs'
57 virtual void assemblePDESingleReduced(Paso_SystemMatrix* mat,
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
62 /// assembles boundary conditions of a single PDE with reduced order into
63 /// the system matrix 'mat' and the right hand side 'rhs'
64 virtual void assemblePDEBoundarySingleReduced(Paso_SystemMatrix* mat,
65 escript::Data& rhs, const escript::Data& d,
66 const escript::Data& y) const;
67
68 /// assembles a system of PDEs into the system matrix 'mat' and the right
69 /// hand side 'rhs'
70 virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,
71 const escript::Data& A, const escript::Data& B,
72 const escript::Data& C, const escript::Data& D,
73 const escript::Data& X, const escript::Data& Y) const;
74
75 /// assembles boundary conditions of a system of PDEs into the system
76 /// matrix 'mat' and the right hand side 'rhs'
77 virtual void assemblePDEBoundarySystem(Paso_SystemMatrix* mat,
78 escript::Data& rhs, const escript::Data& d,
79 const escript::Data& y) const;
80
81 /// assembles a system of PDEs with reduced order into the system matrix
82 /// 'mat' and the right hand side 'rhs'
83 virtual void assemblePDESystemReduced(Paso_SystemMatrix* mat,
84 escript::Data& rhs, const escript::Data& A, const escript::Data& B,
85 const escript::Data& C, const escript::Data& D,
86 const escript::Data& X, const escript::Data& Y) const;
87
88 /// assembles boundary conditions of a system of PDEs with reduced order
89 /// into the system matrix 'mat' and the right hand side 'rhs'
90 virtual void assemblePDEBoundarySystemReduced(Paso_SystemMatrix* mat,
91 escript::Data& rhs, const escript::Data& d,
92 const escript::Data& y) const;
93
94 /* The new interface for assemblers */
95 virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,
96 std::map<std::string, escript::Data> coefs) const;
97 virtual void assemblePDEBoundarySingle(Paso_SystemMatrix* mat,
98 escript::Data& rhs,
99 std::map<std::string, escript::Data> coefs) const;
100 virtual void assemblePDESingleReduced(Paso_SystemMatrix* mat,
101 escript::Data& rhs,
102 std::map<std::string, escript::Data> coefs) const;
103 virtual void assemblePDEBoundarySingleReduced(Paso_SystemMatrix* mat,
104 escript::Data& rhs,
105 std::map<std::string, escript::Data> coefs) const;
106 virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,
107 std::map<std::string, escript::Data> coefs) const;
108 virtual void assemblePDEBoundarySystem(Paso_SystemMatrix* mat,
109 escript::Data& rhs,
110 std::map<std::string, escript::Data> coefs) const;
111 virtual void assemblePDESystemReduced(Paso_SystemMatrix* mat,
112 escript::Data& rhs,
113 std::map<std::string, escript::Data> coefs) const;
114 virtual void assemblePDEBoundarySystemReduced(Paso_SystemMatrix* mat,
115 escript::Data& rhs,
116 std::map<std::string, escript::Data> coefs) const;
117 protected:
118 Brick *domain;
119 double *m_dx;
120 dim_t *m_NX;
121 dim_t *m_NE;
122 dim_t *m_NN;
123 };
124
125 }
126
127
128 #endif

  ViewVC Help
Powered by ViewVC 1.1.26