escript  Revision_
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | List of all members
paso::TransportProblem Class Reference

#include <Transport.h>

Inheritance diagram for paso::TransportProblem:
escript::AbstractTransportProblem

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
 
- Public Member Functions inherited from escript::AbstractTransportProblem
 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...
 

Constructor & Destructor Documentation

◆ TransportProblem() [1/2]

paso::TransportProblem::TransportProblem ( )

Default constructor - throws exception.

◆ TransportProblem() [2/2]

paso::TransportProblem::TransportProblem ( SystemMatrixPattern_ptr  pattern,
int  blocksize,
const escript::FunctionSpace functionspace 
)

◆ ~TransportProblem()

paso::TransportProblem::~TransportProblem ( )

Member Function Documentation

◆ borrowConnector()

Connector_ptr paso::TransportProblem::borrowConnector ( ) const
inline

References transport_matrix.

◆ borrowLumpedMassMatrix()

double* paso::TransportProblem::borrowLumpedMassMatrix ( ) const
inline

References lumped_mass_matrix.

◆ borrowMainDiagonalPointer()

index_t* paso::TransportProblem::borrowMainDiagonalPointer ( ) const
inline

References mass_matrix.

◆ borrowMassMatrix()

SystemMatrix_ptr paso::TransportProblem::borrowMassMatrix ( ) const
inline

◆ borrowTransportMatrix()

SystemMatrix_ptr paso::TransportProblem::borrowTransportMatrix ( ) const
inline

◆ copyConstraint()

void paso::TransportProblem::copyConstraint ( escript::Data source,
escript::Data q,
escript::Data r 
)
privatevirtual

◆ getBlockSize()

dim_t paso::TransportProblem::getBlockSize ( ) const
inline

References transport_matrix.

Referenced by copyConstraint(), setToSolution(), and solve().

◆ getSafeTimeStepSize()

double paso::TransportProblem::getSafeTimeStepSize ( ) const
virtual

◆ getTotalNumRows()

dim_t paso::TransportProblem::getTotalNumRows ( ) const
inline

References transport_matrix.

◆ getTypeId()

static int paso::TransportProblem::getTypeId ( int  solver,
int  preconditioner,
int  package,
bool  symmetry,
const escript::JMPI mpi_info 
)
inlinestatic

◆ getUnlimitedTimeStepSize()

double paso::TransportProblem::getUnlimitedTimeStepSize ( ) const
virtual

Reimplemented from escript::AbstractTransportProblem.

◆ insertConstraint()

void paso::TransportProblem::insertConstraint ( const double *  r,
double *  source 
) const

References constraint_mask, and transport_matrix.

Referenced by copyConstraint().

◆ resetTransport()

void paso::TransportProblem::resetTransport ( ) const
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().

◆ setToSolution()

void paso::TransportProblem::setToSolution ( escript::Data out,
escript::Data u0,
escript::Data source,
double  dt,
boost::python::object &  options 
)
privatevirtual

◆ setUpConstraint()

void paso::TransportProblem::setUpConstraint ( const double *  q)

◆ solve()

void paso::TransportProblem::solve ( double *  u,
double  dt,
double *  u0,
double *  q,
Options options 
)

Member Data Documentation

◆ constraint_mask

double* paso::TransportProblem::constraint_mask
mutable

◆ dt_max_R

double paso::TransportProblem::dt_max_R
mutable

safe time step size for reactive part

Referenced by getSafeTimeStepSize(), and solve().

◆ dt_max_T

double paso::TransportProblem::dt_max_T
mutable

safe time step size for transport part

Referenced by getSafeTimeStepSize(), and solve().

◆ iteration_matrix

SystemMatrix_ptr paso::TransportProblem::iteration_matrix

Referenced by resetTransport().

◆ lumped_mass_matrix

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().

◆ main_diagonal_low_order_transport_matrix

double* paso::TransportProblem::main_diagonal_low_order_transport_matrix

◆ main_diagonal_mass_matrix

double* paso::TransportProblem::main_diagonal_mass_matrix

◆ mass_matrix

SystemMatrix_ptr paso::TransportProblem::mass_matrix

◆ mpi_info

escript::JMPI paso::TransportProblem::mpi_info

◆ reactive_matrix

double* paso::TransportProblem::reactive_matrix

◆ transport_matrix

SystemMatrix_ptr paso::TransportProblem::transport_matrix

◆ valid_matrices

bool paso::TransportProblem::valid_matrices
mutable

The documentation for this class was generated from the following files: