-
Notifications
You must be signed in to change notification settings - Fork 78
HOWTO interface a new dependency library
COOLFluiD already depends on a few packages, whose main ones are reviewed here. If you need to interface a new package, there are a few necessary steps that you have to follow, requiring the following modifications:
-
prepare.pl
: you need to define a set of new variables to be configured in thecoolfluid.conf
; - cmake-based build system: the new variables have to be mapped to cmake environmental variables;
- if a module (kernel or plugin) depends on the new package, the corresponding CMakeLists.txt must be modified;
-
coolfluid.conf
: you have to set the new variables to the corresponding values.
There are plenty of examples one can look at, but for illustrative purposes we will look at the Mutation++ example.
We add the new package to the list of dependency libraries:
my @libraries = (..., "mutationpp", ...)
.
We create some new variables (e.g. flags, library and include paths) and set default values inside my %default_options = (...)
:
-
'with_mutationpp' => 0,
: this flag controls whether the library is activated; -
'mutationpp_dir' => "",
: this string gives the root path of the library; -
'mutationpp_librarydir' => "/usr/lib64",
: this string gives the library path; -
'mutationpp_includedir' => "/usr/include",
: this tring gives the include path.
We map library and include paths to cmake environmental variables by declaring them as:
my @dep_variables = ( ..., "mutationpp_librarydir", "mutationpp_includedir")
.
We directly map the activation flag to an environmental variable to be used later:
setup_option('with_mutationpp', 'CF_ENABLE_MUTATIONPP');
The COOLFluiD team is involved and open to new collaborations in Horizon2020, ESA and other research projects dealing with complex multi-disciplinary problems and computational challenges.
Training sessions and consulting services can also be provided on demand.
For any request or suggestions please contact andrea.lani@gmail.com
Parallel mesh decomposition
High-performance computing (strong scaling on NASA Pleiades for 1/2 billion-cells 3D grid)
Chemically reacting flows and plasma
Complex all-speed flow simulations