Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::FeelModels::ModelAlgebraicFactory Class Reference
+ Collaboration diagram for Feel::FeelModels::ModelAlgebraicFactory:

Public Types

typedef model_type::backend_ptrtype backend_ptrtype
 
typedef model_type::backend_type backend_type
 
typedef std::function< void(ModelAlgebraic::DataUpdateJacobian &)> function_assembly_jacobian_type
 
typedef std::function< void(ModelAlgebraic::DataUpdateLinear &)> function_assembly_linear_type
 
typedef std::function< void(ModelAlgebraic::DataUpdateResidual &)> function_assembly_residual_type
 
typedef std::function< void(ModelAlgebraic::DataNewtonInitialGuess &)> function_newton_initial_guess_type
 
typedef std::function< void(vector_ptrtype const &Ud, vector_ptrtype &Ui)> function_solverPtAP_applyQ_type
 
typedef std::function< void(ModelAlgebraic::DataUpdateJacobian &)> function_updateInHousePreconditioner_jacobian_type
 
typedef std::function< void(ModelAlgebraic::DataUpdateLinear &)> function_updateInHousePreconditioner_linear_type
 
typedef std::shared_ptr< graph_type > graph_ptrtype
 
typedef GraphCSR graph_type
 
using index_type = typename model_type::index_type
 
typedef model_type::indexsplit_ptrtype indexsplit_ptrtype
 
typedef model_type::indexsplit_type indexsplit_type
 
typedef std::shared_ptr< model_type > model_ptrtype
 
typedef FeelModels::ModelAlgebraic model_type
 
typedef std::weak_ptr< model_type > model_weakptrtype
 
typedef backend_type::nl_solve_return_type nl_solve_return_type
 
typedef backend_type::post_solve_type post_solve_type
 
typedef backend_type::pre_solve_type pre_solve_type
 
typedef std::shared_ptr< preconditioner_type > preconditioner_ptrtype
 
typedef Preconditioner< value_type > preconditioner_type
 
typedef ModelAlgebraicFactory self_type
 
typedef backend_type::solve_return_type solve_return_type
 
typedef model_type::sparse_matrix_ptrtype sparse_matrix_ptrtype
 
typedef sparse_matrix_ptrtype::element_type sparse_matrix_type
 
typedef backend_type::update_nlsolve_type update_nlsolve_type
 
typedef model_type::value_type value_type
 
typedef model_type::vector_ptrtype vector_ptrtype
 

Public Member Functions

void addFunctionJacobianAssembly (function_assembly_jacobian_type const &func, std::string const &key="")
 
void addFunctionJacobianDofElimination (function_assembly_jacobian_type const &func, std::string const &key="")
 
void addFunctionJacobianPostAssembly (function_assembly_jacobian_type const &func, std::string const &key="")
 
void addFunctionLinearAssembly (function_assembly_linear_type const &func, std::string const &key="")
 
void addFunctionLinearDofElimination (function_assembly_linear_type const &func, std::string const &key="")
 
void addFunctionLinearPostAssembly (function_assembly_linear_type const &func, std::string const &key="")
 
void addFunctionNewtonInitialGuess (function_newton_initial_guess_type const &func, std::string const &key="")
 
void addFunctionResidualAssembly (function_assembly_residual_type const &func, std::string const &key="")
 
void addFunctionResidualDofElimination (function_assembly_residual_type const &func, std::string const &key="")
 
void addFunctionResidualPostAssembly (function_assembly_residual_type const &func, std::string const &key="")
 
void addVectorLinearRhsAssembly (vector_ptrtype const &vec, double scaling=1.0, std::string const &key="", bool cstPart=false)
 
void addVectorResidualAssembly (vector_ptrtype const &vec, double scaling=1.0, std::string const &key="", bool cstPart=false)
 
void applyAssemblyLinear (const vector_ptrtype &U, sparse_matrix_ptrtype &lhs, vector_ptrtype &rhs, std::vector< std::string > const &infos=std::vector< std::string >(), bool applyDofElimination=true) const
 apply assembly of linear operators rhs and lhs (can be useful for an external use)
 
void applyAssemblyLinear (ModelAlgebraic::DataUpdateLinear &dataLinear, bool applyDofElimination=true) const
 
void attachAuxiliarySparseMatrix (std::string const &key, sparse_matrix_ptrtype const &mat)
 attach a sparse matrix to the preconditioner
 
void attachNearNullSpace (int k, NullSpace< value_type > const &nearNullSpace)
 
void attachNearNullSpace (int k, NullSpace< value_type > const &nearNullSpace, std::string const &prefix)
 
void attachNearNullSpace (NullSpace< value_type > const &nearNullSpace)
 
void attachNullSpace (NullSpace< value_type > const &nullSpace)
 
void attachOperatorPCD (std::string const &key, typename preconditioner_type::operator_pcdbase_ptrtype const &opPCD)
 attach operator PCD to the preconditioner
 
void attachOperatorPMM (std::string const &key, typename preconditioner_type::operator_pmmbase_ptrtype const &opPMM)
 attach operator PCD to the preconditioner
 
