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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5114 - (show annotations)
Thu Aug 14 05:15:31 2014 UTC (4 years, 9 months ago) by caltinay
File MIME type: text/plain
File size: 3260 byte(s)
Preliminary changes to make ripley ready for other System Matrixes.

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 __RIPLEY_WAVEASSEMBLER2D_H__
17 #define __RIPLEY_WAVEASSEMBLER2D_H__
18
19 #include <ripley/Rectangle.h>
20
21 namespace ripley {
22
23
24 class WaveAssembler2D : public AbstractAssembler
25 {
26 public:
27 WaveAssembler2D(escript::const_Domain_ptr dom, const double *dx,
28 const dim_t *NX, const dim_t *NE, const dim_t *NN,
29 const DataMap& c);
30
31 ~WaveAssembler2D() {}
32
33 /* The only assembly function we care about right now*/
34 void assemblePDESystem(escript::AbstractSystemMatrix* mat,
35 escript::Data& rhs, const DataMap& coefs) const;
36
37 void assemblePDESingle(escript::AbstractSystemMatrix* mat,
38 escript::Data& rhs, const DataMap& coefs) const {
39 throw RipleyException("This assembly not supported by this assembler");
40 }
41 void assemblePDEBoundarySingle(escript::AbstractSystemMatrix* mat,
42 escript::Data& rhs, const DataMap& coefs) const {
43 throw RipleyException("This assembly not supported by this assembler");
44 }
45 void assemblePDESingleReduced(escript::AbstractSystemMatrix* mat,
46 escript::Data& rhs, const DataMap& coefs) const {
47 throw RipleyException("This assembly not supported by this assembler");
48 }
49 void assemblePDEBoundarySingleReduced(escript::AbstractSystemMatrix* mat,
50 escript::Data& rhs, const DataMap& coefs) const {
51 throw RipleyException("This assembly not supported by this assembler");
52 }
53 void assemblePDEBoundarySystem(escript::AbstractSystemMatrix* mat,
54 escript::Data& rhs, const DataMap& coefs) const {
55 throw RipleyException("This assembly not supported by this assembler");
56 }
57 void assemblePDESystemReduced(escript::AbstractSystemMatrix* mat,
58 escript::Data& rhs, const DataMap& coefs) const {
59 throw RipleyException("This assembly not supported by this assembler");
60 }
61 void assemblePDEBoundarySystemReduced(escript::AbstractSystemMatrix* mat,
62 escript::Data& rhs, const DataMap& coefs) const {
63 throw RipleyException("This assembly not supported by this assembler");
64 }
65
66 void collateFunctionSpaceTypes(std::vector<int>& fsTypes,
67 const DataMap& coefs) const;
68
69 private:
70 DataMap c;
71 boost::shared_ptr<const Rectangle> domain;
72 const double *m_dx;
73 const dim_t *m_NX;
74 const dim_t *m_NE;
75 const dim_t *m_NN;
76 escript::Data c11, c12, c13, c23, c33, c44, c66;
77 bool isVTI, isHTI;
78 };
79
80 } // namespace ripley
81
82 #endif // __RIPLEY_WAVEASSEMBLER2D_H__
83

  ViewVC Help
Powered by ViewVC 1.1.26