escript
Revision_
|
#include <Transport.h>
Public Member Functions | |
TransportProblem () | |
Default constructor - throws exception. More... | |
TransportProblem (SystemMatrixPattern_ptr pattern, int blocksize, const escript::FunctionSpace &functionspace) | |
~TransportProblem () | |
virtual void | resetTransport () const |
resets the transport operator typically as they have been updated. More... | |
void | solve (double *u, double dt, double *u0, double *q, Options *options) |
virtual double | getSafeTimeStepSize () const |
virtual double | getUnlimitedTimeStepSize () const |
void | insertConstraint (const double *r, double *source) const |
void | setUpConstraint (const double *q) |
dim_t | getBlockSize () const |
SystemMatrix_ptr | borrowTransportMatrix () const |
SystemMatrix_ptr | borrowMassMatrix () const |
double * | borrowLumpedMassMatrix () const |
dim_t | getTotalNumRows () const |
Connector_ptr | borrowConnector () const |
index_t * | borrowMainDiagonalPointer () const |
![]() | |
AbstractTransportProblem () | |
Default constructor for AbstractTransportProblem. More... | |
AbstractTransportProblem (const int blocksize, const FunctionSpace &functionspace) | |
virtual | ~AbstractTransportProblem () |
Destructor. More... | |
int | isEmpty () const |
FunctionSpace | getFunctionSpace () const |
returns the column function space More... | |
int | getBlockSize () const |
returns the block size More... | |
Data | solve (Data &u0, Data &source, const double dt, boost::python::object &options) |
returns the solution u for a time step dt>0 with initial value u0 at time t=0 More... | |
void | insertConstraint (Data &source, Data &q, Data &r) |
inserts constraint u_{,t}=r where q>0 into the problem More... | |
Static Public Member Functions | |
static int | getTypeId (int solver, int preconditioner, int package, bool symmetry, const escript::JMPI &mpi_info) |
Public Attributes | |
SystemMatrix_ptr | transport_matrix |
SystemMatrix_ptr | mass_matrix |
SystemMatrix_ptr | iteration_matrix |
bool | valid_matrices |
double | dt_max_R |
safe time step size for reactive part More... | |
double | dt_max_T |
safe time step size for transport part More... | |
double * | constraint_mask |
double * | main_diagonal_low_order_transport_matrix |
double * | lumped_mass_matrix |
double * | reactive_matrix |
double * | main_diagonal_mass_matrix |
escript::JMPI | mpi_info |
Private Member Functions | |
virtual void | setToSolution (escript::Data &out, escript::Data &u0, escript::Data &source, double dt, boost::python::object &options) |
sets solution out by time step dt. More... | |
virtual void | copyConstraint (escript::Data &source, escript::Data &q, escript::Data &r) |
copy constraint u_{,t}=r where q>0 into the problem it can be assumed that q and r are not empty and have appropriate shape and function space. More... | |
paso::TransportProblem::TransportProblem | ( | ) |
Default constructor - throws exception.
paso::TransportProblem::TransportProblem | ( | SystemMatrixPattern_ptr | pattern, |
int | blocksize, | ||
const escript::FunctionSpace & | functionspace | ||
) |
paso::TransportProblem::~TransportProblem | ( | ) |
|
inline |
References transport_matrix.
|
inline |
References lumped_mass_matrix.
|
inline |
References mass_matrix.
|
inline |
|
inline |
|
privatevirtual |
copy constraint u_{,t}=r where q>0 into the problem it can be assumed that q and r are not empty and have appropriate shape and function space.
Reimplemented from escript::AbstractTransportProblem.
References escript::Data::copyWithMask(), escript::Data::expand(), getBlockSize(), escript::Data::getDataPointShape(), escript::Data::getDataPointSize(), escript::AbstractTransportProblem::getFunctionSpace(), escript::Data::getFunctionSpace(), escript::Data::getSampleDataRW(), insertConstraint(), mass_matrix, escript::Data::requireWrite(), setUpConstraint(), and transport_matrix.
|
inline |
References transport_matrix.
Referenced by copyConstraint(), setToSolution(), and solve().
|
virtual |
Reimplemented from escript::AbstractTransportProblem.
References constraint_mask, dt_max_R, dt_max_T, paso::ReactiveSolver::getSafeTimeStepSize(), paso::FCT_Solver::getSafeTimeStepSize(), lumped_mass_matrix, main_diagonal_mass_matrix, mass_matrix, mpi_info, MPI_INT, MPI_MAX, reactive_matrix, transport_matrix, and valid_matrices.
Referenced by solve().
|
inline |
References transport_matrix.
|
inlinestatic |
References MATRIX_FORMAT_BLK1, and MATRIX_FORMAT_DEFAULT.
Referenced by ripley::RipleyDomain::getTransportTypeId(), dudley::DudleyDomain::getTransportTypeId(), and finley::FinleyDomain::getTransportTypeId().
|
virtual |
Reimplemented from escript::AbstractTransportProblem.
void paso::TransportProblem::insertConstraint | ( | const double * | r, |
double * | source | ||
) | const |
References constraint_mask, and transport_matrix.
Referenced by copyConstraint().
|
virtual |
resets the transport operator typically as they have been updated.
Reimplemented from escript::AbstractTransportProblem.
References constraint_mask, iteration_matrix, mass_matrix, paso::solve_free(), transport_matrix, valid_matrices, and paso::util::zeroes().
|
privatevirtual |
sets solution out by time step dt.
Reimplemented from escript::AbstractTransportProblem.
References escript::Data::expand(), getBlockSize(), escript::Data::getDataPointSize(), escript::AbstractTransportProblem::getFunctionSpace(), escript::Data::getFunctionSpace(), escript::Data::getSampleDataRW(), escript::Data::requireWrite(), solve(), and paso::Options::updateEscriptDiagnostics().
void paso::TransportProblem::setUpConstraint | ( | const double * | q | ) |
References constraint_mask, transport_matrix, and valid_matrices.
Referenced by copyConstraint().
void paso::TransportProblem::solve | ( | double * | u, |
double | dt, | ||
double * | u0, | ||
double * | q, | ||
Options * | options | ||
) |
References paso::Breakdown, paso::util::copy(), paso::Divergence, dt_max_R, dt_max_T, paso::EPSILON, getBlockSize(), getSafeTimeStepSize(), paso::ReactiveSolver::initialize(), paso::FCT_Solver::initialize(), paso::InputError, paso::LARGE_POSITIVE_FLOAT, paso::MaxIterReached, paso::MemoryError, paso::NegativeNormError, paso::NoError, paso::Options::num_iter, paso::Options::ode_solver, PASO_BACKWARD_EULER, PASO_CRANK_NICOLSON, PASO_LINEAR_CRANK_NICOLSON, escript::DataTypes::real_t_eps(), escript::DataTypes::real_t_max(), paso::ReactiveSolver::solve(), paso::Options::time_step_backtracking_used, transport_matrix, paso::FCT_Solver::update(), and paso::Options::verbose.
Referenced by setToSolution().
|
mutable |
Referenced by getSafeTimeStepSize(), insertConstraint(), resetTransport(), setUpConstraint(), TransportProblem(), and ~TransportProblem().
|
mutable |
safe time step size for reactive part
Referenced by getSafeTimeStepSize(), and solve().
|
mutable |
safe time step size for transport part
Referenced by getSafeTimeStepSize(), and solve().
SystemMatrix_ptr paso::TransportProblem::iteration_matrix |
Referenced by resetTransport().
double* paso::TransportProblem::lumped_mass_matrix |
'relevant' lumped mass matrix is assumed to be positive. Values with corresponding constraint_mask > 0 value are set to -1 to indicate the value infinity
Referenced by borrowLumpedMassMatrix(), getSafeTimeStepSize(), TransportProblem(), and ~TransportProblem().
double* paso::TransportProblem::main_diagonal_low_order_transport_matrix |
Referenced by TransportProblem(), and ~TransportProblem().
double* paso::TransportProblem::main_diagonal_mass_matrix |
Referenced by getSafeTimeStepSize(), TransportProblem(), and ~TransportProblem().
SystemMatrix_ptr paso::TransportProblem::mass_matrix |
Referenced by borrowMainDiagonalPointer(), borrowMassMatrix(), copyConstraint(), getSafeTimeStepSize(), resetTransport(), and TransportProblem().
escript::JMPI paso::TransportProblem::mpi_info |
Referenced by getSafeTimeStepSize(), and TransportProblem().
double* paso::TransportProblem::reactive_matrix |
Referenced by getSafeTimeStepSize(), TransportProblem(), and ~TransportProblem().
SystemMatrix_ptr paso::TransportProblem::transport_matrix |
|
mutable |
Referenced by getSafeTimeStepSize(), resetTransport(), and setUpConstraint().