DegreeOfFreedomSet Class Reference

#include <DegreeOfFreedomSet.hpp>

Collaboration diagram for DegreeOfFreedomSet:

Collaboration graph
[legend]

List of all members.

Public Types

typedef Vector< int > Correspondance

Public Member Functions

const
ScalarDegreeOfFreedomPositionsSet
positionsSet (const size_t &i) const
const size_t & numberOfDOFPositions (const size_t &i) const
const size_t & numberOfVariables () const
size_t size () const
size_t operator() (const size_t &variableNumber, const size_t &scalarDOFNumber) const
bool isDOFVertex (const size_t &variableNumber, const size_t &scalarDOFNumber) const
 DegreeOfFreedomSet (ConstReferenceCounting< DegreeOfFreedomPositionsSet > dofPositions, ConstReferenceCounting< Correspondance > correspondance)
 ~DegreeOfFreedomSet ()

Private Attributes

ConstReferenceCounting
< Correspondance
__correspondance
ConstReferenceCounting
< DegreeOfFreedomPositionsSet
__dofPositionsSet
const size_t __numberOfVariables
Vector< size_t > __offset


Detailed Description

This class defines degrees of freedom sets in the case where all the unknown share the same sets of vertices.

Author:
Stéphane Del Pino

Definition at line 40 of file DegreeOfFreedomSet.hpp.


Member Typedef Documentation

Definition at line 43 of file DegreeOfFreedomSet.hpp.


Constructor & Destructor Documentation

DegreeOfFreedomSet::DegreeOfFreedomSet ( ConstReferenceCounting< DegreeOfFreedomPositionsSet dofPositions,
ConstReferenceCounting< Correspondance correspondance 
) [inline]

Definition at line 95 of file DegreeOfFreedomSet.hpp.

References __offset, Vector< T >::number(), and DegreeOfFreedomPositionsSet::number().

00097     : __correspondance(correspondance),
00098       __dofPositionsSet(dofPositions),
00099       __numberOfVariables(dofPositions->number()),
00100       __offset(__numberOfVariables+1)
00101   {
00102     __offset[0] = 0;
00103     const DegreeOfFreedomPositionsSet& dofPositionsSet = *dofPositions;
00104     for(size_t i=0; i<dofPositionsSet.number(); ++i) {
00105       __offset[i+1] = __offset[i]+(*dofPositions)[i].number();
00106     }
00107   }

Here is the call graph for this function:

DegreeOfFreedomSet::~DegreeOfFreedomSet (  )  [inline]

Definition at line 109 of file DegreeOfFreedomSet.hpp.

00110   {
00111     ;
00112   }


Member Function Documentation

const ScalarDegreeOfFreedomPositionsSet& DegreeOfFreedomSet::positionsSet ( const size_t &  i  )  const [inline]

Definition at line 53 of file DegreeOfFreedomSet.hpp.

References __dofPositionsSet.

Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__getDiagonalNaturalBoundaryConditions(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__setSecondMemberDirichlet(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__setVariationalBoundaryConditionsAlphaUV(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__setVariationalBoundaryConditionsFV(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__variationalBoundaryConditionsAlphaUVTimesX(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__variationalBoundaryConditionsAlphaUVTransposedTimesX(), FEMDiscretization< Structured3DMesh, TypeOfDiscretization >::assembleMatrix(), FEMDiscretization< GivenMeshType, TypeOfDiscretization >::assembleMatrix(), FEMDiscretization< Structured3DMesh, TypeOfDiscretization >::assembleSecondMember(), FEMDiscretization< GivenMeshType, TypeOfDiscretization >::assembleSecondMember(), FEMDiscretization< Structured3DMesh, TypeOfDiscretization >::getDiagonal(), FEMDiscretization< GivenMeshType, TypeOfDiscretization >::getDiagonal(), LegendreSolution::getUserFunction(), FEMSolution::getUserFunction(), LegendreSolution::setUserFunction(), FEMSolution::setUserFunction(), FEMDiscretization< Structured3DMesh, TypeOfDiscretization >::timesX(), FEMDiscretization< GivenMeshType, TypeOfDiscretization >::timesX(), FEMDiscretization< Structured3DMesh, TypeOfDiscretization >::transposedTimesX(), and FEMDiscretization< GivenMeshType, TypeOfDiscretization >::transposedTimesX().

00054   {
00055     return (*__dofPositionsSet)[i];
00056   }

const size_t& DegreeOfFreedomSet::numberOfDOFPositions ( const size_t &  i  )  const [inline]

Definition at line 63 of file DegreeOfFreedomSet.hpp.

References __dofPositionsSet.

00064   {
00065     return (*__dofPositionsSet)[i].number();
00066   }

const size_t& DegreeOfFreedomSet::numberOfVariables (  )  const [inline]

size_t DegreeOfFreedomSet::size (  )  const [inline]

size_t DegreeOfFreedomSet::operator() ( const size_t &  variableNumber,
const size_t &  scalarDOFNumber 
) const [inline]

Definition at line 78 of file DegreeOfFreedomSet.hpp.

References __correspondance, __offset, and ASSERT.

00080   {
00081     const size_t dofNumber = __offset[variableNumber]+scalarDOFNumber;
00082 
00083     ASSERT((*__correspondance)[dofNumber] != -1);
00084 
00085     return ((*__correspondance)[dofNumber]);
00086   }

bool DegreeOfFreedomSet::isDOFVertex ( const size_t &  variableNumber,
const size_t &  scalarDOFNumber 
) const [inline]

Definition at line 88 of file DegreeOfFreedomSet.hpp.

References __correspondance, and __offset.

Referenced by FEMSolution::getUserFunction(), and FEMSolution::setUserFunction().

00090   {
00091     const size_t dofNumber = __offset[variableNumber]+scalarDOFNumber;
00092     return ((*__correspondance)[dofNumber] != -1);
00093   }


Member Data Documentation

Definition at line 45 of file DegreeOfFreedomSet.hpp.

Referenced by isDOFVertex(), and operator()().

Definition at line 46 of file DegreeOfFreedomSet.hpp.

Referenced by numberOfDOFPositions(), and positionsSet().

Definition at line 48 of file DegreeOfFreedomSet.hpp.

Referenced by numberOfVariables(), and size().

Definition at line 50 of file DegreeOfFreedomSet.hpp.

Referenced by DegreeOfFreedomSet(), isDOFVertex(), operator()(), and size().


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

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