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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 480 - (show annotations)
Wed Feb 1 05:15:12 2006 UTC (13 years, 8 months ago) by jgs
File MIME type: text/plain
File size: 4030 byte(s)
rationalise #includes and forward declarations

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26