NUMCXX  0.13.20181108
Numerical library for small projects and teaching purposes
fvm2d.hxx
Go to the documentation of this file.
1 #ifndef FEM2D_H
2 #define FEM2D_H
3 
4 #include <functional>
5 
6 #include <numcxx/simplegrid.hxx>
8 
9 namespace fvm2d
10 {
11 
13  const double Dirichlet=1.0e30;
14 
15 
17  const numcxx::SimpleGrid &Grid, // Discretization grid containing triangulation
18  const numcxx::DArray1& BCfac, // Array of boudary factors (per boundary region)
19  const numcxx::DArray1& BCval, // Array of boudary values (per boundary region)
20  const numcxx::DArray1& Source, // Array of source values (per node)
21  const numcxx::DArray1& Kappa, // Array of heat coefficient values (per node)
22  numcxx::DSparseMatrix &SGlobal, // Global stiffness matrix
23  numcxx::DArray1 &Rhs); // Right hand side
24 
26  const numcxx::SimpleGrid &grid,
27  const numcxx::DArray1& bcfac,
28  const numcxx::DArray1& bcval,
29  const numcxx::DArray1& source,
30  std::function <void(const double, double&, double&)> fkappa,
31  numcxx::DSparseMatrix &SGlobal,
32  numcxx::DArray1 &Sol,
33  numcxx::DArray1 &Rhs);
34 
35 
36 
37  void initialize_bc(
38  numcxx::SimpleGrid &grid,// Discretization grid
39  numcxx::DArray1& g,
40  numcxx::DArray1& Sol
41  );
42 
43  double l2norm(const numcxx::SimpleGrid &grid,
44  const numcxx::DArray1 &u);
45 
46  double h1norm(const numcxx::SimpleGrid &grid,
47  const numcxx::DArray1 &u);
48 }
49 #endif
50 
51 
double l2norm(const numcxx::SimpleGrid &grid, const numcxx::DArray1 &u)
Definition: fvm2d.cxx:318
void initialize_bc(numcxx::SimpleGrid &grid, numcxx::DArray1 &g, numcxx::DArray1 &Sol)
Definition: fvm2d.cxx:291
Sparse matrix class using CRS storage scheme.
Header for simple grid data class.
Definition: fvm2d.hxx:9
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)
Definition: fvm2d.cxx:219
void assemble_heat_problem(const numcxx::SimpleGrid &Grid, const numcxx::DArray1 &BCfac, const numcxx::DArray1 &BCval, const numcxx::DArray1 &Source, const numcxx::DArray1 &Kappa, numcxx::DSparseMatrix &SGlobal, numcxx::DArray1 &Rhs)
Definition: fvm2d.cxx:158
Header for class numcxx::TSparseMatrix.
One dimensional array class.
Definition: tarray1.hxx:31
Class containing data for simple grid data structure.
Definition: simplegrid.hxx:19
double h1norm(const numcxx::SimpleGrid &grid, const numcxx::DArray1 &u)
Definition: fvm2d.cxx:346
const double Dirichlet
BC value marking Dirichlet boundary condition.
Definition: fvm2d.hxx:13