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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 615 - (hide annotations)
Wed Mar 22 02:12:00 2006 UTC (13 years, 7 months ago) by elspeth
File MIME type: text/plain
File size: 3709 byte(s)
More copyright information.

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26