Low level programming¶
Configuration¶
This section gives some details about the configuration of the source code.
This task is performed by executing ./waf configure in the source tree.
Precompilation variables¶
Precompilation variables are always named in uppercase letters by convention.
To tell that a feature is available, a variable ASTER_HAVE_<feature-name> is
to 1.
To tell that a feature is disabled, we set ASTER_HAVE_<feature-name> is undefined.
Examples: ASTER_HAVE_PETSC (feature is installed).
If ASTER_HAVE_xxx is defined (use #ifdef, not
#if ASTER_HAVE_xxx == 1), the feature xxx is available.
Include guards to avoid multiple inclusion must be named NAME_OF_HEADER_FILE_H_.
Example: MATERIAL_H_ for Material.h.
Variables about the availability of prerequisites:
ASTER_HAVE_HDF5ASTER_HAVE_MEDASTER_HAVE_METISASTER_HAVE_MFRONTASTER_HAVE_MUMPSASTER_HAVE_PETSCASTER_HAVE_PETSC4PYASTER_HAVE_SCOTCH
Type of compiler and mathematical libraries:
ASTER_HAVE_INTEL_IFORTASTER_HAVE_MPIASTER_HAVE_OPENMPASTER_HAVE_MKLASTER_HAVE_OPENBLAS
Use in C/Fortran interfaces:
ASTER_ADD_STDCALLASTER_NO_UNDERSCOREASTER_STRINGIFY_USE_OPERATORASTER_STRINGIFY_USE_QUOTESASTER_STRLEN_AT_END
Platform types:
ASTER_PLATFORM_DARWINASTER_PLATFORM_DARWIN64ASTER_PLATFORM_FREEBSDASTER_PLATFORM_FREEBSD64ASTER_PLATFORM_LINUXASTER_PLATFORM_LINUX64ASTER_PLATFORM_POSIXASTER_PLATFORM_MINGW: on Windows using MinGW tools.ASTER_PLATFORM_MSYS2: on Window, using MSYS2 framework (ASTER_PLATFORM_MINGWis also defined in this case).
Datatypes and adjustements to prerequisites datatypes:
ASTER_HAVE_64_BITS: Enabled on 64 bits OS, use integer8 as default integers.ASTER_LOGICAL_SIZEASTER_MED_SAME_INT_IDT: True if code_aster and Med use same integers types (not conversion needed in arguments passing).ASTER_MED_VERSION_MAJORASTER_MED_VERSION_MINORASTER_MULT_FRONT_BLOCK_SIZEASTER_MUMPS_VERSIONASTER_MUMPS_CONSORTIUMASTER_MUMPS_REDUCMPIASTER_PETSC_64BIT_INDICES: Enabled if PETSc uses integer8 for PetscInt.ASTER_PETSC_HAVE_HYPREASTER_PETSC_HAVE_MLASTER_PETSC_HAVE_MUMPSASTER_PETSC_HAVE_SUPERLUASTER_PETSC_INT_SIZE: Size of PetscInt.
Advanced features:
ASTER_ENABLE_MPI_CHECK: Enables checking before MPI communications.ASTER_ENABLE_PROC_STATUS: Enabled if/proc/statusis available.ASTER_ENABLE_CGROUP_STATS: Enabled if cgroup v2 measures are available.ASTER_DISABLE_MEMORY_STATS: To disableASTER_ENABLE_PROC_STATUSandASTER_ENABLE_CGROUP_STATS.ASTER_HAVE_SUPPORT_FPE: Enabled if FPE can be catched.ASTER_HAVE_BACKTRACE: Enabled if GNU traceback function is available.ASTER_HAVE_TRACEBACKQQ: Enabled if Intel traceback function is available.ASTER_IGNORE_WITH_ASLINT: Locally enabled to skip a source block during aslint checkings.ASTER_TEST_STRICT: Used to forceTOLE_MACHINEto 1.e-6.ASTER_WITHOUT_PYMOD: Used to create a main entry.
To print more debugging informations:
ASTER_DEBUG_ALLASTER_DEBUG_ALLOCATEASTER_DEBUG_ASSERTASTER_DEBUG_CXXASTER_DEBUG_CXX_LOW_LEVELASTER_DEBUG_CXX_OBJECTSASTER_DEBUG_DLLASTER_DEBUG_EXCEPTASTER_DEBUG_FONCTIONSASTER_DEBUG_IODRASTER_DEBUG_LOCASTER_DEBUG_MEDASTER_DEBUG_MPIASTER_DEBUG_MPICOMASTER_DEBUG_UNITTEST_MPI: If enabled, a unittest is run just after MPI_Init.
System variables used in code_aster source code:
OPEN_MPI: Enabled if OpenMPI implementation is used.HAVE_GETLINE: Used in Metis interface.NDEBUG: Standard variable for non-debug build, used to skip code for released installations.NPY_API_VERSION