BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet Class Reference

Collaboration diagram for BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet:

Collaboration graph
[legend]

List of all members.

Public Member Functions

template<typename SurfaceMeshType>
void eval (const SurfaceMeshType &surfMesh) const
 __SetSecondMemberDirichlet (const Dirichlet &D, const size_t equationNumber, const BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization > &bc)
 __SetSecondMemberDirichlet (const __SetSecondMemberDirichlet &s)
 ~__SetSecondMemberDirichlet ()

Private Attributes

const Dirichlet__dirichlet
const size_t __equationNumber
const
BoundaryConditionDiscretizationElimination
< MeshType,
TypeOfDiscretization > & 
__bc


Detailed Description

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
class BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet

Definition at line 42 of file BoundaryConditionDiscretizationElimination.hpp.


Constructor & Destructor Documentation

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__SetSecondMemberDirichlet ( const Dirichlet D,
const size_t  equationNumber,
const BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization > &  bc 
) [inline]

Definition at line 108 of file BoundaryConditionDiscretizationElimination.hpp.

00112       : __dirichlet(D),
00113         __equationNumber(equationNumber),
00114         __bc(bc)
00115     {
00116       ;
00117     }

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__SetSecondMemberDirichlet ( const __SetSecondMemberDirichlet s  )  [inline]

Definition at line 119 of file BoundaryConditionDiscretizationElimination.hpp.

00120       : __dirichlet(s.__dirichlet),
00121         __equationNumber(s.__equationNumber),
00122         __bc(s.__bc)
00123     {
00124       ;
00125     }

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::~__SetSecondMemberDirichlet (  )  [inline]

Definition at line 127 of file BoundaryConditionDiscretizationElimination.hpp.

00128     {
00129       ;
00130     }


Member Function Documentation

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
template<typename SurfaceMeshType>
void BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::eval ( const SurfaceMeshType &  surfMesh  )  const [inline]

Definition at line 55 of file BoundaryConditionDiscretizationElimination.hpp.

References BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__bc, BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__dirichlet, BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__equationNumber, fferr(), and Dirichlet::g().

00056     {
00057       typedef typename SurfaceMeshType::CellType BoundaryCellType;
00058 
00059       typedef
00060         typename FiniteElementTraits<BoundaryCellType,
00061                                      TypeOfDiscretization>::Transformation
00062         BoundaryConformTransformation;
00063 
00064       typedef
00065         typename FiniteElementTraits<BoundaryCellType,
00066                                      TypeOfDiscretization>::Type
00067         BoundaryFiniteElement;
00068 
00069       typedef
00070         typename BoundaryFiniteElement::QuadratureType
00071         BoundaryQuadratureType;
00072 
00073       const BoundaryQuadratureType& referenceBoundaryQuadrature
00074         = BoundaryQuadratureType::instance();
00075 
00076       fferr(1) << __FILE__ << ":" << __LINE__
00077                << "\n########################################################\n"
00078                << "Implementation not finished! use of dofPosition required\n"
00079                << "########################################################\n";
00080 
00081       for (typename SurfaceMeshType::const_iterator icell(surfMesh);
00082            not(icell.end()); ++icell) {
00083         const BoundaryCellType& cell = *icell;
00084 
00085         const BoundaryConformTransformation boundaryT(cell);
00086 
00087         for (size_t k=0; k<BoundaryQuadratureType::numberOfQuadraturePoints;
00088              k++) {
00089           // computes local quadrature vertex
00090           TinyVector<3, real_t> q;
00091           boundaryT.value(referenceBoundaryQuadrature[k], q);
00092 
00093           // Index of the vertex of the mesh the closer to q.
00094 #warning Use of Index is not necessary
00095           const Index& iv = __bc.mesh().vertexIndex(q);
00096           const Vertex& V = __bc.mesh().vertex(iv);
00097 
00098           const real_t GValue = __dirichlet.g(V);
00099 
00100           const size_t I = __bc.__degreeOfFreedomSet(__equationNumber,
00101                                                      __bc.mesh().vertexNumber(V));
00102           __bc.__dirichletValues[I] = GValue;
00103           __bc.__dirichletList[I] = true;
00104         }
00105       }
00106     }

Here is the call graph for this function:


Member Data Documentation

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
const Dirichlet& BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__dirichlet [private]

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
const size_t BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__equationNumber [private]

template<typename MeshType, ScalarDiscretizationTypeBase::Type TypeOfDiscretization>
const BoundaryConditionDiscretizationElimination<MeshType, TypeOfDiscretization>& BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__SetSecondMemberDirichlet::__bc [private]


The documentation for this class was generated from the following file:

Generated on Wed Nov 19 00:04:20 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6