The preCICE name
preCICE is always stylized with lowercase pre
and uppercase CICE
, even in the beginning of a sentence.
In technical contexts (e.g., a repository or package name), the lowercase precice
is typically preferred.
The forms PreCICE
or PRECICE
should be avoided, if possible. Hyphenating the name (e.g., pre-CICE
) should be avoided. In LaTeX, use \hyphenation{preCICE}
.
Naming adapters
Wherever possible, adapters use composite names that start with the name of the code they adapt, followed by preCICE. For example, human-friendly names of adapters (e.g., appearing in a publication) are FEniCS-preCICE
and OpenFOAM-preCICE
.
The motivation behind this is to be seen as extensions of the respective simulation code, and be easily discoverable in the context of that code. Looking at a package distribution repository, fenicsprecice
should be close to fenics
.
The adapter
is not part of the name, for concision reasons. The FEniCS community only wants to know that this package enables them to use preCICE with FEniCS. The “adapter” is preCICE-specific terminology.
When hosted under the preCICE organization on GitHub, repositories are named as fenics-adapter
, openfoam-adapter
, etc. The names are always lowercase, and the dash increases readability. The -adapter
part is now part of the name, because in the context of the preCICE organization on GitHub, the relevance to preCICE is implied: precice/fenics-adapter
, precice/openfoam-adapter
.
Naming tools
preCICE-related tools that are meant to be started as executables should be prepended by precice-
. For example:
precice-tools
precice-config-visualizer
precice-micro-manager
precice-aste
This allows easy auto-completion and grouping or related tools.
As an exception, even if it is an executable developed in the context of preCICE, we consider the fmiprecice to follow the naming conventions of adapters, as it is seen from the perspective of the FMI community.
Python packages
Packages on PyPI are named as follows:
pyprecice
: Thepy
implies this is the Python integration, as is common in the Python world (other examples:mpi4py
,petsc4py
,pyMOR
). We don’t name it justprecice
, because it does not install preCICE itself. That could be a separate package in the future, which could be a dependency ofpyprecice
. Still, the package enablesimport precice
: a Python version of the preCICE API. This is intended, as it is clear this is not the C++ API of preCICE. It is also shorter and more intuitive for the user.- preCICE tools (names prepended by
precice-
):precice-config-visualizer
precice-config-visualizer-gui
precice-micro-manager
(previouslymicro-manager-precice
)
- preCICE adapters (names prepended by the respective code, the missing dash is consistent with the package name used with
import
):fenicsprecice
fmiprecice
Docker images
Images on Docker Hub follow various names, which have not yet converged.
Since images are always scoped by the user, the precice-
is omitted from the name. For example:
precice/precice
provides preCICEprecice/<language>-bindings
provide language bindings on top of preCICEprecice/<code>-precice
provide an adapter for a codeprecice/ci-<platform>
do not provide preCICE, but dependencies and tools that are used to build preCICE in the CI