BiotFEM Class Reference

#include <biotfem.h>

Inheritance diagram for BiotFEM:
Inheritance graph
[legend]
Collaboration diagram for BiotFEM:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 BiotFEM (OrthoMesh &mesh, double dt, VecDouble &cK, double &fYoung, double &fPoisson, Function3D &fD, Function3D &fN)
virtual void iterate (TransportBase &trans)
virtual void printOutput ()
virtual void getVelocitiesAtFaces (Matrix &M)
virtual const VecDoublegetPressureAtCells ()
virtual ~BiotFEM ()

Private Attributes

OrthoMeshm_mesh
VecDoublem_cK
IsotropicElasticEqVar m_eqvar
SparsityPattern m_sparsity
SparseMatrix< double > m_M
VecDouble m_vRHS
VecDouble m_sol
SparseDirectUMFPACK solveA
unsigned m_debugLevel
MapIntDouble dirichlet_bc_map
Function3Dm_fN

Detailed Description

This class implements the Biot problem in 3D

Definition at line 13 of file biotfem.h.


Constructor & Destructor Documentation

BiotFEM::BiotFEM ( OrthoMesh mesh,
double  dt,
VecDouble cK,
double &  fYoung,
double &  fPoisson,
Function3D fD,
Function3D fN 
)

Definition at line 7 of file biotfem.cpp.

00008   :m_mesh(mesh),m_cK(cK),m_eqvar(mesh,cK,fYoung,fPoisson,fD,fN),m_fN(fN)
00009  {
00010    m_eqvar.printDealFEInfo();
00011    exit(0);
00012   AssemblyOrthoMeshSystem<IsotropicElasticEqVar> assembler;
00013   m_vRHS.reinit(m_eqvar.n_dofs());
00014   m_sol.reinit(m_eqvar.n_dofs());
00015   m_sparsity.reinit(m_eqvar.n_dofs(),m_eqvar.n_dofs(),m_eqvar.n_max_dof_coupling());
00016   assembler.buildSparsityPattern(m_sparsity,m_mesh,m_eqvar);
00017   m_sparsity.compress();
00018   m_M.reinit(m_sparsity);
00019   assembler.setBoundaryValue(m_mesh,m_eqvar,fD,dirichlet_bc_map);
00020 
00021 }

virtual BiotFEM::~BiotFEM (  )  [inline, virtual]

Definition at line 35 of file biotfem.h.

00035 {}


Member Function Documentation

virtual const VecDouble& BiotFEM::getPressureAtCells (  )  [inline, virtual]

Reimplemented from DynamicBase.

Definition at line 34 of file biotfem.h.

00034 {return m_sol;}

void BiotFEM::getVelocitiesAtFaces ( Matrix M  )  [virtual]

Reimplemented from DynamicBase.

Definition at line 58 of file biotfem.cpp.

00059 {
00060   throw new Exception("BiotFEM::getVelocitiesAtFaces Not implemented for this class\n");
00061 }

void BiotFEM::iterate ( TransportBase trans  )  [virtual]

Implements DynamicBase.

Definition at line 25 of file biotfem.cpp.

00026 {
00027   AssemblyOrthoMeshSystem<IsotropicElasticEqVar> assembler;
00028   assembler.buildGlobalMatrix(m_M,m_mesh, m_eqvar);
00029   assembler.buildGlobalRhs(m_vRHS,m_mesh,m_eqvar);
00030   assembler.applyBoundaryValue(dirichlet_bc_map,m_M);
00031   assembler.applyBoundaryValue(dirichlet_bc_map,m_vRHS);
00032   //assembler.addNeummanCondition(m_mesh,m_vRHS,m_eqvar,m_fN);
00033   m_sol=m_vRHS;
00034   m_sol.print();
00035   solveA.factorize(m_M);
00036   solveA.solve(m_sol);
00037   
00038 }

void BiotFEM::printOutput (  )  [virtual]

Implements DynamicBase.

Definition at line 39 of file biotfem.cpp.

00040 {
00041   return;
00042   if (m_debugLevel > 0)
00043   {
00044     HDF5OrthoWriter &hdf5 = HDF5OrthoWriter::getHDF5OrthoWriter(); 
00045     hdf5.writeScalarField(m_sol,"P");
00046 
00047      GnuPlotAnim &plot = GnuPlotAnim::getGnuPlotAnim();
00048      
00049      //char str[100];
00050      //printf("Mass: %g\n",m_mesh.getIntegralAtCells(m_cValues));
00051      plot.set("yrange","[0:1]");
00052      plot.plotVerticeValuesAtFixedZ(m_mesh,m_sol,"Sc","with lines",5);
00053      plot.NextScene();
00054   }
00055 }


Member Data Documentation

Definition at line 24 of file biotfem.h.

Definition at line 17 of file biotfem.h.

unsigned BiotFEM::m_debugLevel [private]

Definition at line 23 of file biotfem.h.

Definition at line 18 of file biotfem.h.

Definition at line 25 of file biotfem.h.

SparseMatrix<double> BiotFEM::m_M [private]

Definition at line 20 of file biotfem.h.

Definition at line 16 of file biotfem.h.

Definition at line 21 of file biotfem.h.

SparsityPattern BiotFEM::m_sparsity [private]

Definition at line 19 of file biotfem.h.

Definition at line 21 of file biotfem.h.

SparseDirectUMFPACK BiotFEM::solveA [private]

Definition at line 22 of file biotfem.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Sun Apr 8 23:12:57 2012 for CO2INJECTION by  doxygen 1.6.3