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
00036 #ifndef __DC3DAT3_H
00037 #define __DC3DAT3_H
00038
00039
00040 #include "Equa_Therm.h"
00041 #include "Triang3.h"
00042 #include "Line2.h"
00043 #include "LocalMatrix.h"
00044
00045 namespace OFELI {
00046
00063 class DC3DAT3 : virtual public Equa_Therm<double,3,3,2,2>
00064 {
00065
00066 public :
00067
00070 DC3DAT3();
00071
00074 DC3DAT3(Element *el);
00075
00078 DC3DAT3(Side *sd);
00079
00085 DC3DAT3(const Element *el, const Vect<double> &u, double time=0.);
00086
00098 DC3DAT3(const Element *el, const Vect<double> &u, double time, double deltat, int scheme);
00099
00105 DC3DAT3(const Side *sd, const Vect<double> &u, double time=0.);
00106
00118 DC3DAT3(const Side *sd, const Vect<double> &u, double time, double deltat, int scheme);
00119
00121 ~DC3DAT3();
00122
00125 void LCapacityToLHS(double coef=1);
00126
00129 void LCapacityToRHS(double coef=1);
00130
00133 void LCapacity(double coef=1) { LCapacityToLHS(coef); LCapacityToRHS(coef); }
00134
00137 void CapacityToLHS(double coef=1);
00138
00141 void CapacityToRHS(double coef=1);
00142
00145 void Capacity(double coef=1) { CapacityToLHS(coef); CapacityToRHS(coef); }
00146
00149 void Diffusion(double coef=1);
00150
00156 void Diffusion(const LocalMatrix<double,2,2> &diff, double coef=1);
00157
00161 void DiffusionToRHS(double coef=1);
00162
00166 void BodyRHS(UserData<double> &ud);
00167
00173 void BodyRHS(const Vect<double> &b, int opt=LOCAL_ARRAY);
00174
00177 Point<double> & Grad(const Vect<double> &u);
00178
00179 private :
00180
00181 Triang3 *_tr;
00182 Line2 *_ln;
00183 double _r[3];
00184 Point<double> _grad;
00185 };
00186
00187 }
00188
00189 #endif