#include <TransportProblemAdapter.h>
Public Member Functions | |
TransportProblemAdapter () | |
Wrapper for Paso_FCTransportProblem. | |
TransportProblemAdapter (Paso_FCTransportProblem *transport_problem, const double theta, const int block_size, const escript::FunctionSpace &functionspace) | |
~TransportProblemAdapter () | |
Destructor for TransportProblemAdapter. As specified in the constructor this deallocates the pointer given to the constructor. | |
Paso_FCTransportProblem * | getPaso_FCTransportProblem () const |
Returns the pointer to the transport problem. | |
const escript::AbstractTransportProblem & | asAbstractTransportProblem () const |
Returns the transport problem as a const AbstractTransportProblem&. | |
virtual void | resetTransport () const |
resets the transport operator typically as they have been updated. | |
virtual double | getSafeTimeStepSize () const |
returns a save time step size. | |
virtual double | getUnlimitedTimeStepSize () const |
returns the value for unlimited time step size. | |
Static Public Member Functions | |
static const TransportProblemAdapter & | asTransportProblemAdapter (const AbstractTransportProblem &transportproblem) |
Returns a transport problem as a const TransportProblemAdapter&. | |
Private Member Functions | |
virtual void | setToSolution (escript::Data &out, escript::Data &source, const double dt, boost::python::object &options) const |
sets solution out by time step dt. | |
virtual void | copyInitialValue (escript::Data &u) const |
copies the initial value into the problem | |
virtual void | copyConstraint (escript::Data &source, escript::Data &q, escript::Data &r, const double factor) const |
copy constraint u_{,t}=r where q>0 into the problem it is assumed that q and r are not empty and has appropriate shape and function space. | |
Private Attributes | |
boost::shared_ptr < Paso_FCTransportProblem > | m_transport_problem |
finley::TransportProblemAdapter::TransportProblemAdapter | ( | ) |
Wrapper for Paso_FCTransportProblem.
Description: Wrapper for Paso_FCTransportProblem. /brief Default Constructor for TransportProblemAdapter. NB: Only throws an exception.
finley::TransportProblemAdapter::TransportProblemAdapter | ( | Paso_FCTransportProblem * | transport_problem, | |
const double | theta, | |||
const int | block_size, | |||
const escript::FunctionSpace & | functionspace | |||
) |
/brief Constructor for TransportProblemAdapter.
References m_transport_problem.
finley::TransportProblemAdapter::~TransportProblemAdapter | ( | ) |
Destructor for TransportProblemAdapter. As specified in the constructor this deallocates the pointer given to the constructor.
References m_transport_problem, and Paso_FCTransportProblem_free().
Paso_FCTransportProblem * finley::TransportProblemAdapter::getPaso_FCTransportProblem | ( | ) | const |
Returns the pointer to the transport problem.
References m_transport_problem.
Referenced by finley::MeshAdapter::addPDEToTransportProblem(), copyConstraint(), copyInitialValue(), getSafeTimeStepSize(), resetTransport(), and setToSolution().
const escript::AbstractTransportProblem& finley::TransportProblemAdapter::asAbstractTransportProblem | ( | ) | const [inline] |
Returns the transport problem as a const AbstractTransportProblem&.
static const TransportProblemAdapter& finley::TransportProblemAdapter::asTransportProblemAdapter | ( | const AbstractTransportProblem & | transportproblem | ) | [inline, static] |
Returns a transport problem as a const TransportProblemAdapter&.
void finley::TransportProblemAdapter::resetTransport | ( | ) | const [virtual] |
resets the transport operator typically as they have been updated.
Reimplemented from escript::AbstractTransportProblem.
References finley::checkPasoError(), getPaso_FCTransportProblem(), and Paso_FCTransportProblem_reset().
Referenced by BOOST_PYTHON_MODULE().
double finley::TransportProblemAdapter::getSafeTimeStepSize | ( | ) | const [virtual] |
returns a save time step size.
Reimplemented from escript::AbstractTransportProblem.
References finley::checkPasoError(), getPaso_FCTransportProblem(), and Paso_FCTransportProblem_getSafeTimeStepSize().
Referenced by BOOST_PYTHON_MODULE().
double finley::TransportProblemAdapter::getUnlimitedTimeStepSize | ( | ) | const [virtual] |
returns the value for unlimited time step size.
Reimplemented from escript::AbstractTransportProblem.
References LARGE_POSITIVE_FLOAT.
Referenced by BOOST_PYTHON_MODULE().
void finley::TransportProblemAdapter::setToSolution | ( | escript::Data & | out, | |
escript::Data & | source, | |||
const double | dt, | |||
boost::python::object & | options | |||
) | const [private, virtual] |
sets solution out by time step dt.
Reimplemented from escript::AbstractTransportProblem.
References finley::checkPasoError(), finley::SystemMatrixAdapter::escriptToPasoOptions(), escript::Data::expand(), escript::AbstractTransportProblem::getBlockSize(), escript::Data::getDataPointSize(), escript::AbstractTransportProblem::getFunctionSpace(), escript::Data::getFunctionSpace(), getPaso_FCTransportProblem(), escript::Data::getSampleDataRW(), Paso_SolverFCT_solve(), finley::SystemMatrixAdapter::pasoToEscriptOptions(), and escript::Data::requireWrite().
void finley::TransportProblemAdapter::copyInitialValue | ( | escript::Data & | u | ) | const [private, virtual] |
copies the initial value into the problem
Reimplemented from escript::AbstractTransportProblem.
References finley::checkPasoError(), escript::Data::expand(), escript::AbstractTransportProblem::getBlockSize(), escript::Data::getDataPointSize(), escript::AbstractTransportProblem::getFunctionSpace(), escript::Data::getFunctionSpace(), getPaso_FCTransportProblem(), escript::Data::getSampleDataRW(), Paso_FCTransportProblem_checkinSolution(), and escript::Data::requireWrite().
void finley::TransportProblemAdapter::copyConstraint | ( | escript::Data & | source, | |
escript::Data & | q, | |||
escript::Data & | r, | |||
const double | factor | |||
) | const [private, virtual] |
copy constraint u_{,t}=r where q>0 into the problem it is assumed that q and r are not empty and has appropriate shape and function space.
Reimplemented from escript::AbstractTransportProblem.
References finley::checkPasoError(), escript::Data::copyWithMask(), escript::Data::expand(), escript::AbstractTransportProblem::getBlockSize(), escript::Data::getDataPointShape(), escript::Data::getDataPointSize(), escript::AbstractTransportProblem::getFunctionSpace(), escript::Data::getFunctionSpace(), getPaso_FCTransportProblem(), escript::Data::getSampleDataRW(), Paso_FCTransportProblem::mass_matrix, Paso_FCTransportProblem_insertConstraint(), Paso_FCTransportProblem_setUpConstraint(), Paso_SystemMatrix_MatrixVector(), Paso_SystemMatrix_nullifyRows(), Paso_SystemMatrix_nullifyRowsAndCols(), escript::Data::requireWrite(), and Paso_FCTransportProblem::transport_matrix.
boost::shared_ptr<Paso_FCTransportProblem> finley::TransportProblemAdapter::m_transport_problem [private] |
Referenced by getPaso_FCTransportProblem(), TransportProblemAdapter(), and ~TransportProblemAdapter().