19#ifndef __PASO_TRANSPORT_H__
20#define __PASO_TRANSPORT_H__
22#define DT_FACTOR_MAX 100000.
28#include <escript/AbstractTransportProblem.h>
37 public boost::enable_shared_from_this<TransportProblem>
48 virtual void resetTransport(
bool preserveSolverData)
const;
50 void solve(
double* u,
double dt,
double* u0,
double* q,
Options* options);
52 virtual double getSafeTimeStepSize()
const;
54 virtual double getUnlimitedTimeStepSize()
const;
56 void insertConstraint(
const double* r,
double* source)
const;
58 void setUpConstraint(
const double* q);
62 return transport_matrix->row_block_size;
67 return transport_matrix;
77 return lumped_mass_matrix;
82 return transport_matrix->getTotalNumRows();
87 return transport_matrix->pattern->col_connector;
92 return mass_matrix->mainBlock->borrowMainDiagonalPointer();
95 inline static int getTypeId(
int solver,
int preconditioner,
96 int package,
bool symmetry,
126 boost::python::object& options);
#define MATRIX_FORMAT_BLK1
Definition: Paso.h:63
#define MATRIX_FORMAT_DEFAULT
Definition: Paso.h:61
Give a short description of what AbstractTransportProblem does.
Definition: AbstractTransportProblem.h:45
Data represents a collection of datapoints.
Definition: Data.h:64
Definition: FunctionSpace.h:36
Definition: Transport.h:38
index_t * borrowMainDiagonalPointer() const
Definition: Transport.h:90
SystemMatrix_ptr< double > transport_matrix
Definition: Transport.h:102
bool valid_matrices
Definition: Transport.h:106
double * borrowLumpedMassMatrix() const
Definition: Transport.h:75
SystemMatrix_ptr< double > mass_matrix
Definition: Transport.h:103
SystemMatrix_ptr< double > borrowTransportMatrix() const
Definition: Transport.h:65
double * reactive_matrix
Definition: Transport.h:118
static int getTypeId(int solver, int preconditioner, int package, bool symmetry, const escript::JMPI &mpi_info)
Definition: Transport.h:95
dim_t getBlockSize() const
Definition: Transport.h:60
double * main_diagonal_mass_matrix
Definition: Transport.h:119
Connector_ptr borrowConnector() const
Definition: Transport.h:85
escript::JMPI mpi_info
Definition: Transport.h:121
dim_t getTotalNumRows() const
Definition: Transport.h:80
double * constraint_mask
Definition: Transport.h:111
SystemMatrix_ptr< double > iteration_matrix
Definition: Transport.h:104
SystemMatrix_ptr< double > borrowMassMatrix() const
Definition: Transport.h:70
double * main_diagonal_low_order_transport_matrix
Definition: Transport.h:113
double dt_max_T
safe time step size for transport part
Definition: Transport.h:110
double * lumped_mass_matrix
Definition: Transport.h:117
double dt_max_R
safe time step size for reactive part
Definition: Transport.h:108
TransportProblem()
Default constructor - throws exception.
index_t dim_t
Definition: DataTypes.h:66
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:61
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:76
Definition: BiCGStab.cpp:25
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:33
boost::shared_ptr< SystemMatrix< T > > SystemMatrix_ptr
Definition: SystemMatrix.h:42
boost::shared_ptr< SystemMatrixPattern > SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:41
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:39
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:34
#define PASO_DLL_API
Definition: paso/src/system_dep.h:29