|
[Sponsors] |
Problem while compiling modified simpleFoam solver |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 26, 2020, 21:01 |
Problem while compiling modified simpleFoam solver
|
#1 |
New Member
Mattia Fabrizio Ciarlatani
Join Date: May 2020
Posts: 7
Rep Power: 6 |
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 |
|
|
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 |