Hello,
General Problem
I am trying to run the coupled simulation on a supercomputing platform.
I plan to do the 6-2ay CFD-DEM-FEM coupling on the cluster instead of the personal computer.
I have now thoroughly tested out the case and physics on a local workstation, thus the case itself is ready to be run for a longer duration.
I am facing issues trying to run the OpenFOAM participant. I am able to run the XDEM participant, so I can confirm that preCICE was installed properly.
OS
The cluster has RedHat (RHEL) Linux OS, v8.
OpenFOAM v7
Installation process:
- preCICE: build from source (latest version)
I add the following to my run script when running or compiling other adapters
PRECICE_PREFIX=/home/users/padhav/0_installs/install_preCICE # set this to your selected prefix
export PATH=$PRECICE_PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$PRECICE_PREFIX/lib:$LD_LIBRARY_PATH
export CPATH=$PRECICE_PREFIX/include:$CPATH
# Enable detection with pkg-config and CMake
export PKG_CONFIG_PATH=$PRECICE_PREFIX/lib64/pkgconfig:$PKG_CONFIG_PATH
export CMAKE_PREFIX_PATH=$PRECICE_PREFIX:$CMAKE_PREFIX_PATH
export PATH="$PATH:/home/users/padhav/0_installs/build_preCICE"
export PATH="$PATH:/home/users/padhav/0_installs/build_preCICE/lib/pkgconfig/libprecice.pc"
I confirm that libprecice.so
and libprecice.so.2
are created. This is further confirmed, as I am able to run the XDEM adapter, it initializes and waits for the other participant.
- OpenFOAM: I use the pre-installed module on HPC to compile the adapter.
wmake.log
andldd.log
are attached. I see that the adapter library.so
file is created in the$FOAM_USER_LIBBIN
. I do get an error during compilation, but I know this error exists in the local installation as well, and the adapter works just fine. (wmake_local.log
andldd_local.log
added for installations on a local workstation.)
Running the simulation
- Case set up: The only thing that I had to modify was giving the absolute path of the OpenFOAM adapter in the
Fluid/system/controlDict
as follows:
functions
{
preCICE_Adapter
{
type preciceAdapterFunctionObject;
libs ("/home/users/padhav/OpenFOAM/padhav-7/platforms/linux64GccDPInt32Opt/lib/libpreciceAdapterFunctionObject_xdem_coupling-HMT-devInterFoam.so");
}
}
- Load the environment: I need to load the modules and other environment variables
source /work/projects/luxdem/easybuild/load-luxdem-settings-aion-2020b.sh
module load toolchain/XDEM-devel/5.0-foss-2020b-OF7
source "$FOAM_BASH"
export LD_LIBRARY_PATH=$FOAM_USER_LIBBIN:$LD_LIBRARY_PATH
Note: If I don’t add the $FOAM_USER_LIBBIN
to $LD_LIBRARY_PATH
, OpenFOAM still complains it cannot find the OpenFOAM adapter .so
file. But if I add this the error is modified.
Error
Here is the output with the relevant error:
[6] --> FOAM FATAL ERROR:
[6] Unknown function type preciceAdapterFunctionObject
Valid functions are :
6
(
patchProbes
probes
psiReactionThermoMoleFractions
rhoReactionThermoMoleFractions
sets
surfaces
)
[6]
[6]
[6] From function static Foam::autoPtr<Foam::functionObject> Foam::functionObject::New(const Foam::word&, const Foam::Time&, const Foam::dictionary&)
[6] in file db/functionObjects/functionObject/functionObject.C at line 100.
[6]
FOAM parallel run exiting
[6]
[2]
[2]
[2] --> FOAM FATAL ERROR:
[2] Unknown function type preciceAdapterFunctionObject
Valid functions are :
6
(
patchProbes
probes
psiReactionThermoMoleFractions
rhoReactionThermoMoleFractions
sets
surfaces
)
As per the Troubleshoot page, I should check the following:
check if libpreciceAdapterFunctionObject.so
exist (my adapter name is modified but it exists)
check if ldd $FOAM_USER_LIBBIN/libpreciceAdapterFunctionObject.so
returns any errors (I run this command, and don’t see any error, not sure if I am looking correctly)
Help Wanted
- Is there anything in the
wmake.log
andldd.log
that I am missing? - Is there anything I am missign in terms of linking or exporting paths?
ldd_local.log (8.0 KB)
ldd.log (13.2 KB)
wmake_local.log (59.5 KB)
wmake.log (133.6 KB)
slurm-455279.out (7.4 KB)