#include "Paso.h"
#include "Solver.h"
#include "SolverFCT.h"
#include "PasoUtil.h"
#include "esysUtils/blocktimer.h"
Functions | |
void | Paso_FCT_setSource (const dim_t n, const double *source, double *sourceN, double *sourceP) |
err_t | Paso_FCT_setUpRightHandSide (Paso_FCTransportProblem *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, const double *sourceN, Paso_Performance *pp) |
void | Paso_SolverFCT_solve (Paso_FCTransportProblem *fctp, double *u, double dt, double *source, Paso_Options *options) |
double | Paso_FCTransportProblem_getSafeTimeStepSize (Paso_FCTransportProblem *fctp) |
void | Paso_FCT_setUp (Paso_FCTransportProblem *fctp, const double dt, const double *sourceN, const double *sourceP, 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) |
void Paso_FCT_setSource | ( | const dim_t | n, | |
const double * | source, | |||
double * | sourceN, | |||
double * | sourceP | |||
) |
Referenced by Paso_SolverFCT_solve().
void Paso_FCT_setUp | ( | Paso_FCTransportProblem * | fctp, | |
const double | dt, | |||
const double * | sourceN, | |||
const double * | sourceP, | |||
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 ABS, Paso_FCTransportProblem::iteration_matrix, Paso_FCTransportProblem::lumped_mass_matrix, Paso_FCTransportProblem::main_diagonal_low_order_transport_matrix, Paso_FCTransportProblem::main_iptr, Paso_SystemMatrix::mainBlock, Paso_Coupler_finishCollect(), Paso_Coupler_startCollect(), Paso_solve_free(), Paso_Solver_setPreconditioner(), Paso_SolverFCT_setMuPaLuPbQ(), Paso_SolverFCT_setQs(), Paso_SystemMatrix_getTotalNumRows(), PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), Paso_FCTransportProblem::theta, Paso_FCTransportProblem::transport_matrix, Paso_FCTransportProblem::u, Paso_FCTransportProblem::u_coupler, and Paso_SparseMatrix::val.
Referenced by Paso_SolverFCT_solve().
err_t Paso_FCT_setUpRightHandSide | ( | Paso_FCTransportProblem * | 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, | |||
const double * | sourceN, | |||
Paso_Performance * | pp | |||
) |
References Paso_FCTransportProblem::iteration_matrix, Paso_FCTransportProblem::lumped_mass_matrix, NO_ERROR, Paso_Coupler_finishCollect(), Paso_Coupler_startCollect(), Paso_FCTransportProblem_addCorrectedFluxes(), Paso_FCTransportProblem_applyPreAntiDiffusionCorrection(), Paso_FCTransportProblem_setAntiDiffusionFlux(), Paso_FCTransportProblem_setRs(), Paso_SolverFCT_setMuPaLuPbQ(), Paso_SystemMatrix_getTotalNumRows(), Paso_Update(), Paso_FCTransportProblem::theta, and Paso_FCTransportProblem::transport_matrix.
Referenced by Paso_SolverFCT_solve().
double Paso_FCTransportProblem_getSafeTimeStepSize | ( | Paso_FCTransportProblem * | fctp | ) |
References Paso_MPIInfo::comm, Paso_FCTransportProblem::dt_factor, Paso_FCTransportProblem::dt_max, LARGE_POSITIVE_FLOAT, Paso_FCTransportProblem::lumped_mass_matrix, Paso_FCTransportProblem::main_diagonal_low_order_transport_matrix, Paso_FCTransportProblem::mass_matrix, MIN, MPI_DOUBLE, Paso_FCTransportProblem::mpi_info, Paso_FCTransportProblem_setLowOrderOperator(), Paso_noError(), Paso_setError(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_rowSum(), Paso_FCTransportProblem::transport_matrix, TYPE_ERROR, and Paso_FCTransportProblem::valid_matrices.
Referenced by finley::TransportProblemAdapter::getSafeTimeStepSize(), and Paso_SolverFCT_solve().
void Paso_SolverFCT_solve | ( | Paso_FCTransportProblem * | fctp, | |
double * | u, | |||
double | dt, | |||
double * | source, | |||
Paso_Options * | options | |||
) |
References ABS, Paso_Options::absolute_tolerance, Paso_SystemMatrix::col_block_size, Paso_FCTransportProblem::dt_max, EPSILON, FALSE, Paso_Options::iter_max, Paso_FCTransportProblem::iteration_matrix, LARGE_POSITIVE_FLOAT, Paso_FCTransportProblem::lumped_mass_matrix, MEMFREE, MIN, MIN3, Paso_FCTransportProblem::mpi_info, Paso_checkPtr(), Paso_Copy(), Paso_Coupler_alloc(), Paso_Coupler_free(), Paso_FCT_setSource(), Paso_FCT_setUp(), Paso_FCT_setUpRightHandSide(), Paso_FCTransportProblem_borrowConnector(), Paso_FCTransportProblem_getBlockSize(), Paso_FCTransportProblem_getSafeTimeStepSize(), Paso_lsup(), Paso_noError(), Paso_setError(), Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrix_getTotalNumRows(), Paso_Update(), Paso_SystemMatrix::pattern, Paso_SystemMatrix::row_block_size, Paso_FCTransportProblem::theta, TMPMEMALLOC, TMPMEMFREE, Paso_Options::tolerance, Paso_FCTransportProblem::transport_matrix, TRUE, Paso_SystemMatrix::type, TYPE_ERROR, Paso_FCTransportProblem::u, VALUE_ERROR, and Paso_Options::verbose.
Referenced by finley::TransportProblemAdapter::setToSolution().