18 #ifndef __PASO_TRANSPORT_H__ 19 #define __PASO_TRANSPORT_H__ 21 #define DT_FACTOR_MAX 100000. 27 #include <escript/AbstractTransportProblem.h> 36 public boost::enable_shared_from_this<TransportProblem>
49 void solve(
double* u,
double dt,
double* u0,
double* q,
Options* options);
91 return mass_matrix->mainBlock->borrowMainDiagonalPointer();
94 inline static int getTypeId(
int solver,
int preconditioner,
95 int package,
bool symmetry,
125 boost::python::object& options);
133 #endif // __PASO_TRANSPORT_H__ Definition: FunctionSpace.h:34
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:31
double * main_diagonal_mass_matrix
Definition: Transport.h:118
SystemMatrix_ptr mass_matrix
Definition: Transport.h:102
Connector_ptr borrowConnector() const
Definition: Transport.h:84
double * constraint_mask
Definition: Transport.h:110
double * main_diagonal_low_order_transport_matrix
Definition: Transport.h:112
void insertConstraint(const double *r, double *source) const
Definition: Transport.cpp:214
SystemMatrix_ptr borrowTransportMatrix() const
Definition: Transport.h:64
double * reactive_matrix
Definition: Transport.h:117
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
TransportProblem()
Default constructor - throws exception.
dim_t getTotalNumRows() const
Definition: Transport.h:79
SystemMatrix_ptr borrowMassMatrix() const
Definition: Transport.h:69
boost::shared_ptr< SystemMatrixPattern > SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:39
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:40
index_t * borrowMainDiagonalPointer() const
Definition: Transport.h:89
void setUpConstraint(const double *q)
Definition: Transport.cpp:196
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:59
double * borrowLumpedMassMatrix() const
Definition: Transport.h:74
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 ...
Definition: Transport.cpp:124
static int getTypeId(int solver, int preconditioner, int package, bool symmetry, const escript::JMPI &mpi_info)
Definition: Transport.h:94
Definition: Transport.h:35
Data represents a collection of datapoints.
Definition: Data.h:63
double dt_max_R
safe time step size for reactive part
Definition: Transport.h:107
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:33
virtual void resetTransport() const
resets the transport operator typically as they have been updated.
Definition: Transport.cpp:180
#define MATRIX_FORMAT_DEFAULT
Definition: Paso.h:60
escript::JMPI mpi_info
Definition: Transport.h:120
void solve(double *u, double dt, double *u0, double *q, Options *options)
Definition: Transport_solve.cpp:50
SystemMatrix_ptr transport_matrix
Definition: Transport.h:101
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:43
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:37
dim_t getBlockSize() const
Definition: Transport.h:59
~TransportProblem()
Definition: Transport.cpp:85
#define MATRIX_FORMAT_BLK1
Definition: Paso.h:62
virtual double getUnlimitedTimeStepSize() const
Definition: Transport.cpp:190
double * lumped_mass_matrix
Definition: Transport.h:116
virtual double getSafeTimeStepSize() const
Definition: Transport_solve.cpp:193
SystemMatrix_ptr iteration_matrix
Definition: Transport.h:103
bool valid_matrices
Definition: Transport.h:105
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.
Definition: Transport.cpp:94
double dt_max_T
safe time step size for transport part
Definition: Transport.h:109
index_t dim_t
Definition: DataTypes.h:64