#include "Functions.h"#include "Transport.h"Go to the source code of this file.
Classes | |
| struct | Paso_FCTSolver |
Typedefs | |
| typedef struct Paso_FCTSolver | Paso_FCTSolver |
Functions | |
| PASO_DLL_API err_t | Paso_FCTSolver_Function_call (Paso_Function *F, double *value, const double *arg, Paso_Performance *pp) |
| PASO_DLL_API void | Paso_FCTSolver_Function_free (Paso_Function *in) |
| PASO_DLL_API Paso_Function * | Paso_FCTSolver_Function_alloc (Paso_TransportProblem *tp, Paso_Options *options) |
| PASO_DLL_API err_t | Paso_FCTSolver_solve (Paso_Function *F, double *u, double dt, Paso_Options *options, Paso_Performance *pp) |
| PASO_DLL_API double | Paso_FCTSolver_getSafeTimeStepSize (Paso_TransportProblem *fctp) |
| PASO_DLL_API void | Paso_FCTSolver_applyPreAntiDiffusionCorrection (Paso_SystemMatrix *f, const Paso_Coupler *u_coupler) |
| PASO_DLL_API void | Paso_FCTSolver_setQs (const Paso_Coupler *u_coupler, double *QN, double *QP, const Paso_SystemMatrix *L) |
| PASO_DLL_API void | Paso_FCTSolver_setAntiDiffusionFlux (const double dt, const Paso_TransportProblem *fc, Paso_SystemMatrix *flux_matrix, const Paso_Coupler *u_coupler) |
| PASO_DLL_API void | Paso_FCTSolver_setRs (const Paso_SystemMatrix *f, const double *lumped_mass_matrix, const Paso_Coupler *QN, const Paso_Coupler *QP, double *RN, double *RP) |
| PASO_DLL_API void | Paso_FCTSolver_addCorrectedFluxes (double *f, const Paso_SystemMatrix *flux_matrix, const Paso_Coupler *RN, const Paso_Coupler *RP) |
| PASO_DLL_API void | Paso_FCTSolver_setMuPaLu (double *out, const double *M, const Paso_Coupler *u_coupler, const double a, const Paso_SystemMatrix *L) |
| PASO_DLL_API void | Paso_FCTSolver_setLowOrderOperator (Paso_TransportProblem *fc) |
| PASO_DLL_API void | Paso_FCTSolver_setUp (Paso_TransportProblem *fctp, const double dt, const double *u, double *b, double *uTilde, Paso_Coupler *uTilde_coupler, double *QN, Paso_Coupler *QN_coupler, double *QP, Paso_Coupler *QP_coupler, Paso_Options *options, Paso_Performance *pp) |
| PASO_DLL_API err_t | Paso_FCTSolver_setUpRightHandSide (Paso_TransportProblem *fctp, const double dt, const double *u_m, Paso_Coupler *u_m_coupler, double *z_m, Paso_SystemMatrix *flux_matrix, Paso_Coupler *uTilde_coupler, const double *b, Paso_Coupler *QN_coupler, Paso_Coupler *QP_coupler, double *RN_m, Paso_Coupler *RN_m_coupler, double *RP_m, Paso_Coupler *RP_m_coupler, Paso_Performance *pp) |
| PASO_DLL_API void | Paso_FCTSolver_Function_initialize (const double dt3, Paso_TransportProblem *fctp, Paso_Options *options, Paso_Performance *pp) |
| typedef struct Paso_FCTSolver Paso_FCTSolver |
| PASO_DLL_API void Paso_FCTSolver_addCorrectedFluxes | ( | double * | f, | |
| const Paso_SystemMatrix * | flux_matrix, | |||
| const Paso_Coupler * | RN, | |||
| const Paso_Coupler * | RP | |||
| ) |
References Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, MIN, Paso_Coupler_borrowLocalData, Paso_Coupler_borrowRemoteData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_setUpRightHandSide().
| PASO_DLL_API void Paso_FCTSolver_applyPreAntiDiffusionCorrection | ( | Paso_SystemMatrix * | f, | |
| const Paso_Coupler * | u_coupler | |||
| ) |
References Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, Paso_Coupler_borrowLocalData, Paso_Coupler_borrowRemoteData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_setUpRightHandSide().
| PASO_DLL_API Paso_Function* Paso_FCTSolver_Function_alloc | ( | Paso_TransportProblem * | tp, | |
| Paso_Options * | options | |||
| ) |
References Paso_Function::b, Paso_SystemMatrix::col_block_size, Esys_checkPtr(), Esys_MPIInfo_getReference(), Esys_noError(), Paso_FCTSolver::flux_matrix_m, Paso_Function::kind, MEMALLOC, Paso_Function::more, Paso_TransportProblem::mpi_info, Paso_Function::mpi_info, Paso_Function::n, Paso_Coupler_alloc(), Paso_FCTSolver_Function_free(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_getTotalNumRows(), Paso_TransportProblem_borrowConnector(), Paso_TransportProblem_getBlockSize(), Paso_TransportProblem_getReference(), Paso_SystemMatrix::pattern, Paso_FCTSolver::QN_n, Paso_FCTSolver::QN_n_coupler, Paso_FCTSolver::QP_n, Paso_FCTSolver::QP_n_coupler, Paso_FCTSolver::RN_m, Paso_FCTSolver::RN_m_coupler, Paso_SystemMatrix::row_block_size, Paso_FCTSolver::RP_m, Paso_FCTSolver::RP_m_coupler, Paso_Function::tmp, TMPMEMALLOC, Paso_TransportProblem::transport_matrix, Paso_FCTSolver::transportproblem, TRUE, Paso_SystemMatrix::type, Paso_FCTSolver::u_m_coupler, Paso_FCTSolver::uTilde_n, and Paso_FCTSolver::uTilde_n_coupler.
Referenced by Paso_TransportProblem_solve().
| PASO_DLL_API err_t Paso_FCTSolver_Function_call | ( | Paso_Function * | F, | |
| double * | value, | |||
| const double * | arg, | |||
| Paso_Performance * | pp | |||
| ) |
References Paso_Function::b, Paso_FCTSolver::dt, Paso_FCTSolver::flux_matrix_m, Paso_TransportProblem::iteration_matrix, Paso_Function::more, Paso_FCTSolver_setUpRightHandSide(), Paso_Options_setDefaults(), Paso_SystemMatrix_solvePreconditioner(), Paso_FCTSolver::QN_n_coupler, Paso_FCTSolver::QP_n_coupler, Paso_FCTSolver::RN_m, Paso_FCTSolver::RN_m_coupler, Paso_FCTSolver::RP_m, Paso_FCTSolver::RP_m_coupler, Paso_Function::tmp, Paso_FCTSolver::transportproblem, Paso_FCTSolver::u_m_coupler, Paso_FCTSolver::uTilde_n_coupler, and Paso_Options::verbose.
Referenced by Paso_FCTSolver_solve(), and Paso_FunctionCall().
| PASO_DLL_API void Paso_FCTSolver_Function_free | ( | Paso_Function * | in | ) |
References Paso_Function::b, Esys_MPIInfo_free(), Paso_FCTSolver::flux_matrix_m, MEMFREE, Paso_Function::more, Paso_Function::mpi_info, Paso_Coupler_free(), Paso_SystemMatrix_free(), Paso_TransportProblem_free(), Paso_FCTSolver::QN_n, Paso_FCTSolver::QN_n_coupler, Paso_FCTSolver::QP_n, Paso_FCTSolver::QP_n_coupler, Paso_FCTSolver::RN_m, Paso_FCTSolver::RN_m_coupler, Paso_FCTSolver::RP_m, Paso_FCTSolver::RP_m_coupler, Paso_Function::tmp, TMPMEMFREE, Paso_FCTSolver::transportproblem, Paso_FCTSolver::u_m_coupler, Paso_FCTSolver::uTilde_n, and Paso_FCTSolver::uTilde_n_coupler.
Referenced by Paso_FCTSolver_Function_alloc(), Paso_Function_free(), and Paso_TransportProblem_solve().
| PASO_DLL_API void Paso_FCTSolver_Function_initialize | ( | const double | dt3, | |
| Paso_TransportProblem * | fctp, | |||
| Paso_Options * | options, | |||
| Paso_Performance * | pp | |||
| ) |
References Paso_TransportProblem::iteration_matrix, Paso_TransportProblem::lumped_mass_matrix, Paso_TransportProblem::main_diagonal_low_order_transport_matrix, Paso_SystemMatrix::mainBlock, Paso_solve_free(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_setPreconditioner(), Paso_Transport_getTheta, Paso_TransportProblem_borrowMainDiagonalPointer, PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), Paso_TransportProblem::transport_matrix, and Paso_SparseMatrix::val.
Referenced by Paso_TransportProblem_solve().
| PASO_DLL_API double Paso_FCTSolver_getSafeTimeStepSize | ( | Paso_TransportProblem * | fctp | ) |
References ABS, Esys_MPIInfo::comm, Paso_TransportProblem::dt_factor, Esys_noError(), Esys_setError(), LARGE_POSITIVE_FLOAT, Paso_TransportProblem::lumped_mass_matrix, Paso_TransportProblem::main_diagonal_low_order_transport_matrix, MIN, MPI_DOUBLE, Paso_TransportProblem::mpi_info, Paso_FCTSolver_setLowOrderOperator(), Paso_SystemMatrix_getTotalNumRows(), Paso_TransportProblem::transport_matrix, and VALUE_ERROR.
Referenced by Paso_TransportProblem_getSafeTimeStepSize().
| PASO_DLL_API void Paso_FCTSolver_setAntiDiffusionFlux | ( | const double | dt, | |
| const Paso_TransportProblem * | fc, | |||
| Paso_SystemMatrix * | flux_matrix, | |||
| const Paso_Coupler * | u_coupler | |||
| ) |
References ABS, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_TransportProblem::iteration_matrix, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, Paso_TransportProblem::mass_matrix, Paso_Coupler_borrowLocalData, Paso_Coupler_borrowRemoteData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, Paso_Pattern::ptr, Paso_TransportProblem::transport_matrix, Paso_TransportProblem::u_coupler, Paso_TransportProblem::useBackwardEuler, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_setUpRightHandSide().
| PASO_DLL_API void Paso_FCTSolver_setLowOrderOperator | ( | Paso_TransportProblem * | fc | ) |
References Paso_SystemMatrix::col_block_size, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Esys_noError(), Paso_Pattern::index, Paso_TransportProblem::iteration_matrix, Paso_TransportProblem::main_diagonal_low_order_transport_matrix, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, MIN3, Paso_SystemMatrix_alloc(), Paso_SystemMatrix_getTotalNumRows(), Paso_TransportProblem_borrowMainDiagonalPointer, Paso_SystemMatrix::pattern, Paso_Pattern::ptr, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrixPattern::row_couplePattern, Paso_TransportProblem::transport_matrix, TRUE, Paso_SystemMatrix::type, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_getSafeTimeStepSize().
| PASO_DLL_API void Paso_FCTSolver_setMuPaLu | ( | double * | out, | |
| const double * | M, | |||
| const Paso_Coupler * | u_coupler, | |||
| const double | a, | |||
| const Paso_SystemMatrix * | L | |||
| ) |
References ABS, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, Paso_Coupler_borrowLocalData, Paso_Coupler_borrowRemoteData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_setUp(), and Paso_FCTSolver_setUpRightHandSide().
| PASO_DLL_API void Paso_FCTSolver_setQs | ( | const Paso_Coupler * | u_coupler, | |
| double * | QN, | |||
| double * | QP, | |||
| const Paso_SystemMatrix * | L | |||
| ) |
References Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_SystemMatrixPattern::mainPattern, MAX, MIN, Paso_Coupler_borrowLocalData, Paso_Coupler_borrowRemoteData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, and Paso_Pattern::ptr.
Referenced by Paso_FCTSolver_setUp().
| PASO_DLL_API void Paso_FCTSolver_setRs | ( | const Paso_SystemMatrix * | f, | |
| const double * | lumped_mass_matrix, | |||
| const Paso_Coupler * | QN, | |||
| const Paso_Coupler * | QP, | |||
| double * | RN, | |||
| double * | RP | |||
| ) |
References Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrixPattern::col_couplePattern, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SystemMatrixPattern::mainPattern, MIN, Paso_Coupler_borrowLocalData, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::val.
Referenced by Paso_FCTSolver_setUpRightHandSide().
| PASO_DLL_API void Paso_FCTSolver_setUp | ( | Paso_TransportProblem * | fctp, | |
| const double | dt, | |||
| const double * | u, | |||
| double * | b, | |||
| double * | uTilde, | |||
| Paso_Coupler * | uTilde_coupler, | |||
| double * | QN, | |||
| Paso_Coupler * | QN_coupler, | |||
| double * | QP, | |||
| Paso_Coupler * | QP_coupler, | |||
| Paso_Options * | options, | |||
| Paso_Performance * | pp | |||
| ) |
References Paso_TransportProblem::iteration_matrix, Paso_TransportProblem::lumped_mass_matrix, Paso_Coupler_finishCollect(), Paso_Coupler_startCollect(), Paso_FCTSolver_setMuPaLu(), Paso_FCTSolver_setQs(), Paso_SystemMatrix_getTotalNumRows(), Paso_TransportProblem::transport_matrix, Paso_TransportProblem::u_coupler, and Paso_TransportProblem::useBackwardEuler.
Referenced by Paso_FCTSolver_solve().
| PASO_DLL_API err_t Paso_FCTSolver_setUpRightHandSide | ( | Paso_TransportProblem * | fctp, | |
| const double | dt, | |||
| const double * | u_m, | |||
| Paso_Coupler * | u_m_coupler, | |||
| double * | z_m, | |||
| Paso_SystemMatrix * | flux_matrix, | |||
| Paso_Coupler * | uTilde_coupler, | |||
| const double * | b, | |||
| Paso_Coupler * | QN_coupler, | |||
| Paso_Coupler * | QP_coupler, | |||
| double * | RN_m, | |||
| Paso_Coupler * | RN_m_coupler, | |||
| double * | RP_m, | |||
| Paso_Coupler * | RP_m_coupler, | |||
| Paso_Performance * | pp | |||
| ) |
References Paso_TransportProblem::iteration_matrix, Paso_TransportProblem::lumped_mass_matrix, Paso_Coupler_finishCollect(), Paso_Coupler_startCollect(), Paso_FCTSolver_addCorrectedFluxes(), Paso_FCTSolver_applyPreAntiDiffusionCorrection(), Paso_FCTSolver_setAntiDiffusionFlux(), Paso_FCTSolver_setMuPaLu(), Paso_FCTSolver_setRs(), Paso_SystemMatrix_getTotalNumRows(), Paso_Transport_getTheta, Paso_Update(), and Paso_TransportProblem::transport_matrix.
Referenced by Paso_FCTSolver_Function_call().
| PASO_DLL_API err_t Paso_FCTSolver_solve | ( | Paso_Function * | F, | |
| double * | u, | |||
| double | dt, | |||
| Paso_Options * | options, | |||
| Paso_Performance * | pp | |||
| ) |
References Paso_Options::absolute_tolerance, Paso_Function::b, Paso_FCTSolver::dt, Esys_checkPtr(), Esys_noError(), FALSE, Paso_Options::iter_max, MEMALLOC, MEMFREE, Paso_Function::more, Paso_TransportProblem::mpi_info, Paso_Function::mpi_info, Paso_Options::num_iter, Paso_FCTSolver_Function_call(), Paso_FCTSolver_setUp(), Paso_lsup(), Paso_Solver_NewtonGMRES(), Paso_SystemMatrix_getTotalNumRows(), Paso_Transport_getTheta, Paso_Update(), Paso_FCTSolver::QN_n, Paso_FCTSolver::QN_n_coupler, Paso_FCTSolver::QP_n, Paso_FCTSolver::QP_n_coupler, SOLVER_NO_ERROR, Paso_Options::tolerance, Paso_TransportProblem::transport_matrix, Paso_FCTSolver::transportproblem, Paso_TransportProblem::useBackwardEuler, Paso_FCTSolver::uTilde_n, Paso_FCTSolver::uTilde_n_coupler, and Paso_Options::verbose.
Referenced by Paso_TransportProblem_solve().
1.7.1