36#ifndef CONTINUUMMECHANICSPROBLEMDEFINITION_HPP_
37#define CONTINUUMMECHANICSPROBLEMDEFINITION_HPP_
39#include "AbstractTetrahedralMesh.hpp"
41#include "AbstractIncompressibleMaterialLaw.hpp"
42#include "AbstractCompressibleMaterialLaw.hpp"
43#include "CompressibilityType.hpp"
49typedef enum BodyForceType_
58typedef enum TractionBoundaryConditionType_
64 FUNCTIONAL_PRESSURE_ON_DEFORMED
65} TractionBoundaryConditionType;
197 void SetBodyForce(c_vector<double,DIM> (*pFunction)(c_vector<double,DIM>& rX,
double t));
207 c_vector<double,DIM>
GetBodyForce(c_vector<double,DIM>& rX,
double t = 0.0);
239 std::vector<c_vector<double,DIM> >& rElementwiseTractions);
249 c_vector<double,DIM> (*pFunction)(c_vector<double,DIM>& rX,
double t));
259 double normalPressure);
270 double (*pFunction)(
double t));
c_vector< double, DIM > GetConstantBodyForce()
bool GetVerboseDuringSolve()
BodyForceType mBodyForceType
void SetDensity(double density)
void SetVerboseDuringSolve(bool verboseDuringSolve=true)
std::vector< c_vector< double, DIM > > mDirichletNodeValues
std::vector< c_vector< double, DIM > > & rGetElementwiseTractions()
c_vector< double, DIM >(* mpBodyForceFunction)(c_vector< double, DIM > &rX, double t)
c_vector< double, DIM > EvaluateBodyForceFunction(c_vector< double, DIM > &rX, double t)
double EvaluateNormalPressureFunction(double t)
std::vector< BoundaryElement< DIM-1, DIM > * > mTractionBoundaryElements
TractionBoundaryConditionType GetTractionBoundaryConditionType()
void SetApplyNormalPressureOnDeformedSurface(std::vector< BoundaryElement< DIM-1, DIM > * > &rTractionBoundaryElements, double normalPressure)
std::vector< BoundaryElement< DIM-1, DIM > * > & rGetTractionBoundaryElements()
std::vector< unsigned > & rGetDirichletNodes()
void SetTractionBoundaryConditions(std::vector< BoundaryElement< DIM-1, DIM > * > &rTractionBoundaryElements, std::vector< c_vector< double, DIM > > &rElementwiseTractions)
BodyForceType GetBodyForceType()
std::vector< unsigned > mDirichletNodes
std::vector< c_vector< double, DIM > > mElementwiseTractions
void SetPressureScaling(double scaleFactor)
virtual ~ContinuumMechanicsProblemDefinition()
TractionBoundaryConditionType mTractionBoundaryConditionType
std::vector< c_vector< double, DIM > > & rGetDirichletNodeValues()
c_vector< double, DIM > GetBodyForce(c_vector< double, DIM > &rX, double t=0.0)
c_vector< double, DIM > mConstantBodyForce
double mOriginalNormalPressure
c_vector< double, DIM > EvaluateTractionFunction(c_vector< double, DIM > &rX, double t)
double GetNormalPressure()
double(* mpNormalPressureFunction)(double t)
AbstractTetrahedralMesh< DIM, DIM > & mrMesh
void SetZeroDirichletNodes(std::vector< unsigned > &rZeroDirichletNodes)
c_vector< double, DIM >(* mpTractionBoundaryConditionFunction)(c_vector< double, DIM > &rX, double t)
void SetBodyForce(c_vector< double, DIM > bodyForce)