![]() |
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/hybrid2dlf.mesh.hybrid2dlib/lf/mesh/hybrid2d/hybrid2d.h that includes all other (public) header files of the module.liblf.mesh.hybrid2d.a (on linux)lf.mesh.hybrid2d.testModules 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.