Test cases and example applications should be, for what possible, of general interest.

The test case has to be self-contained. In particular, it must be possible to execute the test case with a standard installation of OpenFOAM and OpenQBMM. Test cases which require external software will not be accepted.

Only the files required to execute the test case should be provided. Any additional file not strictly necessary to the execution of the provided test case should be removed. Please, refer to How to prepare a test case for submission below for additional details.

How to prepare a test case for submission

Test cases are supposed to work out of the box, simply executing the standard sequence of commands

blockMesh

setFields (if initialization is needed)

decomposePar (if parallel run is needed)

solver command

In case the command sequence is more complex than what indicate above, a bash script caled Allrun must be provided, as clarified below.

Before submitting a test case or an example application, the following steps should be followed:

Assign a representative name to the directory containing the test case. A specific name is preferred, because different contributors may work on similar applications. For example, if your test case demonstrates the solution of a population balance equation in a chemical reactor for the precipitation of barium sulfate, it would be advisable to use a name like bariumSulfatePBE, rather than reactorPBE. Names should follow the back camel convention, as shown in the previous examples.

If your case requires non-uniform initial conditions, provide the setFieldDict rather than the initialized fields, in order to limit the size of the test case. If the initial condition cannot be set with setFieldDict, providing the initialized fields is acceptable.

If the mesh is generated using blockMesh, please only provide the blockMeshDict and eventually the boundary file. Do not provide the other mesh files.

If the mesh is generated using snappyHexMesh or foamyHexMesh, please provide the corresponding dictionary and the STL/OBJ files.

Please provide two bash scripts to automate the execution of the test case and the cleanup of its directory

A bash script called Allrun, which should contain the sequence of commands that are required to execute the test case.

A bash script called Allclean, which should remove all the files that were generated during the execution of the test case, effectively resetting it to the initial state.

Add a README file in the main directory of the test case with your name, affiliation, and a brief description of the test case.

How to submit a test case

In order to contribute a test case or an example application, contributors need to create a free github account and follow these steps:

Clone the forked git repository from the contributor’s account (YourGithubUserName must be replaced with the actual contributor user name on GitHub.

git clone git@github.com:YourGithubUserName/Contributed-Cases.git

Add the test case to the directory corresponding to the OpenQBMM solver required to run the test case.

Add the test case to the git repository using the git add command:

git add /path/to/test/case/top/directory

Commit your changes to the local copy of the git repository

git commit -m “Added case <putCaseNameHere>”

Push your changes to the repository on GitHub (Warning: this step will make your contribution public and visible to anybody on the Internet)

git push

Issue a Pull request to the Contributed-Cases repository on GitHub.

The developers of the OpenQBMM suite of solvers will review your contribution and verify it satisfies the requirements described above. In case the requirements are satisfied, the contribution will be accepted, and made available through the OpenQBMM Contributed-Cases repository on GitHub. If a contribution is accepted, the name of the contributor will be added to the list of contributors. It is advisable to use an appropriate name and email when submitting the contribution, in order to ensure proper recognition.

This offering is not approved or endorsed by OpenCFD Limited (ESI Group), the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. The development team of OpenQBMM is not associated to OpenCFD Ltd.