Chaste
Build::
|
#include <FiniteElementSolver.hpp>
Public Member Functions | |
FiniteElementSolver () | |
virtual | ~FiniteElementSolver () |
void | Solve () |
void | SetGuess (const std::vector< double > &guess) |
void | SetUseSimpleNetonSolver (bool useNewton) |
void | SetUseLinearSolveForGuess (bool useLinearSolve) |
void | Update () |
Public Member Functions inherited from AbstractUnstructuredGridDiscreteContinuumSolver< DIM > | |
AbstractUnstructuredGridDiscreteContinuumSolver () | |
virtual | ~AbstractUnstructuredGridDiscreteContinuumSolver () |
boost::shared_ptr< DiscreteContinuumMesh< DIM > > | GetMesh () |
virtual std::vector< units::quantity< unit::concentration > > | GetConcentrations (const std::vector< DimensionalChastePoint< DIM > > &rSamplePoints) |
virtual std::vector< units::quantity< unit::concentration > > | GetConcentrations (boost::shared_ptr< RegularGrid< DIM > > pGrid) |
virtual std::vector< units::quantity< unit::concentration > > | GetConcentrations (boost::shared_ptr< DiscreteContinuumMesh< DIM > > pMesh) |
virtual std::vector< units::quantity< unit::concentration > > | GetConcentrationsAtCentroids () |
virtual std::vector< double > | GetSolution (const std::vector< DimensionalChastePoint< DIM > > &rSamplePoints) |
virtual std::vector< double > | GetSolution (boost::shared_ptr< RegularGrid< DIM > > pGrid) |
virtual std::vector< double > | GetSolution (boost::shared_ptr< DiscreteContinuumMesh< DIM > > pMesh) |
virtual vtkSmartPointer< vtkUnstructuredGrid > | GetVtkSolution () |
void | SetMesh (boost::shared_ptr< DiscreteContinuumMesh< DIM, DIM > > pMesh) |
virtual void | Setup () |
virtual void | UpdateSolution (const std::vector< double > &rData) |
virtual void | UpdateElementSolution (const std::vector< double > &rData) |
virtual void | UpdateSolution (const std::vector< units::quantity< unit::concentration > > &rData) |
virtual void | UpdateCellData () |
virtual void | Write () |
Public Member Functions inherited from AbstractDiscreteContinuumSolver< DIM > | |
AbstractDiscreteContinuumSolver () | |
virtual | ~AbstractDiscreteContinuumSolver () |
void | AddBoundaryCondition (boost::shared_ptr< DiscreteContinuumBoundaryCondition< DIM > > pBoundaryCondition) |
bool | CellPopulationIsSet () |
virtual std::vector< units::quantity< unit::concentration > > | GetConcentrations () |
const std::string & | GetLabel () |
boost::shared_ptr< AbstractDiscreteContinuumNonLinearEllipticPde< DIM, DIM > > | GetNonLinearPde () |
boost::shared_ptr< AbstractDiscreteContinuumLinearEllipticPde< DIM, DIM > > | GetPde () |
units::quantity< unit::concentration > | GetReferenceConcentration () |
virtual std::vector< double > | GetSolution () |
bool | HasRegularGrid () |
bool | HasUnstructuredGrid () |
void | SetCellPopulation (AbstractCellPopulation< DIM > &rCellPopulation, units::quantity< unit::length > cellPopulationReferenceLength, units::quantity< unit::concentration > cellPopulationReferenceConcentration) |
void | SetFileHandler (boost::shared_ptr< OutputFileHandler > pOutputFileHandler) |
void | SetFileName (const std::string &rFilename) |
void | SetLabel (const std::string &rLabel) |
void | SetPde (boost::shared_ptr< AbstractDiscreteContinuumLinearEllipticPde< DIM, DIM > > pPde) |
void | SetNonLinearPde (boost::shared_ptr< AbstractDiscreteContinuumNonLinearEllipticPde< DIM, DIM > > pPde) |
void | SetReferenceConcentration (units::quantity< unit::concentration > referenceConcentration) |
void | SetVesselNetwork (boost::shared_ptr< VesselNetwork< DIM > > pNetwork) |
void | SetWriteSolution (bool write=true) |
Static Public Member Functions | |
static boost::shared_ptr< FiniteElementSolver< DIM > > | Create () |
Private Attributes | |
bool | mUseNewton |
bool | mUseLinearSolveForGuess |
std::vector< double > | mGuess |
Additional Inherited Members | |
Protected Attributes inherited from AbstractUnstructuredGridDiscreteContinuumSolver< DIM > | |
vtkSmartPointer< vtkUnstructuredGrid > | mpVtkSolution |
boost::shared_ptr< DiscreteContinuumMesh< DIM, DIM > > | mpMesh |
Protected Attributes inherited from AbstractDiscreteContinuumSolver< DIM > | |
boost::shared_ptr< VesselNetwork< DIM > > | mpNetwork |
AbstractCellPopulation< DIM > * | mpCellPopulation |
units::quantity< unit::length > | mCellPopulationReferenceLength |
units::quantity< unit::concentration > | mCellPopulationReferenceConcentration |
boost::shared_ptr< OutputFileHandler > | mpOutputFileHandler |
std::string | mFilename |
std::string | mLabel |
bool | IsSetupForSolve |
bool | mWriteSolution |
boost::shared_ptr< AbstractDiscreteContinuumLinearEllipticPde< DIM, DIM > > | mpPde |
boost::shared_ptr< AbstractDiscreteContinuumNonLinearEllipticPde< DIM, DIM > > | mpNonLinearPde |
std::vector< boost::shared_ptr< DiscreteContinuumBoundaryCondition< DIM > > > | mBoundaryConditions |
units::quantity< unit::concentration > | mReferenceConcentration |
std::vector< double > | mSolution |
std::vector< units::quantity< unit::concentration > > | mConcentrations |
bool | mHasRegularGrid |
bool | mHasUnstructuredGrid |
A finite element solver for linear elliptic PDEs with multiple discrete sinks or sources.
Definition at line 47 of file FiniteElementSolver.hpp.
FiniteElementSolver< DIM >::FiniteElementSolver | ( | ) |
Constructor
Definition at line 43 of file FiniteElementSolver.cpp.
|
virtual |
Destructor
Definition at line 53 of file FiniteElementSolver.cpp.
|
static |
Construct a new instance of the class and return a shared pointer to it.
Definition at line 59 of file FiniteElementSolver.cpp.
void FiniteElementSolver< DIM >::SetGuess | ( | const std::vector< double > & | guess | ) |
Set the initial dimensionless guess
guess | the guess. |
Definition at line 79 of file FiniteElementSolver.cpp.
References FiniteElementSolver< DIM >::mGuess.
void FiniteElementSolver< DIM >::SetUseLinearSolveForGuess | ( | bool | useLinearSolve | ) |
Use the solution from a linear solver as the initial guess
useLinearSolve | use the solution from a linear solver as the initial guess |
Definition at line 91 of file FiniteElementSolver.cpp.
References FiniteElementSolver< DIM >::mUseLinearSolveForGuess.
void FiniteElementSolver< DIM >::SetUseSimpleNetonSolver | ( | bool | useNewton | ) |
Use Chaste's simple newton solve
useNewton | use Chaste's simple newton solve |
Definition at line 85 of file FiniteElementSolver.cpp.
References FiniteElementSolver< DIM >::mUseNewton.
|
virtual |
Overridden solve method
Implements AbstractUnstructuredGridDiscreteContinuumSolver< DIM >.
Definition at line 97 of file FiniteElementSolver.cpp.
References AbstractDiscreteContinuumSolver< DIM >::IsSetupForSolve, AbstractDiscreteContinuumSolver< DIM >::mBoundaryConditions, AbstractDiscreteContinuumSolver< DIM >::mConcentrations, AbstractUnstructuredGridDiscreteContinuumSolver< DIM >::mpMesh, AbstractDiscreteContinuumSolver< DIM >::mpNonLinearPde, AbstractDiscreteContinuumSolver< DIM >::mpPde, AbstractDiscreteContinuumSolver< DIM >::mReferenceConcentration, AbstractDiscreteContinuumSolver< DIM >::mSolution, FiniteElementSolver< DIM >::mUseNewton, AbstractDiscreteContinuumSolver< DIM >::mWriteSolution, AbstractUnstructuredGridDiscreteContinuumSolver< DIM >::Setup(), AbstractUnstructuredGridDiscreteContinuumSolver< DIM >::UpdateSolution(), and AbstractUnstructuredGridDiscreteContinuumSolver< DIM >::Write().
|
virtual |
Overridden update method
Reimplemented from AbstractUnstructuredGridDiscreteContinuumSolver< DIM >.
Definition at line 66 of file FiniteElementSolver.cpp.
References AbstractDiscreteContinuumSolver< DIM >::mpNonLinearPde, and AbstractDiscreteContinuumSolver< DIM >::mpPde.
|
private |
An initial guess
Definition at line 67 of file FiniteElementSolver.hpp.
Referenced by FiniteElementSolver< DIM >::SetGuess().
|
private |
Use the linear solution as a guess
Definition at line 62 of file FiniteElementSolver.hpp.
Referenced by FiniteElementSolver< DIM >::SetUseLinearSolveForGuess().
|
private |
Use the chaste newton solver
Definition at line 57 of file FiniteElementSolver.hpp.
Referenced by FiniteElementSolver< DIM >::SetUseSimpleNetonSolver(), and FiniteElementSolver< DIM >::Solve().