Go to the documentation of this file.
18 #ifndef __PASO_FCTSOLVER_H__
19 #define __PASO_FCTSOLVER_H__
40 void initialize(
double dt, Options* options, Performance* pp);
75 #endif // __PASO_FCTSOLVER_H__
static const real_t EPSILON
Definition: ReactiveSolver.cpp:55
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:79
boost::shared_ptr< const Coupler< T > > const_Coupler_ptr
Definition: Coupler.h:58
double omega
Definition: FCT_Solver.h:91
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:495
index_t method
Definition: FCT_Solver.h:90
void setAntiDiffusionFlux_BE(SystemMatrix_ptr flux_matrix)
Definition: FCT_Solver.cpp:437
@ Divergence
Definition: Paso.h:78
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:178
void addLimitedFluxes_Complete(double *b)
Definition: FluxLimiter.cpp:222
double dt
Definition: FCT_Solver.h:92
this class holds a (distributed) stiffness matrix
Definition: SystemMatrix.h:62
void solve_free(SystemMatrix *in)
Definition: solve.cpp:143
void setU_tilde(const double *Mu_tilde)
Definition: FluxLimiter.cpp:77
Coupler_ptr< real_t > u_tilde_coupler
Definition: FluxLimiter.h:82
boost::shared_ptr< SystemMatrix > SystemMatrix_ptr
Definition: SystemMatrix.h:55
double tolerance
Definition: Options.h:113
Coupler_ptr< real_t > u_coupler
Definition: FCT_Solver.h:96
Definition: FluxLimiter.h:41
#define PASO_CRANK_NICOLSON
Definition: Options.h:71
double * b
Definition: FCT_Solver.h:93
escript::JMPI mpi_info
Definition: FCT_Solver.h:88
real_t real_t_max()
Returns the maximum finite value for the real_t type.
Definition: DataTypes.h:117
boost::shared_ptr< const SystemMatrixPattern > const_SystemMatrixPattern_ptr
Definition: SystemMatrixPattern.h:56
@ InputError
Definition: Paso.h:74
bool verbose
Definition: Options.h:117
escript::JMPI mpi_info
Definition: FluxLimiter.h:75
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:116
~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:92
double * du
Definition: FCT_Solver.h:95
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:115
void update(dim_t n, double a, double *x, double b, const double *y)
Definition: PasoUtil.cpp:368
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:530
index_t dim_t
Definition: DataTypes.h:93
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:72
double getTheta()
Definition: FCT_Solver.h:82
#define PASO_LINEAR_CRANK_NICOLSON
Definition: Options.h:70
boost::shared_ptr< Coupler< T > > Coupler_ptr
Definition: Coupler.h:57
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:97
double * u_tilde
Definition: FluxLimiter.h:77
SolverResult
Definition: Paso.h:57
dim_t iter_max
Definition: Options.h:120
@ MaxIterReached
Definition: Paso.h:73
SystemMatrix_ptr antidiffusive_fluxes
Definition: FluxLimiter.h:74
bool use_local_preconditioner
Definition: Options.h:129
boost::shared_ptr< const SystemMatrix > const_SystemMatrix_ptr
Definition: SystemMatrix.h:57
#define PASO_GS
Definition: Options.h:63
boost::shared_ptr< const TransportProblem > const_TransportProblem_ptr
Definition: Transport.h:34
void addLimitedFluxes_Start()
Definition: FluxLimiter.cpp:152
#define MPI_DOUBLE
Definition: EsysMPI.h:47
#define MPI_MIN
Definition: EsysMPI.h:53
int ode_solver
Definition: Options.h:131
Definition: Preconditioner.h:50
PasoException exception class.
Definition: PasoException.h:47
int preconditioner
Definition: Options.h:119
void scale(dim_t N, double *x, double a)
x = a*x
Definition: PasoUtil.h:122
#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:88
void Performance_stopMonitor(Performance *pp, int monitor)
switches off a monitor
Definition: performance.cpp:197
FCT_FluxLimiter * flux_limiter
Definition: FCT_Solver.h:89
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:142
int sweeps
Definition: Options.h:126
void zeroes(dim_t n, double *x)
fills array x with zeroes
Definition: PasoUtil.cpp:348
#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:52
real_t real_t_eps()
Returns the machine epsilon for the real_t type.
Definition: DataTypes.h:126
const_TransportProblem_ptr transportproblem
Definition: FCT_Solver.h:87
#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:94
@ NoError
Definition: Paso.h:72
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