36 #ifndef ABSTRACTDISCRETECONTINUUMNONLINEARELLIPTICPDE_HPP_ 37 #define ABSTRACTDISCRETECONTINUUMNONLINEARELLIPTICPDE_HPP_ 40 #include "ChastePoint.hpp" 41 #include "UblasIncludes.hpp" 42 #include "SmartPointers.hpp" 43 #include "UblasVectorInclude.hpp" 44 #include "DiscreteSource.hpp" 45 #include "GeometryTools.hpp" 46 #include "RegularGrid.hpp" 47 #include "TetrahedralMesh.hpp" 48 #include "AbstractNonlinearEllipticPde.hpp" 54 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM = ELEMENT_DIM>
58 using AbstractNonlinearEllipticPde<SPACE_DIM>::ComputeNonlinearSourceTermPrime;
59 using AbstractNonlinearEllipticPde<SPACE_DIM>::ComputeNonlinearSourceTerm;
96 boost::shared_ptr<TetrahedralMesh<ELEMENT_DIM, SPACE_DIM> >
mpMesh;
157 virtual units::quantity<unit::concentration_flow_rate>
ComputeNonlinearSourceTerm(
unsigned gridIndex, units::quantity<unit::concentration> u)=0;
virtual units::quantity< unit::rate > ComputeLinearInUCoeffInSourceTerm(unsigned gridIndex=0)
void SetRegularGrid(boost::shared_ptr< RegularGrid< SPACE_DIM > > pRegularGrid)
units::quantity< unit::diffusivity > mDiffusivity
void SetUseRegularGrid(bool useRegularGrid)
boost::shared_ptr< TetrahedralMesh< ELEMENT_DIM, SPACE_DIM > > mpMesh
virtual units::quantity< unit::concentration_flow_rate > ComputeNonlinearSourceTerm(unsigned gridIndex, units::quantity< unit::concentration > u)=0
std::vector< boost::shared_ptr< DiscreteSource< SPACE_DIM > > > mDiscreteSources
void SetMesh(boost::shared_ptr< TetrahedralMesh< ELEMENT_DIM, SPACE_DIM > > pMesh)
virtual units::quantity< unit::concentration_flow_rate > ComputeConstantInUSourceTerm(unsigned gridIndex=0)
units::quantity< unit::rate > mLinearInUTerm
std::vector< units::quantity< unit::rate > > mDiscreteLinearSourceStrengths
units::quantity< unit::diffusivity > ComputeIsotropicDiffusionTerm()
void SetIsotropicDiffusionConstant(units::quantity< unit::diffusivity > diffusivity)
void SetContinuumLinearInUTerm(units::quantity< unit::rate > linearInUTerm)
std::vector< boost::shared_ptr< DiscreteSource< SPACE_DIM > > > GetDiscreteSources()
void AddDiscreteSource(boost::shared_ptr< DiscreteSource< SPACE_DIM > > pDiscreteSource)
boost::shared_ptr< RegularGrid< SPACE_DIM > > mpRegularGrid
std::vector< units::quantity< unit::concentration_flow_rate > > mDiscreteConstantSourceStrengths
c_matrix< double, SPACE_DIM, SPACE_DIM > mDiffusionTensor
virtual void UpdateDiscreteSourceStrengths()
AbstractDiscreteContinuumNonLinearEllipticPde()
units::quantity< unit::concentration_flow_rate > mConstantInUTerm
void SetContinuumConstantInUTerm(units::quantity< unit::concentration_flow_rate > constantInUTerm)
virtual ~AbstractDiscreteContinuumNonLinearEllipticPde()
virtual units::quantity< unit::rate > ComputeNonlinearSourceTermPrime(unsigned gridIndex, units::quantity< unit::concentration > u)=0