![]() |
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
LehrFEM++ is organized in modules that provide specific functionality that you can import in your code. In LehrFEM++ there is a strict 1:1 relation between modules and namespaces, folder structure, cmake targets, tests, include files and libraries which is best illustrated with an example. Consider the module with the name lf.mesh.hybrid2d
lf::mesh::hybrid2d
,lib/lf/mesh/hybrid2d
lf.mesh.hybrid2d
lib/lf/mesh/hybrid2d/hybrid2d.h
that includes all other (public) header files of the module.liblf.mesh.hybrid2d.a
(on linux)lf.mesh.hybrid2d.test
Modules can depend on each other. In the example above, the lf.mesh.hybrid2d
module depends on the lf.base
, lf.mesh
and lf.geometry
module. This means in particular that:
lf.mesh.hybrid2d
depends on the lf.mesh
cmake target (see the file lib/lf/mesh/hybrid2d/CMakeLists.txt
). Since the lf.mesh
depends on lf.base
and lf.geometry
it is not necessary to specify these dependecies also.lib/lf/mesh/hybrid2d
include the module include files lib/lf/base/base.h
and lib/lf/mesh/mesh.h
(as necessary)lib/lf/mesh/hybrid2d/hybrid2d.h
) which will include all necessary header files for that module.lib/lf/mesh/hybrid2d/entity.h
can include lib/lf/mesh/hybrid2d/mesh.h
but it should not include lib/lf/base/forward_range.h
!For a list of (library) modules in LehrFEM++ see the list of namespaces.