escript
Revision_
|
#include <FCT_Solver.h>
paso::FCT_Solver::FCT_Solver | ( | const_TransportProblem_ptr | tp, |
Options * | options | ||
) |
References b, du, Esys_MPIInfo_free(), flux_limiter, mpi_info, and z.
double paso::FCT_Solver::getSafeTimeStepSize | ( | TransportProblem_ptr | tp | ) | [static] |
References Esys_noError(), LARGE_POSITIVE_FLOAT, MPI_DOUBLE, and setLowOrderOperator().
double paso::FCT_Solver::getTheta | ( | ) | [inline] |
References method, and PASO_BACKWARD_EULER.
Referenced by initialize().
void paso::FCT_Solver::initialize | ( | double | dt, |
Options * | options, | ||
Performance * | pp | ||
) |
References dt, EPSILON, getTheta(), method, omega, PASO_GS, PASO_JACOBI, PASO_LINEAR_CRANK_NICOLSON, PERFORMANCE_PRECONDITIONER_INIT, paso::Performance_startMonitor(), paso::Performance_stopMonitor(), paso::Options::preconditioner, paso::solve_free(), paso::Options::sweeps, transportproblem, paso::Options::use_local_preconditioner, and paso::Options::verbose.
Referenced by paso::TransportProblem::solve().
void paso::FCT_Solver::setAntiDiffusionFlux_BE | ( | SystemMatrix_ptr | flux_matrix | ) |
References dt, transportproblem, u_coupler, and u_old_coupler.
Referenced by updateNL().
void paso::FCT_Solver::setAntiDiffusionFlux_CN | ( | SystemMatrix_ptr | flux_matrix | ) |
References dt, transportproblem, u_coupler, and u_old_coupler.
Referenced by updateNL().
void paso::FCT_Solver::setAntiDiffusionFlux_linearCN | ( | SystemMatrix_ptr | flux_matrix | ) |
References dt, flux_limiter, transportproblem, u_old_coupler, and paso::FCT_FluxLimiter::u_tilde_coupler.
Referenced by updateLCN().
void paso::FCT_Solver::setLowOrderOperator | ( | TransportProblem_ptr | tp | ) | [static] |
References MIN3.
Referenced by getSafeTimeStepSize().
void paso::FCT_Solver::setMuPaLu | ( | double * | out, |
const_Coupler_ptr | coupler, | ||
double | a | ||
) |
References paso::M, and transportproblem.
Referenced by updateLCN(), and updateNL().
err_t paso::FCT_Solver::update | ( | double * | u, |
double * | u_old, | ||
Options * | options, | ||
Performance * | pp | ||
) |
References method, PASO_BACKWARD_EULER, PASO_CRANK_NICOLSON, PASO_LINEAR_CRANK_NICOLSON, SOLVER_INPUT_ERROR, SOLVER_NO_ERROR, updateLCN(), and updateNL().
Referenced by paso::TransportProblem::solve(), updateLCN(), and updateNL().
err_t paso::FCT_Solver::updateLCN | ( | double * | u, |
double * | u_old, | ||
Options * | options, | ||
Performance * | pp | ||
) |
linear crank-nicolson update
References paso::FCT_FluxLimiter::addLimitedFluxes_Complete(), paso::FCT_FluxLimiter::addLimitedFluxes_Start(), paso::FCT_FluxLimiter::antidiffusive_fluxes, b, dt, flux_limiter, paso::util::lsup(), paso::FCT_FluxLimiter::mpi_info, omega, PRECONDITIONER_NO_ERROR, paso::Preconditioner_Smoother_solve_byTolerance(), paso::util::scale(), setAntiDiffusionFlux_linearCN(), setMuPaLu(), paso::FCT_FluxLimiter::setU_tilde(), SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, paso::Options::tolerance, transportproblem, u_old_coupler, paso::FCT_FluxLimiter::u_tilde, update(), and paso::Options::verbose.
Referenced by update().
err_t paso::FCT_Solver::updateNL | ( | double * | u, |
double * | u_old, | ||
Options * | options, | ||
Performance * | pp | ||
) |
References paso::Options::absolute_tolerance, paso::FCT_FluxLimiter::addLimitedFluxes_Complete(), paso::FCT_FluxLimiter::addLimitedFluxes_Start(), paso::FCT_FluxLimiter::antidiffusive_fluxes, b, paso::util::copy(), dt, du, Esys_noError(), flux_limiter, paso::Options::iter_max, paso::util::l2(), LARGE_POSITIVE_FLOAT, paso::util::lsup(), method, paso::FCT_FluxLimiter::mpi_info, paso::Options::num_iter, omega, PASO_BACKWARD_EULER, paso::Preconditioner_Smoother_solve(), setAntiDiffusionFlux_BE(), setAntiDiffusionFlux_CN(), setMuPaLu(), paso::FCT_FluxLimiter::setU_tilde(), paso::Solver_BiCGStab(), SOLVER_DIVERGENCE, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, paso::Options::tolerance, transportproblem, u_coupler, u_old_coupler, paso::FCT_FluxLimiter::u_tilde, update(), paso::Options::verbose, z, and paso::util::zeroes().
Referenced by update().
double* paso::FCT_Solver::b |
Referenced by FCT_Solver(), updateLCN(), updateNL(), and ~FCT_Solver().
double paso::FCT_Solver::dt |
Referenced by initialize(), setAntiDiffusionFlux_BE(), setAntiDiffusionFlux_CN(), setAntiDiffusionFlux_linearCN(), updateLCN(), and updateNL().
double* paso::FCT_Solver::du |
Referenced by FCT_Solver(), updateNL(), and ~FCT_Solver().
Referenced by FCT_Solver(), setAntiDiffusionFlux_linearCN(), updateLCN(), updateNL(), and ~FCT_Solver().
Referenced by FCT_Solver(), getTheta(), initialize(), update(), and updateNL().
Referenced by FCT_Solver(), and ~FCT_Solver().
double paso::FCT_Solver::omega |
Referenced by initialize(), updateLCN(), and updateNL().
Referenced by FCT_Solver(), setAntiDiffusionFlux_BE(), setAntiDiffusionFlux_CN(), and updateNL().
Referenced by FCT_Solver(), setAntiDiffusionFlux_BE(), setAntiDiffusionFlux_CN(), setAntiDiffusionFlux_linearCN(), updateLCN(), and updateNL().
double* paso::FCT_Solver::z |
Referenced by FCT_Solver(), updateNL(), and ~FCT_Solver().