I’m trying to create a solver in my /opt/OpenFOAM/OpenFOAM-9/applications/solvers/electromagnetics
directory using sudo foamNewSource App newSolver
. But, I keep getting the following error:
foamNewSource: Creating new interface file newSolver.C wmakeFilesAndOptions error: environment variable $WM_OPTIONS not set
And then, although I can see a newSolver.C
file, I cannot see a Make
directory and neither the rest of the files.
I’m running EndeavourOS Linux x86_64 with kernel 5.15.6-arch2-1 and shell bash 5.1.12. I installed the openfoam-org
package from the AUR
, and in order to set it up, I have the following in my .bashrc
config file:
source /opt/OpenFOAM/OpenFOAM-9/etc/bashrc
At first, when I did env | grep WM
I couldn’t find WM_OPTIONS
in my system. So, after googling a little bit, I added this to my .bashrc file:
source /opt/OpenFOAM/OpenFOAM-9/etc/bashrc export WM_OPTIONS=linux64GccDPOpt
And now, doing env | grep WM
I get:
WM_COMPILER=Gcc WM_PRECISION_OPTION=DP WM_PROJECT_USER_DIR=/home/username/OpenFOAM/username-9 WM_MPLIB=SYSTEMOPENMPI WM_OPTIONS=linux64GccDPOpt WM_ARCH=linux64 WM_LABEL_SIZE=32 WM_PROJECT=OpenFOAM WM_THIRD_PARTY_DIR=/opt/OpenFOAM/ThirdParty-9 WM_LABEL_OPTION=Int32 WM_CC=gcc WM_CFLAGS=-m64 -fPIC WM_LINK_LANGUAGE=c++ WM_OSTYPE=POSIX WM_PROJECT_VERSION=9 WM_DIR=/opt/OpenFOAM/OpenFOAM-9/wmake WM_ARCH_OPTION=64 WM_CXXFLAGS=-m64 -fPIC -std=c++0x WM_PROJECT_INST_DIR=/opt/OpenFOAM WM_LDFLAGS=-m64 WM_CXX=g++ WM_COMPILE_OPTION=Opt WM_PROJECT_DIR=/opt/OpenFOAM/OpenFOAM-9 WM_COMPILER_TYPE=system WM_COMPILER_LIB_ARCH=64
Now I can see the WM_OPTIONS
environment variable (just above WM_ARCH=linux64
and below WM_MPLIB=SYSTEMOPENMPI
), but I still get the same wmakeFilesAndOptions
error.
I don’t know what configuration I’m messing up, so I’d appreciate some help!
Thanks!
Advertisement
Answer
Using sudo in this case is not a good idea, instead run the scripts on your home directory:
mkdir -p $FOAM_RUN cd $FOAM_RUN foamNewSource App newSolver
For WM_OPTIONS
environment variable, don’t set it manually, instead use:
export WM_OPTIONS=$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION$WM_COMPILE_OPTION