Go to the documentation of this file.
17 #ifndef __PASO_FCTSOLVER_H__
18 #define __PASO_FCTSOLVER_H__
74 #endif // __PASO_FCTSOLVER_H__
static const real_t EPSILON
Definition: ReactiveSolver.cpp:52
static const real_t LARGE_POSITIVE_FLOAT
Definition: FCT_Solver.cpp:43
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:73
boost::shared_ptr< const Coupler< T > > const_Coupler_ptr
Definition: Coupler.h:54
double omega
Definition: FCT_Solver.h:85
void setAntiDiffusionFlux_CN(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:385
double lsup(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global Lsup of x
Definition: PasoUtil.cpp:489
index_t method
Definition: FCT_Solver.h:84
void setAntiDiffusionFlux_BE(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:436
SolverResult updateLCN(double *u, double *u_old, Options *options, Performance *pp)
linear crank-nicolson update
Definition: FCT_Solver.cpp:143
void Performance_startMonitor(Performance *pp, int monitor)
switches on a monitor
Definition: performance.cpp:174
void addLimitedFluxes_Complete(double *b)
Definition: FluxLimiter.cpp:218
double dt
Definition: FCT_Solver.h:86
this class holds a (distributed) stiffness matrix
Definition: SystemMatrix.h:58
void solve_free(SystemMatrix *in)
Definition: solve.cpp:140
void setU_tilde(const double *Mu_tilde)
Definition: FluxLimiter.cpp:73
Coupler_ptr< real_t > u_tilde_coupler
Definition: FluxLimiter.h:76
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:51
double tolerance
Definition: Options.h:111
Coupler_ptr< real_t > u_coupler
Definition: FCT_Solver.h:90
Definition: FluxLimiter.h:37
#define PASO_CRANK_NICOLSON
Definition: Options.h:69
double * b
Definition: FCT_Solver.h:87
escript::JMPI mpi_info
Definition: FCT_Solver.h:82
real_t real_t_max()
Returns the maximum finite value for the real_t type.
Definition: DataTypes.h:111
boost::shared_ptr< const SystemMatrixPattern > const_SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:52
bool verbose
Definition: Options.h:115
escript::JMPI mpi_info
Definition: FluxLimiter.h:69
SolverResult updateNL(double *u, double *u_old, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:211
static void setLowOrderOperator(TransportProblem_ptr tp)
Definition: FCT_Solver.cpp:597
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:110
~FCT_Solver()
Definition: FCT_Solver.cpp:74
SolverResult Solver_BiCGStab(SystemMatrix_ptr A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
Definition: BiCGStab.cpp:89
double * du
Definition: FCT_Solver.h:89
SolverResult update(double *u, double *u_old, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:125
void Preconditioner_Smoother_solve(SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
Definition: Smoother.cpp:111
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:362
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:30
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:524
index_t dim_t
Definition: DataTypes.h:87
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
double getTheta()
Definition: FCT_Solver.h:76
#define PASO_LINEAR_CRANK_NICOLSON
Definition: Options.h:68
boost::shared_ptr< Coupler< T > > Coupler_ptr
Definition: Coupler.h:53
void setMuPaLu(double *out, const_Coupler_ptr< real_t > coupler, double a)
Definition: FCT_Solver.cpp:666
void setAntiDiffusionFlux_linearCN(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:492
static double getSafeTimeStepSize(const_TransportProblem_ptr tp)
Definition: FCT_Solver.cpp:545
Coupler_ptr< real_t > u_old_coupler
Definition: FCT_Solver.h:91
double * u_tilde
Definition: FluxLimiter.h:71
SolverResult
Definition: Paso.h:53
dim_t iter_max
Definition: Options.h:118
SystemMatrix_ptr antidiffusive_fluxes
Definition: FluxLimiter.h:68
bool use_local_preconditioner
Definition: Options.h:127
boost::shared_ptr< const SystemMatrix > const_SystemMatrix_ptr
Definition: SystemMatrix.h:53
#define PASO_GS
Definition: Options.h:61
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:32
void addLimitedFluxes_Start()
Definition: FluxLimiter.cpp:148
#define MPI_DOUBLE
Definition: EsysMPI.h:45
#define MPI_MIN
Definition: EsysMPI.h:51
int ode_solver
Definition: Options.h:129
Definition: Preconditioner.h:46
PasoException exception class.
Definition: PasoException.h:43
int preconditioner
Definition: Options.h:117
void scale(dim_t N, double *x, double a)
x = a*x
Definition: PasoUtil.h:116
#define PASO_JACOBI
Definition: Options.h:45
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
void Performance_stopMonitor(Performance *pp, int monitor)
switches off a monitor
Definition: performance.cpp:193
FCT_FluxLimiter * flux_limiter
Definition: FCT_Solver.h:83
SolverResult Preconditioner_Smoother_solve_byTolerance(SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial)
Definition: Smoother.cpp:138
int sweeps
Definition: Options.h:124
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:342
#define MIN3(_arg1_, _arg2_, _arg3_)
Definition: FCT_Solver.cpp:39
#define PASO_DLL_API
Definition: Paso.h:58
static dim_t M
Definition: SparseMatrix_saveHB.cpp:48
real_t real_t_eps()
Returns the machine epsilon for the real_t type.
Definition: DataTypes.h:120
const_TransportProblem_ptr transportproblem
Definition: FCT_Solver.h:81
#define PASO_BACKWARD_EULER
Definition: Options.h:70
double absolute_tolerance
Definition: Options.h:112
Definition: BiCGStab.cpp:25
double * z
Definition: FCT_Solver.h:88
void initialize(double dt, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:83
dim_t num_iter
Definition: Options.h:132
FCT_Solver(const_TransportProblem_ptr tp, Options *options)
Definition: FCT_Solver.cpp:45