|
[Sponsors] | |||||
Problem while compiling modified simpleFoam solver |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|
|
#1 |
|
New Member
Mattia Fabrizio Ciarlatani
Join Date: May 2020
Posts: 7
Rep Power: 7 ![]() |
Hi everyone,
I'm writing here because I'm having trouble to compile a modified version of simpleFoam pointing to a new turbulenceClass. Since I need to add new members to the original openfoam turbulenceModel class, I implemented a new turbulenceModel class in OpenFOAM named turbulenceModelDSDL. To do this, I copied the entire folder OpenFOAM-v1906/src/TurbulenceModels/incompressible and OpenFOAM-v1906/src/TurbulenceModels/turbulenceModels to my personal directory $WM_PROJECT_USER_DIR/src/turbulenceModels. After doing this, I renamed in every file every instance of turbulenceModel turbulenceModelDSDL, renamed turbolenceModel.* themselves, added the new members, and modified the incompressible/Make/* and turbulenceModels/Make/* as turbulenceModels/Make/files: Code:
turbulenceModelDSDL.C /* Wall Functions */ wallFunctions = derivedFvPatchFields/wallFunctions nutWallFunctions = $(wallFunctions)/nutWallFunctions $(nutWallFunctions)/DSDLnutstoWallFunction/DSDLnutstoWallFunctionFvPatchScalarField.C $(nutWallFunctions)/DSDLnutcohWallFunction/DSDLnutcohWallFunctionFvPatchScalarField.C epsilonWallFunctions = $(wallFunctions)/epsilonWallFunctions $(epsilonWallFunctions)/DSDLepsilonWallFunction/DSDLepsilonWallFunctionFvPatchScalarField.C $(epsilonWallFunctions)/DSDLmyEpsilonRoughWallFunction/DSDLmyEpsilonRoughWallFunctionFvPatchScalarField.C LIB = $(FOAM_USER_LIBBIN)/libDSDLTurbulenceModels Code:
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lfiniteVolume \
-lmeshTools
Code:
incompressibleTurbulenceModel.C turbulentTransportModels/turbulentTransportModels.C LIB = $(FOAM_USER_LIBBIN)/libDSDLincompressibleTurbulenceModels Code:
EXE_INC = \
-I../turbulenceModels/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/transportModels
LIB_LIBS = \
-L$(FOAM_USER_LIBBIN) \
-lfiniteVolume \
-lmeshTools \
-lincompressibleTransportModels
I also changed the name of the library turbulentTransportModel.H to turbulentTransportModelDSDL.H. Once I did this, I compiled turbulenceModelDSDL.C, a number of wall functions belonging to this new class, incompressibleTurbulenceModel.C, and turbulenceTransportModelsDSDL.H, which contained a new turbulence model called RNGkEpsilonDSDL. Up to this point, everything worked just fine: the compilation was successfull and OpenFOAM is able to see the new turbulence model, RNGkEpsilonDSDL, and the new wall functions. Since I now need to use the RNGkEpsilonDSDL model with simpleFoam, and this model belongs to the class turbulenceModelDSDL, I need to modify the simpleFoam solver to correctly generate the pointer to the new turbulenceModelDSDL class. To do this, I copied the simpleFoam folder, renamed it to DSDLsimpleFoam, included the new header turbulenceTransportModelDSDL.H in DSDLsimpleFoam.C Code:
\*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "singlePhaseTransportModel.H" #include "turbulentTransportModelDSDL.H" #include "simpleControl.H" #include "fvOptions.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Code:
autoPtr<incompressible::turbulenceModelDSDL> turbulence
(
incompressible::turbulenceModelDSDL::New(U, phi, laminarTransport)
);
DSDLsimpleFoam/Make/files: Code:
DSDLsimpleFoam.C EXE = $(FOAM_USER_APPBIN)/DSDLsimpleFoam Code:
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$$WM_PROJECT_USER_DIR/src/TurbulenceModels/incompressible/lnInclude \
-I$$WM_PROJECT_USER_DIR/src/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-L$(FOAM_USER_LIBBIN)\
-lincompressibleTransportModels \
-latmosphericModels
When I try to compile DSDLsimpleFoam I get the following error: Code:
Making dependency list for source file DSDLsimpleFoam.C
g++ -std=c++11 -m64 -DOPENFOAM=1906 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3 -DNoRepository -ftemplate-depth-100 -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/finiteVolume/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/meshTools/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/sampling/lnInclude -I$WM_PROJECT_USER_DIR/src/TurbulenceModels/incompressible/lnInclude -I$WM_PROJECT_USER_DIR/src/TurbulenceModels/turbulenceModels/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/transportModels -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/transportModels/incompressible/singlePhaseTransportModel -IlnInclude -I. -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/OpenFOAM/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/OSspecific/POSIX/lnInclude -fPIC -c DSDLsimpleFoam.C -o Make/linux64GccDPInt32Opt/DSDLsimpleFoam.o
g++ -std=c++11 -m64 -DOPENFOAM=1906 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3 -DNoRepository -ftemplate-depth-100 -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/finiteVolume/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/meshTools/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/sampling/lnInclude -I$WM_PROJECT_USER_DIR/src/TurbulenceModels/incompressible/lnInclude -I$WM_PROJECT_USER_DIR/src/TurbulenceModels/turbulenceModels/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/transportModels -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/transportModels/incompressible/singlePhaseTransportModel -IlnInclude -I. -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/OpenFOAM/lnInclude -I/home/mattia/OpenFOAM/OpenFOAM-v1906/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/DSDLsimpleFoam.o -L/home/mattia/OpenFOAM/OpenFOAM-v1906/platforms/linux64GccDPInt32Opt/lib \
-lfiniteVolume -lfvOptions -lmeshTools -lsampling -L/home/mattia/OpenFOAM/mattia-v1906/platforms/linux64GccDPInt32Opt/lib -lincompressibleTransportModels -latmosphericModels -lOpenFOAM -ldl \
-lm -o /home/mattia/OpenFOAM/mattia-v1906/platforms/linux64GccDPInt32Opt/bin/DSDLsimpleFoam
Make/linux64GccDPInt32Opt/DSDLsimpleFoam.o: In function `main':
DSDLsimpleFoam.C:(.text.startup+0x1733): undefined reference to `Foam::turbulenceModelDSDL::propertiesName'
DSDLsimpleFoam.C:(.text.startup+0x403a): undefined reference to `Foam::turbulenceModelDSDL::propertiesName'
collect2: error: ld returned 1 exit status
/home/mattia/OpenFOAM/OpenFOAM-v1906/wmake/makefiles/general:140: recipe for target '/home/mattia/OpenFOAM/mattia-v1906/platforms/linux64GccDPInt32Opt/bin/DSDLsimpleFoam' failed
make: *** [/home/mattia/OpenFOAM/mattia-v1906/platforms/linux64GccDPInt32Opt/bin/DSDLsimpleFoam] Error 1
I included here DSDLsimpleFoam in case you want to take a look at it Any help will be appreciated. Thanks for your time, Mattia P.S.: is the first time i write a post here so please tell me if there are mistakes on this thread UPDATE: Hey guys, I have an update: I was able to compile the solver by modifying the pointer definition to Code:
autoPtr<incompressible::turbulenceModelDSDL> turbulence
(
incompressible::turbulenceModelDSDL::New(U, phi, laminarTransport, "someRandomWord")
);
which means that the undefined reference was just asking to input some string as turbulenceProperties. My question now is: why do I need to input something there while the normal simpleFoam does not require anything? In other words: what would happen if I defined the pointer in simpleFoam as Code:
autoPtr<incompressible::turbulenceModel> turbulence
(
incompressible::turbulenceModel::New(U, phi, laminarTransport, "someRandomWord")
);
Last edited by mattiafc; May 27, 2020 at 14:20. |
|
|
|
|
|
![]() |
| Tags |
| compilation error, inheritance, linking, simplefoam, turbulencemodels |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [General] Extracting ParaView Data into Python Arrays | Jeffzda | ParaView | 30 | November 6, 2023 22:00 |
| Problem in compiling a solver made for a different version (v2.0 ->v4.1) | JLS | OpenFOAM Programming & Development | 2 | July 9, 2019 15:03 |
| diffusivity selection for modified displacementLaplacian solver for FSI problems | zhaozhenkai | OpenFOAM Running, Solving & CFD | 2 | November 11, 2016 06:41 |
| Error in compiling a modified solver | immortality | OpenFOAM Running, Solving & CFD | 3 | March 29, 2013 01:29 |
| Divergence problem | Smaras | FLUENT | 13 | February 21, 2013 06:03 |