sparse_matrix_ptrtype const & auxiliarySparseMatrix (std::string const &key) const
 return a sparse matrix attached
 
backend_ptrtype const & backend () const
 return the backend
 
ModelAlgebraic::DataUpdateBase & dataInfos ()
 return data information available in assembly process
 
ModelAlgebraic::DataUpdateBase const & dataInfos () const
 return data information available in assembly process
 
void evaluateResidual (const vector_ptrtype &U, vector_ptrtype &R, std::vector< std::string > const &infos=std::vector< std::string >(), bool applyDofElimination=true) const
 
void evaluateResidual (ModelAlgebraic::DataUpdateResidual &dataResidual, bool applyDofElimination=true) const
 
vector_ptrtype explictPartOfSolution ()
 
bool hasAuxiliarySparseMatrix (std::string const &key) const
 return true if a sparse matrix has been attached
 
bool hasInitSolverPtAP () const
 
void init (backend_ptrtype const &backend, graph_ptrtype const &graph, indexsplit_ptrtype const &indexSplit)
 
void init (model_ptrtype const &model, backend_ptrtype const &backend)
 
void init (model_ptrtype const &model, backend_ptrtype const &backend, graph_ptrtype const &graph, indexsplit_ptrtype const &indexSplit)
 
void initExplictPartOfSolution ()
 
void initSolverPtAP (sparse_matrix_ptrtype matP, function_solverPtAP_applyQ_type applyQ)
 
sparse_matrix_ptrtype matrix () const
 return matrix used for assembly linear system or the jacobian
 
model_ptrtype model () const
 return the model used by the algebraic factory
 
 ModelAlgebraicFactory (model_ptrtype const &model, backend_ptrtype const &backend)
 
 ModelAlgebraicFactory (model_ptrtype const &model, backend_ptrtype const &backend, graph_ptrtype const &graph, indexsplit_ptrtype const &indexSplit)
 
 ModelAlgebraicFactory (std::string const &prefix, po::variables_map const &vm=Environment::vm())
 
void postSolveLinear (vector_ptrtype rhs, vector_ptrtype sol) const
 
void postSolveNewton (vector_ptrtype rhs, vector_ptrtype sol) const
 
void postSolvePicard (vector_ptrtype rhs, vector_ptrtype sol) const
 
preconditioner_ptrtype const & preconditionerTool () const
 return the preconditioner
 
void preSolveLinear (vector_ptrtype rhs, vector_ptrtype sol) const
 
void preSolveNewton (vector_ptrtype rhs, vector_ptrtype sol) const
 
void preSolvePicard (vector_ptrtype rhs, vector_ptrtype sol) const
 
void rebuildMatrixVector (graph_ptrtype const &graph, indexsplit_ptrtype const &indexSplit)
 
void reset (backend_ptrtype __backend, graph_ptrtype const &graph, indexsplit_ptrtype const &indexSplit)
 
vector_ptrtype rhs () const
 return vector used for assembly rhs in linear system or the residual
 
void setActivationAddVectorLinearRhsAssembly (std::string const &key, bool b)
 
void setActivationAddVectorResidualAssembly (std::string const &key, bool b)
 
void setFunctionJacobianAssembly (function_assembly_jacobian_type const &func)
 
void setFunctionLinearAssembly (function_assembly_linear_type const &func)
 
void setFunctionLinearDofElimination (function_assembly_linear_type const &func)
 
void setFunctionNewtonInitialGuess (function_newton_initial_guess_type const &func)
 
void setFunctionResidualAssembly (function_assembly_residual_type const &func)
 
void setFunctionUpdateInHousePreconditionerJacobian (function_updateInHousePreconditioner_jacobian_type const &func)
 
void setFunctionUpdateInHousePreconditionerLinear (function_updateInHousePreconditioner_linear_type const &func)
 
void solve (std::string const &type, vector_ptrtype &sol)
 
void solveLinear (vector_ptrtype &U)
 
void solveNewton (vector_ptrtype &U, bool usePicardLinearization=false)
 
void solvePicard (vector_ptrtype &U)
 
sparse_matrix_ptrtype solverPtAP_matrixP () const
 
void solverPtAP_setDofEliminationIds (std::set< index_type > const &dofId)
 
graph_ptrtype const & sparsityMatrixGraph () const
 return sparsity matrix graph
 
void updateInformationObject (nl::json &p) const
 
void updateJacobian (const vector_ptrtype &X, sparse_matrix_ptrtype &J, std::optional< std::vector< int > > const &dofEliminationIds, bool usePicardLinearization)
 
void updateNewtonIteration (int step, vector_ptrtype residual, vector_ptrtype sol, typename backend_type::solvernonlinear_type::UpdateIterationData const &data)
 
void updatePicardIteration (int step, vector_ptrtype sol)
 
void updateResidual (const vector_ptrtype &X, vector_ptrtype &R, std::optional< std::vector< int > > const &dofEliminationIds)
 
bool useSolverPtAP () const
 

Static Public Member Functions

static tabulate_informations_ptr_t tabulateInformations (nl::json const &jsonInfo, TabulateInformationProperties const &tabInfoProp)