Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

BasisFuncAtPt.h

Go to the documentation of this file.
00001 
00005 class BasisFuncAtPt
00006 
00007 {
00008 private:
00009 
00010   Ptv(real)  loc_eval_pt;  
00011 
00012   int        nbf;          
00013   int        ngf;          
00014   int        nsd;
00015   int        eval_derivatives;  
00016 
00017   Vec(real)         Ni;           
00018   Handle(Mat(real)) h_djNi;       
00019   Handle(Mat(real)) h_djNi_loc;   
00020   Handle(Vec(real)) h_Ni_g;       
00021   Handle(Mat(real)) h_djNi_g_loc; 
00022   Handle(ArrayGen(real)) h_d2Ni;  
00023   Handle(ArrayGen(real)) h_d2Ni_loc; 
00024                            
00025 
00026   Handle(Mat(real)) h_jacobi;     
00027   Handle(Mat(real)) h_inv_jacobi; 
00028   real       det_jacobi;          
00029 
00030   ElementType el_tp;       
00031   real       det_side_J;   
00032   Ptv(real)  nv;           
00033   Vec(real)  scratch;      
00034 
00035   void calcJacobiEtcT3n2d (const Mat(real)& elmcoor); 
00036   void calcJacobiEtcT4n3d (const Mat(real)& elmcoor); 
00037   void calcJacobiEtc (const Mat(real)& elmcoor); 
00038   bool redim ();
00039   bool derivOk (const char* function_name, int deriv_order) const;
00040 
00041   bool       initialized;  
00042 
00043 public:
00044 
00045   static long int ncalls_calcJacobi;   
00046   static long int ncalls_initAtPoint;  
00047 
00048   BasisFuncAtPt ();
00049   BasisFuncAtPt (const BasisFuncAtPt& b);
00050  ~BasisFuncAtPt () {}
00051 
00052   bool ok () const;
00053   bool redim (HandleElmDefs& elmdef);  
00054 
00055   void initAtPoint (const Ptv(real)&     eval_pt, 
00056                           HandleElmDefs& elmdef, 
00057                     const Mat(real)&     elmcoor, 
00058                           int            current_side);
00059   void updateJacobi (const Mat(real)& elmcoor);
00060   void operator = (const BasisFuncAtPt& b);
00061   bool evaluatedAt (const Ptv(real)& loc_pt);
00062 
00063   real   N (int i) const;
00064   real  dN (int i, int dir) const;
00065   real d2N (int i, int dir1, int dir2) const;
00066 
00067   real  dNloc (int i, int dir) const;
00068 
00069   const Mat(real)& JacobiMatrix () const    { return *h_jacobi; }
00070   const Mat(real)& invJacobiMatrix () const { return *h_inv_jacobi; }
00071   const Vec(real)& N() const                { return Ni; }
00072   const Mat(real)& dNgloc() const           { return *h_djNi_g_loc; }
00073   const Mat(real)& dNloc() const            { return *h_djNi_loc; }
00074   const Vec(real)& Ng() const               { return *h_Ni_g; }
00075   const Mat(real)& dN() const               { return *h_djNi; }
00076   const ArrayGen(real)& d2N() const         { return *h_d2Ni; }
00077 
00078   void  copyJacobiEtc (const BasisFuncAtPt& b);
00079   void  unInitialize ();
00080   void  evalDerivatives (int i);
00081 
00082   real detJ () const;        
00083   real detSideJ () const;    
00084   void getNormalVectorOnSide (Ptv(real)& vec) const;
00085 };
00086 
00087 

Copyright © 2003 inuTech GmbH. All rights reserved.