Go to the documentation of this file.
18 #ifndef __PASO_FCTSOLVER_H__
19 #define __PASO_FCTSOLVER_H__
75 #endif // __PASO_FCTSOLVER_H__
static const real_t EPSILON
Definition: ReactiveSolver.cpp:41
static const real_t LARGE_POSITIVE_FLOAT
Definition: FCT_Solver.cpp:44
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:51
boost::shared_ptr< const Coupler< T > > const_Coupler_ptr
Definition: Coupler.h:44
double omega
Definition: FCT_Solver.h:63
void setAntiDiffusionFlux_CN(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:386
double lsup(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global Lsup of x
Definition: PasoUtil.cpp:467
index_t method
Definition: FCT_Solver.h:62
void setAntiDiffusionFlux_BE(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:437
@ Divergence
Definition: Paso.h:50
SolverResult updateLCN(double *u, double *u_old, Options *options, Performance *pp)
linear crank-nicolson update
Definition: FCT_Solver.cpp:144
void Performance_startMonitor(Performance *pp, int monitor)
switches on a monitor
Definition: performance.cpp:164
void addLimitedFluxes_Complete(double *b)
Definition: FluxLimiter.cpp:208
double dt
Definition: FCT_Solver.h:64
this class holds a (distributed) stiffness matrix
Definition: SystemMatrix.h:49
void solve_free(SystemMatrix *in)
Definition: solve.cpp:129
void setU_tilde(const double *Mu_tilde)
Definition: FluxLimiter.cpp:63
Definition: Coupler.h:101
Coupler_ptr< real_t > u_tilde_coupler
Definition: FluxLimiter.h:54
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:41
double tolerance
Definition: Options.h:113
Coupler_ptr< real_t > u_coupler
Definition: FCT_Solver.h:68
Definition: FluxLimiter.h:28
#define PASO_CRANK_NICOLSON
Definition: Options.h:71
double * b
Definition: FCT_Solver.h:65
escript::JMPI mpi_info
Definition: FCT_Solver.h:60
real_t real_t_max()
Returns the maximum finite value for the real_t type.
Definition: DataTypes.h:89
boost::shared_ptr< const SystemMatrixPattern > const_SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:42
@ InputError
Definition: Paso.h:46
bool verbose
Definition: Options.h:117
escript::JMPI mpi_info
Definition: FluxLimiter.h:47
SolverResult updateNL(double *u, double *u_old, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:212
static void setLowOrderOperator(TransportProblem_ptr tp)
Definition: FCT_Solver.cpp:598
void copy(dim_t N, double *out, const double *in)
out = in
Definition: PasoUtil.h:88
~FCT_Solver()
Definition: FCT_Solver.cpp:75
SolverResult Solver_BiCGStab(SystemMatrix_ptr A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
Definition: BiCGStab.cpp:78
double * du
Definition: FCT_Solver.h:67
SolverResult update(double *u, double *u_old, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:126
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:101
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:340
boost::shared_ptr< TransportProblem > TransportProblem_ptr
Definition: Transport.h:32
double l2(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global L2 norm of x
Definition: PasoUtil.cpp:502
index_t dim_t
Definition: DataTypes.h:65
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
double getTheta()
Definition: FCT_Solver.h:54
#define PASO_LINEAR_CRANK_NICOLSON
Definition: Options.h:70
boost::shared_ptr< Coupler< T > > Coupler_ptr
Definition: Coupler.h:43
void setMuPaLu(double *out, const_Coupler_ptr< real_t > coupler, double a)
Definition: FCT_Solver.cpp:667
void setAntiDiffusionFlux_linearCN(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:493
static double getSafeTimeStepSize(const_TransportProblem_ptr tp)
Definition: FCT_Solver.cpp:546
Coupler_ptr< real_t > u_old_coupler
Definition: FCT_Solver.h:69
double * u_tilde
Definition: FluxLimiter.h:49
SolverResult
Definition: Paso.h:43
dim_t iter_max
Definition: Options.h:120
@ MaxIterReached
Definition: Paso.h:45
SystemMatrix_ptr antidiffusive_fluxes
Definition: FluxLimiter.h:46
bool use_local_preconditioner
Definition: Options.h:129
boost::shared_ptr< const SystemMatrix > const_SystemMatrix_ptr
Definition: SystemMatrix.h:43
#define PASO_GS
Definition: Options.h:63
Definition: FCT_Solver.h:29
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:34
void addLimitedFluxes_Start()
Definition: FluxLimiter.cpp:138
#define MPI_DOUBLE
Definition: EsysMPI.h:47
#define MPI_MIN
Definition: EsysMPI.h:53
int ode_solver
Definition: Options.h:131
Definition: Preconditioner.h:37
PasoException exception class.
Definition: PasoException.h:34
int preconditioner
Definition: Options.h:119
void scale(dim_t N, double *x, double a)
x = a*x
Definition: PasoUtil.h:94
#define PASO_JACOBI
Definition: Options.h:47
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:60
void Performance_stopMonitor(Performance *pp, int monitor)
switches off a monitor
Definition: performance.cpp:183
FCT_FluxLimiter * flux_limiter
Definition: FCT_Solver.h:61
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:128
int sweeps
Definition: Options.h:126
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:320
#define MIN3(_arg1_, _arg2_, _arg3_)
Definition: FCT_Solver.cpp:40
#define PASO_DLL_API
Definition: Paso.h:60
static dim_t M
Definition: SparseMatrix_saveHB.cpp:38
real_t real_t_eps()
Returns the machine epsilon for the real_t type.
Definition: DataTypes.h:98
const_TransportProblem_ptr transportproblem
Definition: FCT_Solver.h:59
#define PASO_BACKWARD_EULER
Definition: Options.h:72
double absolute_tolerance
Definition: Options.h:114
Definition: BiCGStab.cpp:26
double * z
Definition: FCT_Solver.h:66
@ NoError
Definition: Paso.h:44
void initialize(double dt, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:84
dim_t num_iter
Definition: Options.h:134
FCT_Solver(const_TransportProblem_ptr tp, Options *options)
Definition: FCT_Solver.cpp:46