#include <residualestimator.hpp>
Laplacian Solver using continuous approximation spaces solve on
and
on
Dim | the geometric dimension of the problem (e.g. Dim=1, 2 or 3) |
Order | the approximation order |
Public Types | |
typedef boost::shared_ptr < backend_type > | backend_ptrtype |
linear algebra backend factory shared_ptr<> type | |
typedef Backend< value_type > | backend_type |
linear algebra backend factory | |
typedef bases< Lagrange< Order, Scalar > > | basis_type |
the basis type of our approximation space | |
typedef Simplex< Dim > | convex_type |
geometry entities type composing the mesh, here Simplex in Dimension Dim of Order 1 | |
typedef space_type::element_type | element_type |
an element type of the approximation function space | |
typedef boost::shared_ptr < export_type > | export_ptrtype |
the exporter factory (shared_ptr<> type) | |
typedef Exporter< mesh_type, 1 > | export_type |
the exporter factory type | |
typedef boost::shared_ptr < mesh_type > | mesh_ptrtype |
mesh shared_ptr<> type | |
typedef Mesh< convex_type > | mesh_type |
mesh type | |
typedef p0_space_type::element_type | p0_element_type |
an element type of the ![]() | |
typedef boost::shared_ptr < p0_space_type > | p0_space_ptrtype |
typedef FunctionSpace < mesh_type, bases< Lagrange < 0, Scalar, Discontinuous > > > | p0_space_type |
function space that holds piecewise constant ( ![]() | |
typedef bases< Lagrange < 1, Scalar > > | p1_basis_type |
the basis type of our approximation space | |
typedef p1_space_type::element_type | p1_element_type |
typedef boost::shared_ptr < p1_space_type > | p1_space_ptrtype |
typedef FunctionSpace < mesh_type, p1_basis_type > | p1_space_type |
typedef boost::shared_ptr < space_type > | space_ptrtype |
the approximation function space type (shared_ptr<> type) | |
typedef FunctionSpace < mesh_type, basis_type > | space_type |
the approximation function space type | |
typedef backend_type::sparse_matrix_ptrtype | sparse_matrix_ptrtype |
sparse matrix type associated with backend (shared_ptr<> type) | |
typedef backend_type::sparse_matrix_type | sparse_matrix_type |
sparse matrix type associated with backend | |
typedef double | value_type |
numerical type is double | |
typedef backend_type::vector_ptrtype | vector_ptrtype |
vector type associated with backend (shared_ptr<> type) | |
typedef backend_type::vector_type | vector_type |
vector type associated with backend | |
Public Member Functions | |
ResidualEstimator (AboutData const &about) | |
void | run () |
void | run (const double *X, unsigned long P, double *Y, unsigned long N) |
![]() | |
Simget () | |
virtual | ~Simget () |
destructor | |
Simget & | operator= (Simget const &o) |
copy operator | |
virtual std::string | name () const |
return the name of the simget | |
mpi::communicator | comm () const |
po::variables_map const & | vm () const |
AboutData const & | about () const |
double | meshSize () const |
return the mesh size | |
double | meshSizeInit () const |
return the mesh size | |
int | level () const |
return the refinement level | |
ptree::ptree const & | stats () const |
return the statistics associated to the simget after calling run | |
ptree::ptree & | stats () |
return the statistics associated to the simget after calling run | |
void | setMeshSize (double h) |
set the mesh size | |
void | setMeshSizeInit (double h) |
set the initial mesh size | |
void | setLevel (int level) |
set the refinment level if applicable | |
void | print (std::ostream &out, std::vector< ptree::ptree > &stats) |
Additional Inherited Members | |
![]() | |
Simget & | changeRepository (boost::format fmt) |
![]() | |
int | M_level |
double | M_meshSize |
double | M_meshSizeInit |
ptree::ptree | M_stats |
|
inline |
Constructor
|
virtual |
simply execute the simget
Implements Feel::Simget.
|
virtual |
models the input/output relation
The function space and some associated elements(functions) are then defined
define the expression of the exact solution and
the expression of the right hand side such that
is the exact solution
deduce from expression the type of g (thanks to keyword 'auto')
deduce from expression the type of laplacian (thanks to keyword 'auto')
Construction of the right hand side. F is the vector that holds the algebraic representation of the right habd side of the problem
create the matrix that will hold the algebraic representation of the left hand side
assemble
weak dirichlet conditions treatment for the boundaries marked 1 and 3
assemble
strong(algebraic) dirichlet conditions treatment for the boundaries marked 1 and 3
solve the system
solve
compute the norm of the error
save the results project the exact solution
Reimplemented from Feel::Simget.
References Feel::Backend< T >::build(), Feel::element_div(), Feel::element_product(), Feel::elements(), Feel::integrate(), Feel::internalfaces(), Feel::markedfaces(), and Feel::project().