npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
npstat::HeatEq1DNeumannBoundary Class Reference

Public Member Functions

 HeatEq1DNeumannBoundary (const double *thermalDiffusivity, unsigned nx, double spatialStep, double dt)
 
double dt () const
 
double time () const
 
unsigned nCoords () const
 
double intervalWidth () const
 
void step ()
 
unsigned long nSteps () const
 
double gfWidth (unsigned index) const
 
Matrix< double > GF () const
 
Matrix< double > GFT () const
 
Matrix< double > doublyStochasticGF (double tol, unsigned maxIter) const
 
Matrix< double > doublyStochasticGFT (double tol, unsigned maxIter) const
 
Matrix< lapack_double > diffScheme () const
 
double maxAbsEigen () const
 

Constructor & Destructor Documentation

◆ HeatEq1DNeumannBoundary()

npstat::HeatEq1DNeumannBoundary::HeatEq1DNeumannBoundary ( const double *  thermalDiffusivity,
unsigned  nx,
double  spatialStep,
double  dt 
)

The number of spatial discretization points, nx, must be at least 3

Member Function Documentation

◆ diffScheme()

Matrix<lapack_double> npstat::HeatEq1DNeumannBoundary::diffScheme ( ) const

Matrix representing the differencing scheme. Note that this code is rather slow as it requires O(nx^3) operations.

◆ doublyStochasticGF()

Matrix<double> npstat::HeatEq1DNeumannBoundary::doublyStochasticGF ( double  tol,
unsigned  maxIter 
) const

Doubly stochastic approximation to the Green's function. Arguments "tol" and "maxIter" will be passed to the "makeCopulaSteps" method of the ArrayND class used to build the approximation. If "maxIter" is 0, a less reliable non-iterative method will be used that can produce some negative entries in the matrix.

◆ doublyStochasticGFT()

Matrix<double> npstat::HeatEq1DNeumannBoundary::doublyStochasticGFT ( double  tol,
unsigned  maxIter 
) const

Doubly stochastic approximation to the transposed Green's function. Arguments "tol" and "maxIter" will be passed to the "makeCopulaSteps" method of the ArrayND class used to build the approximation. If "maxIter" is 0, a less reliable non-iterative method will be used that can produce some negative entries in the matrix.

◆ dt()

double npstat::HeatEq1DNeumannBoundary::dt ( ) const
inline

A simple inspector of object properties

◆ GF()

Matrix<double> npstat::HeatEq1DNeumannBoundary::GF ( ) const

Note that the matrix representing the Green's Function changes after each step. To get the solution of the heat equation, multiply the GF matrix by the column of intitial conditions.

◆ GFT()

Matrix<double> npstat::HeatEq1DNeumannBoundary::GFT ( ) const

Transposed Green's function

◆ gfWidth()

double npstat::HeatEq1DNeumannBoundary::gfWidth ( unsigned  index) const

GF standard deviation for the given coordinate index. The index should be smaller than the "nx" argument provided in the constructor.

◆ maxAbsEigen()

double npstat::HeatEq1DNeumannBoundary::maxAbsEigen ( ) const

Maximum absolute eigenvalue of the differencing scheme matrix (for use in stability analysis). Note that this code is rather slow as it requires O(nx^3) operations.

◆ nSteps()

unsigned long npstat::HeatEq1DNeumannBoundary::nSteps ( ) const
inline

Number of time steps made so far

◆ step()

void npstat::HeatEq1DNeumannBoundary::step ( )

Evolve the system by time dt


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