escript
Revision_Unversioneddirectory
|
#include <Transport.h>
Public Member Functions | |
TransportProblem (SystemMatrixPattern_ptr pattern, int block_size) | |
~TransportProblem () | |
void | reset () |
void | solve (double *u, double dt, double *u0, double *q, Options *options) |
double | getSafeTimeStepSize () |
void | insertConstraint (const double *r, double *source) |
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 |
Static Public Member Functions | |
static index_t | getTypeId (index_t solver, index_t preconditioner, index_t package, bool symmetry, const esysUtils::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 |
esysUtils::JMPI | mpi_info |
paso::TransportProblem::TransportProblem | ( | SystemMatrixPattern_ptr | pattern, |
int | block_size | ||
) |
paso::TransportProblem::~TransportProblem | ( | ) |
|
inline |
References transport_matrix.
|
inline |
References lumped_mass_matrix.
|
inline |
References mass_matrix.
|
inline |
References mass_matrix.
|
inline |
References transport_matrix.
|
inline |
References transport_matrix.
Referenced by solve().
double paso::TransportProblem::getSafeTimeStepSize | ( | ) |
References constraint_mask, dt_max_R, dt_max_T, Esys_noError(), Esys_setError(), paso::FCT_Solver::getSafeTimeStepSize(), paso::ReactiveSolver::getSafeTimeStepSize(), lumped_mass_matrix, main_diagonal_mass_matrix, mass_matrix, MAX, MIN, mpi_info, MPI_INT, MPI_MAX, reactive_matrix, transport_matrix, valid_matrices, and VALUE_ERROR.
Referenced by solve().
|
inline |
References transport_matrix.
|
inlinestatic |
References MATRIX_FORMAT_BLK1, and MATRIX_FORMAT_DEFAULT.
Referenced by paso::TransportProblemAdapter::getTransportTypeId().
void paso::TransportProblem::insertConstraint | ( | const double * | r, |
double * | source | ||
) |
References constraint_mask, and transport_matrix.
void paso::TransportProblem::reset | ( | ) |
References constraint_mask, iteration_matrix, mass_matrix, paso::solve_free(), transport_matrix, valid_matrices, and paso::util::zeroes().
void paso::TransportProblem::setUpConstraint | ( | const double * | q | ) |
References constraint_mask, Esys_setError(), transport_matrix, valid_matrices, and VALUE_ERROR.
void paso::TransportProblem::solve | ( | double * | u, |
double | dt, | ||
double * | u0, | ||
double * | q, | ||
Options * | options | ||
) |
References paso::util::copy(), dt_max_R, dt_max_T, EPSILON, Esys_noError(), Esys_setError(), getBlockSize(), getSafeTimeStepSize(), paso::ReactiveSolver::initialize(), paso::FCT_Solver::initialize(), LARGE_POSITIVE_FLOAT, MEMORY_ERROR, MIN, paso::Options::num_iter, paso::Options::ode_solver, PASO_BACKWARD_EULER, PASO_CRANK_NICOLSON, PASO_LINEAR_CRANK_NICOLSON, paso::ReactiveSolver::solve(), SOLVER_BREAKDOWN, SOLVER_DIVERGENCE, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NEGATIVE_NORM_ERROR, SOLVER_NO_ERROR, SYSTEM_ERROR, paso::Options::time_step_backtracking_used, transport_matrix, paso::FCT_Solver::update(), VALUE_ERROR, and paso::Options::verbose.
double* paso::TransportProblem::constraint_mask |
Referenced by getSafeTimeStepSize(), insertConstraint(), reset(), setUpConstraint(), TransportProblem(), and ~TransportProblem().
double paso::TransportProblem::dt_max_R |
safe time step size for reactive part
Referenced by getSafeTimeStepSize(), and solve().
double paso::TransportProblem::dt_max_T |
safe time step size for transport part
Referenced by getSafeTimeStepSize(), and solve().
SystemMatrix_ptr paso::TransportProblem::iteration_matrix |
Referenced by reset().
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(), getSafeTimeStepSize(), reset(), and TransportProblem().
esysUtils::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 |
bool paso::TransportProblem::valid_matrices |
Referenced by getSafeTimeStepSize(), reset(), and setUpConstraint().