/[escript]/trunk/escript/src/AbstractContinuousDomain.h
ViewVC logotype

Contents of /trunk/escript/src/AbstractContinuousDomain.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 155 - (show annotations)
Wed Nov 9 02:02:19 2005 UTC (13 years, 10 months ago) by jgs
Original Path: trunk/escript/src/Data/AbstractContinuousDomain.h
File MIME type: text/plain
File size: 4200 byte(s)
move all directories from trunk/esys2 into trunk and remove esys2

1 //$Id$
2 /*
3 ******************************************************************************
4 * *
5 * COPYRIGHT ACcESS 2004 - All Rights Reserved *
6 * *
7 * This software is the property of ACcESS. No part of this code *
8 * may be copied in any form or by any means without the expressed written *
9 * consent of ACcESS. Copying, use or modification of this software *
10 * by any unauthorised person is illegal unless that person has a software *
11 * license agreement with ACcESS. *
12 * *
13 ******************************************************************************
14 */
15
16 #if !defined escript_AbstractContinuousDomain_20040528_H
17 #define escript_AbstractContinuousDomain_20040528_H
18
19 #include "escript/Data/AbstractDomain.h"
20 #include "escript/Data/AbstractSystemMatrix.h"
21 #include "escript/Data/Data.h"
22
23 #include <boost/python/tuple.hpp>
24 #include <boost/python/object.hpp>
25
26 #include <string>
27 #include <vector>
28
29 namespace escript {
30
31 //
32 // Forward declaration
33 class FunctionSpace;
34
35 /**
36 \brief
37 AbstractContinuousDomain, base class for continuous domains.
38
39 Description:
40 AbstractContinuousDomain, base class for continuous domains.
41
42 NOTE: Most of the virtual functions would be pure virtual except
43 boost.python requires a non abstract base class.
44 */
45 class AbstractContinuousDomain : public AbstractDomain {
46
47 public:
48
49 /**
50 \brief
51 Default constructor for AbstractContinuousDomain
52
53 Description:
54 Default constructor for AbstractContinuousDomain
55
56 Preconditions:
57 Describe any preconditions
58
59 Throws:
60 Describe any exceptions thrown
61 */
62 AbstractContinuousDomain();
63
64 /**
65 \brief
66 Destructor for AbstractContinuousDomain
67
68 Description:
69 Destructor for AbstractContinuousDomain
70
71 Preconditions:
72 Describe any preconditions
73
74 Throws:
75 Describe any exceptions thrown
76 */
77 virtual ~AbstractContinuousDomain();
78
79 /**
80 \brief
81 Returns true if the given integer is a valid function space type
82 for this domain.
83 */
84 virtual bool isValidFunctionSpaceType(int functionSpaceType) const;
85
86 /**
87 \brief
88 Return a description for this domain
89 */
90 virtual std::string getDescription() const;
91
92 /**
93 \brief
94 Return a continuous FunctionSpace code
95 */
96 virtual int getContinuousFunctionCode() const;
97
98 /**
99 \brief
100 Return a functon FunctionSpace code
101 */
102 virtual int getFunctionCode() const;
103
104 /**
105 \brief
106 Return a function on boundary FunctionSpace code
107 */
108 virtual int getFunctionOnBoundaryCode() const;
109
110 /**
111 \brief
112 Return a FunctionOnContactZero code
113 */
114 virtual int getFunctionOnContactZeroCode() const;
115
116 /**
117 \brief
118 Return a FunctionOnContactOne code
119 */
120 virtual int getFunctionOnContactOneCode() const;
121
122 /**
123 \brief
124 Return a Solution code
125 */
126 virtual int getSolutionCode() const;
127
128 /**
129 \brief
130 Return a ReducedSolution code
131 */
132 virtual int getReducedSolutionCode() const;
133
134 /**
135 \brief
136 Return a DiracDeltaFunction code
137 */
138 virtual int getDiracDeltaFunctionCode() const;
139
140 /**
141 \brief
142 return the identifier of the matrix type to be used for the global
143 stiffness matrix when a particular solver package
144 and symmetric matrix is used.
145 */
146 virtual int getSystemMatrixTypeId(const int solver, const int package, const bool symmetry) const;
147
148 /**
149 \brief
150 copies the integrals of the function defined by arg into integrals.
151 arg has to be defined on this.
152 has to be implemented by the Domain Adapter.
153 */
154 virtual void setToIntegrals(std::vector<double>& integrals,const escript::Data& arg) const;
155
156 /**
157 \brief
158 Return the domain as const AbstractContinuousDomain&
159 */
160 static const AbstractContinuousDomain& asAbstractContinuousDomain(const AbstractDomain& domain);
161
162 protected:
163
164 private:
165
166 };
167
168 } // end of namespace
169
170 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26