Go to the documentation of this file.
18 #ifndef __PASO_FCTSOLVER_H__
19 #define __PASO_FCTSOLVER_H__
74 #endif // __PASO_FCTSOLVER_H__
static const real_t EPSILON
Definition: ReactiveSolver.cpp:40
static const real_t LARGE_POSITIVE_FLOAT
Definition: FCT_Solver.cpp:43
#define PASO_DLL_API
Definition: paso/src/system_dep.h:29
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:52
boost::shared_ptr< const Coupler< T > > const_Coupler_ptr
Definition: Coupler.h:44
double omega
Definition: FCT_Solver.h:62
double lsup(dim_t n, const double *x, escript::JMPI mpiinfo)
returns the global Lsup of x
Definition: PasoUtil.cpp:466
index_t method
Definition: FCT_Solver.h:61
@ Divergence
Definition: Paso.h:51
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:163
void addLimitedFluxes_Complete(double *b)
Definition: FluxLimiter.cpp:207
double dt
Definition: FCT_Solver.h:63
this class holds a (distributed) stiffness matrix
Definition: SystemMatrix.h:50
void setU_tilde(const double *Mu_tilde)
Definition: FluxLimiter.cpp:62
Definition: Coupler.h:100
Coupler_ptr< real_t > u_tilde_coupler
Definition: FluxLimiter.h:53
void setAntiDiffusionFlux_CN(SystemMatrix_ptr< double > flux_matrix)
Definition: FCT_Solver.cpp:385
double tolerance
Definition: Options.h:114
Coupler_ptr< real_t > u_coupler
Definition: FCT_Solver.h:67
Definition: FluxLimiter.h:27
#define PASO_CRANK_NICOLSON
Definition: Options.h:72
double * b
Definition: FCT_Solver.h:64
escript::JMPI mpi_info
Definition: FCT_Solver.h:59
real_t real_t_max()
Returns the maximum finite value for the real_t type.
Definition: DataTypes.h:90
boost::shared_ptr< const SystemMatrixPattern > const_SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:42
@ InputError
Definition: Paso.h:47
bool verbose
Definition: Options.h:118
bool initialize(const std::string &simFile, const std::string &comment)
Definition: VisItControl.cpp:178
boost::shared_ptr< SystemMatrix< T > > SystemMatrix_ptr
Definition: SystemMatrix.h:42
escript::JMPI mpi_info
Definition: FluxLimiter.h:46
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:88
~FCT_Solver()
Definition: FCT_Solver.cpp:74
double * du
Definition: FCT_Solver.h:66
SolverResult update(double *u, double *u_old, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:125
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:339
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:501
index_t dim_t
Definition: DataTypes.h:66
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:74
double getTheta()
Definition: FCT_Solver.h:53
#define PASO_LINEAR_CRANK_NICOLSON
Definition: Options.h:71
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:666
static double getSafeTimeStepSize(const_TransportProblem_ptr tp)
Definition: FCT_Solver.cpp:545
Coupler_ptr< real_t > u_old_coupler
Definition: FCT_Solver.h:68
double * u_tilde
Definition: FluxLimiter.h:48
SolverResult Solver_BiCGStab(SystemMatrix_ptr< double > A, double *r, double *x, dim_t *iter, double *tolerance, Performance *pp)
Definition: BiCGStab.cpp:77
SolverResult
Definition: Paso.h:44
dim_t iter_max
Definition: Options.h:121
@ MaxIterReached
Definition: Paso.h:46
void solve_free(SystemMatrix< T > *A)
Definition: Solver.h:79
bool use_local_preconditioner
Definition: Options.h:130
#define PASO_GS
Definition: Options.h:64
SystemMatrix_ptr< double > antidiffusive_fluxes
Definition: FluxLimiter.h:45
Definition: FCT_Solver.h:28
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:34
void addLimitedFluxes_Start()
Definition: FluxLimiter.cpp:137
#define MPI_DOUBLE
Definition: EsysMPI.h:49
#define MPI_MIN
Definition: EsysMPI.h:55
int ode_solver
Definition: Options.h:132
Definition: Preconditioner.h:37
PasoException exception class.
Definition: PasoException.h:34
int preconditioner
Definition: Options.h:120
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:61
void Performance_stopMonitor(Performance *pp, int monitor)
switches off a monitor
Definition: performance.cpp:182
SolverResult Preconditioner_Smoother_solve_byTolerance(SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial)
Definition: Smoother.cpp:127
FCT_FluxLimiter * flux_limiter
Definition: FCT_Solver.h:60
int sweeps
Definition: Options.h:127
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:319
#define MIN3(_arg1_, _arg2_, _arg3_)
Definition: FCT_Solver.cpp:39
void Preconditioner_Smoother_solve(SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
Definition: Smoother.cpp:100
static dim_t M
Definition: SparseMatrix_saveHB.cpp:37
void setAntiDiffusionFlux_BE(SystemMatrix_ptr< double > flux_matrix)
Definition: FCT_Solver.cpp:436
real_t real_t_eps()
Returns the machine epsilon for the real_t type.
Definition: DataTypes.h:99
const_TransportProblem_ptr transportproblem
Definition: FCT_Solver.h:58
#define PASO_BACKWARD_EULER
Definition: Options.h:73
double absolute_tolerance
Definition: Options.h:115
Definition: BiCGStab.cpp:25
double * z
Definition: FCT_Solver.h:65
@ NoError
Definition: Paso.h:45
boost::shared_ptr< const SystemMatrix< T > > const_SystemMatrix_ptr
Definition: SystemMatrix.h:43
void initialize(double dt, Options *options, Performance *pp)
Definition: FCT_Solver.cpp:83
dim_t num_iter
Definition: Options.h:135
void setAntiDiffusionFlux_linearCN(SystemMatrix_ptr< double > flux_matrix)
Definition: FCT_Solver.cpp:492
FCT_Solver(const_TransportProblem_ptr tp, Options *options)
Definition: FCT_Solver.cpp:45