#include <BoundaryConditionSurfaceMeshAssociation.hpp>
Definition at line 52 of file BoundaryConditionSurfaceMeshAssociation.hpp.
| typedef std:: multimap<const Dirichlet*, ConstReferenceCounting<SurfaceMesh> > BoundaryConditionSurfaceMeshAssociation::DirichletMeshAssociation |
Definition at line 59 of file BoundaryConditionSurfaceMeshAssociation.hpp.
| typedef std:: multimap<ConstReferenceCounting<VariationalLinearBorderOperator>, ConstReferenceCounting<SurfaceMesh> > BoundaryConditionSurfaceMeshAssociation::LinearBorderOperatorMeshAssociation |
Definition at line 65 of file BoundaryConditionSurfaceMeshAssociation.hpp.
| typedef std:: multimap<ConstReferenceCounting<VariationalBilinearBorderOperator>, ConstReferenceCounting<SurfaceMesh> > BoundaryConditionSurfaceMeshAssociation::BilinearBorderOperatorMeshAssociation |
Definition at line 71 of file BoundaryConditionSurfaceMeshAssociation.hpp.
| BoundaryConditionSurfaceMeshAssociation::BoundaryConditionSurfaceMeshAssociation | ( | const Problem & | P, | |
| const BoundaryMeshAssociation & | bma | |||
| ) | [inline] |
Constructor
Definition at line 275 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References addPDEBoundaryConditionAndMesh(), bc(), VariationalProblem::beginBilinearBorderOperator(), VariationalProblem::beginLinearBorderOperator(), bilinearBorderOperatorAdd(), BoundaryCondition::boundary(), Problem::boundaryConditionSet(), VariationalProblem::endBilinearBorderOperator(), VariationalProblem::endLinearBorderOperator(), linearBorderOperatorAdd(), BoundaryConditionSet::nbBoundaryCondition(), Problem::numberOfUnknown(), Problem::type(), and Problem::variational.
00277 : __dirichletMeshAssociation(P.numberOfUnknown()) 00278 { 00279 for (size_t i=0; i<P.numberOfUnknown(); ++i) { 00280 const BoundaryConditionSet& bcSet 00281 = P.boundaryConditionSet(i); 00282 00283 for(size_t j=0; j<bcSet.nbBoundaryCondition(); ++j) { 00284 const BoundaryCondition& bc = bcSet[j]; 00285 const Boundary& b = *bc.boundary(); 00286 this->addPDEBoundaryConditionAndMesh(i,&bc,bma[b]); 00287 } 00288 } 00289 00290 // Now sets the natural boundary conditions coming from a variational problem 00291 if(P.type() == Problem::variational) { 00292 const VariationalProblem& VP = dynamic_cast<const VariationalProblem&>(P); 00293 for (VariationalProblem::bilinearBorderOperatorConst_iterator i = VP.beginBilinearBorderOperator(); 00294 i != VP.endBilinearBorderOperator(); ++i) { 00295 const Boundary& b = dynamic_cast<const Boundary&>(*(*i)->boundary()); 00296 this->bilinearBorderOperatorAdd(*i,bma[b]); 00297 } 00298 for (VariationalProblem::linearBorderOperatorConst_iterator i = VP.beginLinearBorderOperator(); 00299 i != VP.endLinearBorderOperator(); ++i) { 00300 const Boundary& b = dynamic_cast<const Boundary&>(*(*i)->boundary()); 00301 this->linearBorderOperatorAdd(*i,bma[b]); 00302 } 00303 } 00304 }

| BoundaryConditionSurfaceMeshAssociation::BoundaryConditionSurfaceMeshAssociation | ( | const BoundaryConditionSurfaceMeshAssociation & | B | ) | [inline] |
Copy constructor
| B | a BoundaryConditionSurfaceMeshAssociation |
Definition at line 311 of file BoundaryConditionSurfaceMeshAssociation.hpp.
00312 : __dirichletMeshAssociation(B.__dirichletMeshAssociation), 00313 __lboMeshAssociation(B.__lboMeshAssociation), 00314 __bboMeshAssociation(B.__bboMeshAssociation) 00315 { 00316 ; 00317 }
| BoundaryConditionSurfaceMeshAssociation::~BoundaryConditionSurfaceMeshAssociation | ( | ) | [inline] |
| void BoundaryConditionSurfaceMeshAssociation::addPDEBoundaryConditionAndMesh | ( | const size_t & | i, | |
| const BoundaryCondition * | bc, | |||
| const SurfaceMesh * | S | |||
| ) | [inline] |
Adds a boundary condition coming from the PDE description and sort it according to its type.
| i | the number of the equation it comes from | |
| bc | the boundary condition itself | |
| S | the mesh |
Definition at line 97 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __bboMeshAssociation, __dirichletMeshAssociation, __lboMeshAssociation, Fourrier::alpha(), BoundaryCondition::boundary(), BoundaryCondition::condition(), PDECondition::dirichlet, PDECondition::fourrier, Fourrier::g(), Neumann::g(), PDECondition::neumann, and PDECondition::unknownNumber().
Referenced by BoundaryConditionSurfaceMeshAssociation().
00099 { 00100 00101 switch (bc->condition()->type()) { 00102 case PDECondition::dirichlet: { 00103 const Dirichlet& D = dynamic_cast<const Dirichlet&>(*bc->condition()); 00104 __dirichletMeshAssociation[i].insert(std::pair<const Dirichlet*, 00105 const SurfaceMesh*>(&D,S)); 00106 break; 00107 } 00108 case PDECondition::neumann: { 00109 const Neumann& N = dynamic_cast<const Neumann&>(*bc->condition()); 00110 00111 ConstReferenceCounting<VariationalLinearBorderOperator> 00112 LV = new VariationalBorderOperatorFV(i, N.g(), bc->boundary()); 00113 00114 __lboMeshAssociation.insert(std::pair<ConstReferenceCounting<VariationalLinearBorderOperator>, 00115 const SurfaceMesh*>(LV,S)); 00116 break; 00117 } 00118 case PDECondition::fourrier: { 00119 const Fourrier& F = dynamic_cast<const Fourrier&>(*bc->condition()); 00120 00121 ConstReferenceCounting<VariationalLinearBorderOperator> 00122 LV = new VariationalBorderOperatorFV(i, F.g(), bc->boundary()); 00123 00124 __lboMeshAssociation.insert(std::pair<ConstReferenceCounting<VariationalLinearBorderOperator>, 00125 const SurfaceMesh*>(LV,S)); 00126 00127 ConstReferenceCounting<VariationalBilinearBorderOperator> 00128 BLV = new VariationalBorderOperatorAlphaUV(i,F.unknownNumber(), 00129 F.alpha(), bc->boundary()); 00130 00131 __bboMeshAssociation.insert(std::pair<ConstReferenceCounting<VariationalBilinearBorderOperator>, 00132 const SurfaceMesh*>(BLV, S)); 00133 00134 break; 00135 } 00136 } 00137 }

| DirichletMeshAssociation& BoundaryConditionSurfaceMeshAssociation::bc | ( | const size_t & | i | ) | [inline] |
Returns the boundary condition mesh association related to test function number i
| i |
Definition at line 145 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __dirichletMeshAssociation, and ASSERT.
Referenced by BoundaryConditionDiscretizationElimination< MeshType, TypeOfDiscretization >::__DirichletBorderLinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardDirichletBorderLinearOperator(), BoundaryConditionSurfaceMeshAssociation(), and BoundaryConditionDiscretizationPenalty< MeshType, TypeOfDiscretization >::setMatrix().
00146 { 00147 ASSERT(i<__dirichletMeshAssociation.size()); 00148 return __dirichletMeshAssociation[i]; 00149 }
| const DirichletMeshAssociation& BoundaryConditionSurfaceMeshAssociation::bc | ( | const size_t & | i | ) | const [inline] |
Returns the boundary condition mesh association related to test function number i
| i |
Definition at line 157 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __dirichletMeshAssociation, and ASSERT.
00158 { 00159 ASSERT(i<__dirichletMeshAssociation.size()); 00160 return __dirichletMeshAssociation[i]; 00161 }
| void BoundaryConditionSurfaceMeshAssociation::bcSetSize | ( | const size_t & | i | ) | [inline] |
Sets the number of test functions.
| i |
Definition at line 168 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __dirichletMeshAssociation.
00169 { 00170 __dirichletMeshAssociation.resize(i); 00171 }
| void BoundaryConditionSurfaceMeshAssociation::bilinearBorderOperatorAdd | ( | ConstReferenceCounting< VariationalBilinearBorderOperator > | v, | |
| const SurfaceMesh * | s | |||
| ) | [inline] |
Adds a bilinear border operator and its mesh to the list.
| v | the variational border operator | |
| s | the surface mesh |
Definition at line 179 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __bboMeshAssociation.
Referenced by BoundaryConditionSurfaceMeshAssociation().
00181 { 00182 __bboMeshAssociation.insert(std::pair<ConstReferenceCounting<VariationalBilinearBorderOperator>, 00183 const SurfaceMesh*>(v,s)); 00184 }
| void BoundaryConditionSurfaceMeshAssociation::linearBorderOperatorAdd | ( | ConstReferenceCounting< VariationalLinearBorderOperator > | v, | |
| const SurfaceMesh * | s | |||
| ) | [inline] |
Adds a linear border operator and its mesh to the list.
| v | the variational border operator | |
| s | the surface mesh |
Definition at line 192 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __lboMeshAssociation.
Referenced by BoundaryConditionSurfaceMeshAssociation().
00194 { 00195 __lboMeshAssociation.insert(std::pair<ConstReferenceCounting<VariationalLinearBorderOperator>, 00196 const SurfaceMesh*>(v,s)); 00197 }
| BoundaryConditionSurfaceMeshAssociation ::BilinearBorderOperatorMeshAssociation ::iterator BoundaryConditionSurfaceMeshAssociation::beginOfBilinear | ( | ) | [inline] |
Gets the begin iterator for the list of bi linear operators
Definition at line 206 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __bboMeshAssociation.
Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardGetDiagonalVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTimesX(), and BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTransposedTimesX().
00207 { 00208 return __bboMeshAssociation.begin(); 00209 }
| BoundaryConditionSurfaceMeshAssociation ::BilinearBorderOperatorMeshAssociation ::const_iterator BoundaryConditionSurfaceMeshAssociation::beginOfBilinear | ( | ) | const [inline] |
Gets the begin iterator for the list of bi linear operators
Definition at line 218 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __bboMeshAssociation.
00219 { 00220 return __bboMeshAssociation.begin(); 00221 }
| BoundaryConditionSurfaceMeshAssociation ::BilinearBorderOperatorMeshAssociation ::const_iterator BoundaryConditionSurfaceMeshAssociation::endOfBilinear | ( | ) | const [inline] |
Gets the end iterator for the list of bi linear operators
Definition at line 230 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __bboMeshAssociation.
Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardGetDiagonalVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTimesX(), and BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTransposedTimesX().
00231 { 00232 return __bboMeshAssociation.end(); 00233 }
| BoundaryConditionSurfaceMeshAssociation ::LinearBorderOperatorMeshAssociation ::iterator BoundaryConditionSurfaceMeshAssociation::beginOfLinear | ( | ) | [inline] |
Gets the begin iterator for the list of linear operators
Definition at line 242 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __lboMeshAssociation.
Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderLinearOperator(), and BoundaryConditionDiscretizationSpectralNonConform::setSecondMember().
00243 { 00244 return __lboMeshAssociation.begin(); 00245 }
| BoundaryConditionSurfaceMeshAssociation ::LinearBorderOperatorMeshAssociation ::const_iterator BoundaryConditionSurfaceMeshAssociation::beginOfLinear | ( | ) | const [inline] |
Gets the begin iterator for the list of linear operators
Definition at line 254 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __lboMeshAssociation.
00255 { 00256 return __lboMeshAssociation.begin(); 00257 }
| BoundaryConditionSurfaceMeshAssociation ::LinearBorderOperatorMeshAssociation ::const_iterator BoundaryConditionSurfaceMeshAssociation::endOfLinear | ( | ) | const [inline] |
Gets the end iterator for the list of linear operators
Definition at line 266 of file BoundaryConditionSurfaceMeshAssociation.hpp.
References __lboMeshAssociation.
Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderLinearOperator(), and BoundaryConditionDiscretizationSpectralNonConform::setSecondMember().
00267 { 00268 return __lboMeshAssociation.end(); 00269 }
std::vector<DirichletMeshAssociation> BoundaryConditionSurfaceMeshAssociation::__dirichletMeshAssociation [private] |
Association of BoundaryCondition and Mesh (uses a vector since it appears for each equation)
Definition at line 75 of file BoundaryConditionSurfaceMeshAssociation.hpp.
Referenced by addPDEBoundaryConditionAndMesh(), bc(), and bcSetSize().
LinearBorderOperatorMeshAssociation BoundaryConditionSurfaceMeshAssociation::__lboMeshAssociation [private] |
Association of Linear Border Operator and Mesh
Definition at line 80 of file BoundaryConditionSurfaceMeshAssociation.hpp.
Referenced by addPDEBoundaryConditionAndMesh(), beginOfLinear(), endOfLinear(), and linearBorderOperatorAdd().
BilinearBorderOperatorMeshAssociation BoundaryConditionSurfaceMeshAssociation::__bboMeshAssociation [private] |
Association of Bilinear Border Operator and Mesh
Definition at line 84 of file BoundaryConditionSurfaceMeshAssociation.hpp.
Referenced by addPDEBoundaryConditionAndMesh(), beginOfBilinear(), bilinearBorderOperatorAdd(), and endOfBilinear().
1.5.6