8#include "strangsplitting.h"
16 bool firstcall,
const Eigen::VectorXd &mu) {
17 Eigen::VectorXd evol_op;
23 Eigen::VectorXd rhs = -
A_ * mu;
27 Eigen::VectorXd k1 =
solver1.solve(rhs);
28 LF_VERIFY_MSG(
solver1.info() == Eigen::Success,
"LU decomposition failed");
32 LF_VERIFY_MSG(
solver1.info() == Eigen::Success,
"LU decomposition failed");
38 Eigen::VectorXd k1 =
solver2.solve(rhs);
39 LF_VERIFY_MSG(
solver2.info() == Eigen::Success,
"LU decomposition failed");
42 LF_VERIFY_MSG(
solver2.info() == Eigen::Success,
"LU decomposition failed");
54 const Eigen::VectorXd &mu) {
58 Eigen::VectorXd sol(N_dofs);
59 Eigen::VectorXd sol_cur(N_dofs);
60 Eigen::VectorXd sol_next(N_dofs);
62 Eigen::VectorXd ones = Eigen::VectorXd::Ones(N_dofs);
70 bool firstcall =
true;
74 for (
unsigned int i = 1; i <
m_ - 1; i++) {
76 sol_next = cap.cwiseQuotient(ones + (cap.cwiseQuotient(sol_cur) - ones) *
85 sol_next = cap.cwiseQuotient(ones + (cap.cwiseQuotient(sol_cur) - ones) *
Eigen::SparseMatrix< double > A_
Eigen::SparseLU< Eigen::SparseMatrix< double > > solver2
Eigen::VectorXd Evolution(const Eigen::VectorXd &cap, const Eigen::VectorXd &mu)
Eigen::SparseLU< Eigen::SparseMatrix< double > > solver1
Eigen::VectorXd diffusionEvolutionOperator(bool firstcall, const Eigen::VectorXd &mu)
const std::shared_ptr< lf::uscalfe::UniformScalarFESpace< double > > fe_space_
A general (interface) class for DOF handling, see Lecture Document Paragraph 2.7.4....
lf::assemble::size_type size_type