00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef __DC1DL2_H
00036 #define __DC1DL2_H
00037
00038
00039 #include "Equa_Therm.h"
00040 #include "Line2.h"
00041
00042 namespace OFELI {
00043
00059 class DC1DL2 : public Equa_Therm<double,2,2,1,1>
00060 {
00061
00062 public :
00063
00066 DC1DL2();
00067
00069 DC1DL2(const Element *el);
00070
00076 DC1DL2(const Element *el, const Vect<double> &u, double time=0.);
00077
00090 DC1DL2(const Element *el, const Vect<double> &u, double time, double deltat, int scheme);
00091
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00094 DC1DL2(Mesh &mesh, Vect<double> &b, double &t, double &ts) : Equation<double,2,2,1,1>(mesh,b,t,ts) { }
00095 #endif
00096
00098 ~DC1DL2();
00099
00101 int runOneStep();
00102
00104 int run();
00105
00107 void build();
00108
00111 void LCapacityToLHS(double coef=1);
00112
00115 void LCapacityToRHS(double coef=1);
00116
00119 void LCapacity(double coef) { LCapacityToLHS(coef); LCapacityToRHS(coef); }
00120
00123 void CapacityToLHS(double coef=1);
00124
00127 void CapacityToRHS(double coef=1);
00128
00131 void Capacity(double coef=1);
00132
00135 void Diffusion(double coef=1);
00136
00141 void DiffusionToRHS(double coef=1);
00142
00147 void Convection(const double &v, double coef=1);
00148
00154 void Convection(const Vect<double> &v, double coef=1);
00155
00160 void Convection(double coef=1);
00161
00167 void ConvectionToRHS(const double &v, double coef=1);
00168
00173 void ConvectionToRHS(double coef=1);
00174
00177 void setVelocity(NodeVect<double> &v);
00178
00184 void BodyRHS(UserData<double> &ud, double coef=1);
00185
00191 void BodyRHS(const Vect<double> &b, int opt=LOCAL_ARRAY);
00192
00198 void BoundaryRHS(UserData<double> &ud, double coef=1);
00199
00202 void BoundaryRHS(double flux);
00203
00209 void BoundaryRHS(const Vect<double> &b, int opt=LOCAL_ARRAY);
00210
00212 double Flux() const;
00213
00225 void setInput(int opt, Vect<double> &u);
00226
00227 protected :
00228 void ElementSet(const Element *el);
00229
00230 private :
00231 Line2 *_ln;
00232 Vect<double> _v;
00233 };
00234
00235 }
00236
00237 #endif