18 #include "vtkfigFrame.h" 19 #include "vtkfigDataSet.h" 20 #include "vtkfigGridView.h" 21 #include "vtkfigScalarView.h" 82 auto fkappa = [](
double u,
double &kappa,
double &dkappa )
84 kappa=0.001+1000.0*u*u*u*u*u*u;
85 dkappa=6000.0*u*u*u*u*u;
109 while (iter<100 && norm >1.0e-13)
113 Solver.
solve(Upd,Res);
116 printf(
"iter=%d norm=%8.4e contract=%8.5e\n", iter,norm,norm/oldnorm);
125 auto griddata=numcxx::vtkfigDataSet(grid);
126 griddata->SetPointScalar(Sol ,
"Sol");
128 auto frame=vtkfig::Frame::New();
129 frame->SetSize(800,400);
130 frame->SetLayout(2,1);
132 auto gridview=vtkfig::GridView::New();
133 gridview->SetData(griddata);
134 frame->AddFigure(gridview,0);
136 auto solview=vtkfig::ScalarView::New();
137 solview->SetData(griddata,
"Sol");
138 frame->AddFigure(solview,1);
void initialize_bc(numcxx::SimpleGrid &grid, numcxx::DArray1 &g, numcxx::DArray1 &Sol)
Class collecting data for the description of piecewise linear geometries.
Sparse matrix class using CRS storage scheme.
void set_regionpoints(const std::initializer_list< std::initializer_list< double >> &il)
Set member via intializer list.
void set_regionvolumes(const std::initializer_list< double > &il)
Set member via intializer list.
Header for simple grid data class.
A::value_type norm2(const A &a)
Euklidean norm of array or expression.
void solve(TArray< T > &Sol, const TArray< T > &Rhs)
Solve LU factorized system.
Main header of the library.
A::value_type min(const A &a)
Minimum of of array or expression.
void assemble_and_apply_nonlinear_heat(const numcxx::SimpleGrid &grid, const numcxx::DArray1 &bcfac, const numcxx::DArray1 &bcval, const numcxx::DArray1 &source, std::function< void(const double, double &, double &)> fkappa, numcxx::DSparseMatrix &SGlobal, numcxx::DArray1 &Sol, numcxx::DArray1 &Rhs)
void set_points(const std::initializer_list< std::initializer_list< double >> &il)
Set member via intializer list.
void set_regionnumbers(const std::initializer_list< int > &il)
Set member via intializer list.
void set_bfaces(const std::initializer_list< std::initializer_list< int >> &il)
Set member via intializer list.
void set_bfaceregions(const std::initializer_list< int > &il)
Set member via intializer list.
One dimensional array class.
Class containing data for simple grid data structure.
Header for adapter beteween vtkfig dataset and simple grid.
Bridge class for using umfpack as solver for vmatrix.
const int npoints() const
Return number of points.
A::value_type norm(const A &a)
Euklidean norm of array or expression.
const double Dirichlet
BC value marking Dirichlet boundary condition.
void update()
Perform actual computation of LU factorization.