Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

hp3D/hook.hh
Go to the documentation of this file.
00001 /* discretization of hooks law (linear elasticity)
00002  */
00003 
00004 #ifndef hook3D_hh
00005 #define hook3D_hh
00006 
00007 #include "basics/typedefs.hh"
00008 #include "basics/vectorsMatrices.hh"
00009 #include "toolbox/array.hh"
00010 #include "operator/bilinearForm.hh"
00011 
00012 namespace hp3D {
00013   // forward declarations
00014   class Hexahedron;
00015 
00016   using concepts::Real;
00017 
00018   // **************************************************************** Hook **
00019 
00025   class Hook : public concepts::BilinearForm<Real> {
00026   public:
00028     Hook(concepts::Array<Real>& jacobian,
00029    concepts::Array<concepts::Array<concepts::MapReal3d> >& jacobianInv,
00030    const Hexahedron** oldElm, concepts::Mapping<Real, 6>& E,
00031    const uint i = 0, const uint j = 0) :
00032       i_(i), j_(j), jacobian_(jacobian), jacobianInv_(jacobianInv),
00033        coeffMatrix_(0), E_(E) , oldElm_(oldElm) {}
00034     virtual ~Hook();
00035 
00036     virtual void operator()(const concepts::Element<Real>& elmX,
00037           const concepts::Element<Real>& elmY, 
00038           concepts::ElementMatrix<Real>& em); 
00039     void operator()(const Hexahedron& elmX, const Hexahedron& elmY, 
00040         concepts::ElementMatrix<Real>& em);
00041   protected:
00042     virtual std::ostream& info(std::ostream& os) const;
00043   private:
00045     uint i_, j_;
00046 
00049     concepts::Array<Real> &jacobian_;
00051     //concepts::Array<concepts::MapReal3d> &jacobianInv_;
00052     concepts::Array<concepts::Array<concepts::MapReal3d> > &jacobianInv_;
00053     concepts::Array<concepts::MapReal3d> coeffMatrix_;
00054     concepts::Mapping<Real, 6> &E_;
00055 
00056     const Hexahedron** oldElm_;
00057   };
00058 
00059 } // namespace hp3D
00060 
00061 #endif // hook3D_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)