CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Installation

OpenFOAM on MinGW crosscompiler hosted on Linux

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   January 3, 2009, 15:57
Default No Avail... Guess this is a
  #101
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
No Avail...

Guess this is a harder quirk...

Here is my make/options

EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/LESmodels \
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude

LIB_LIBS = \
-lfiniteVolume \
-lbasicThermophysicalModels \
-lspecie \
-lcompressibleTurbulenceModels \
-lcompressibleLESmodels \
-lLESdeltas

after cd..&&wclean&&wmake the result was

Making dependency list for source file cLiftDrag/cLiftDrag.C
SOURCE=cLiftDrag/cLiftDrag.C ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/cLiftDrag.o
mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -Wl,--enable-auto-import,--force-exe-suffix Make/linuxmingw32DPOpt/cLiftDrag.o -L/home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt \
-lOpenFOAM -lm -o OpenFOAM.out.exe
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1fa): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x223): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x466): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x946): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x96f): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0xc8e): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0xd85): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x179a): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x17c3): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x198a): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1a34): undefined reference to `Foam::fvMesh::Cf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1faa): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x1fd3): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x225f): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x230f): undefined reference to `Foam::fvMesh::Cf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x2419): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x2531): undefined reference to `Foam::fvMesh::Cf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x3126): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x314f): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x34df): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x35d6): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x3936): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x468a): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x46b3): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4a43): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4b3a): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x4e9a): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5be6): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5c0f): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x5e12): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x62f2): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x631b): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x65b8): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x66af): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x712a): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7153): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7551): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x7648): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x79a8): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x86fa): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8723): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8b21): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8c18): undefined reference to `Foam::fvMesh::magSf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text+0x8f78): undefined reference to `Foam::fvMesh::Sf() const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text$_ZN4Foam14GeometricFieldINS_10SymmTensorIdEE NS_12fvPatchFieldENS_7volMeshE EeqERKNS_3tmpIS5_EE[Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::operator==(Foam::tmp<foam::geometr icfield<foam::symmtensor<doubl e>, Foam::fvPatchField, Foam::volMesh> > const&)]+0x2b): undefined reference to `Foam::fvMesh::operator!=(Foam::fvMesh const&) const'
Make/linuxmingw32DPOpt/cLiftDrag.o:cLiftDrag.C.text$_ZNK4Foam14GeometricFieldINS_10SymmTensorIdE ENS_12fvPatchFieldENS_7volMesh EE12storeOldTimeEv[Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::storeOldTime() const]+0x5c): undefined reference to `Foam::GeometricField<foam::symmtensor<double>, Foam::fvPatchField, Foam::volMesh>::debug'
/home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/lib/libmingw32.a(main.o):main.c.text+0x104): undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status
make: *** [OpenFOAM.out.exe] Error 1


But one thing is funny here... since i am compiling a lib (dll) shouldn't it force the build of libCompressible.dll in the lib/linuxmingw32 the same way it built libCompressible.so in the native system... ?

Why does it state that --force-exe-suffix and -lOpenFOAM -lm -o OpenFOAM.out.exe... ?

I do not know enough about mingw32 or gcc but i think that the problem lies here...

Best regards

Alex


BTW, I am trying to compile the OF-1.5.x so as to view the diffs between this and the OF-1.5-dev ( which compiled cleanly from source ) but somehow the making of OF-1.5.x fails even after having installed flex and binutils...
alexandrepereira is offline   Reply With Quote

Old   January 3, 2009, 18:12
Default ...Trying again to compile OF-
  #102
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
...Trying again to compile OF-1.5.x... let's wait and see...

Why is it that snappyHexMesh is not supposed to compile under mingw32...?

Is it because the cyclic dependency issue that you refered to...?

...man, it is in these moments that wish I knew ( a lot more ) C++... Just to be able to solve these issues... I mean... I have no difficulty with the algorythmic aspects of CFD, FEA, optimization techniques, either gradient based or heuristics... but when it comes to implementation issues..., I am stuck with the Fortran90 paradigm... doesn't help much when you want to be a c++ coder huh...?! :-(

Regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 3, 2009, 19:20
Default snappyHex depends directly on
  #103
Senior Member
 
gocarts's Avatar
 
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 8
gocarts is on a distinguished road
snappyHex depends directly on ParMetis, which I didn't try to compile for Windows.
__________________
Symscape, Computational Fluid Dynamics for all
gocarts is offline   Reply With Quote

Old   January 3, 2009, 19:23
Default ,,,Ok... Now I understand, pa
  #104
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
,,,Ok... Now I understand, parmetis Is also the library required for parallel computations in Foam, none of the apps of 1.4.1 depending on it compiled also...
alexandrepereira is offline   Reply With Quote

Old   January 3, 2009, 19:35
Default ...By what I have seen it depe
  #105
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
...By what I have seen it depends on MPI... I think there is no MPI port for windows, and a port of parmetis for windows would require a major rewriting of the code in terms of the substitution of MPI for MPICH... am i right here..?
alexandrepereira is offline   Reply With Quote

Old   January 4, 2009, 09:17
Default Hi Richard, I have successf
  #106
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Richard,

I have successfully compiled OpenFOAM-1.5.x,
but when I patch using the last patch from http://www.symscape.com/openfoam-1-5-x-on-windows there are some errors :

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ patch -p1 -i v2-mingw-openfoam-1-5-x.patch
patching file applications/solvers/combustion/Xoodles/Xoodles.C
patching file applications/solvers/compressible/rhoCentralFoam/BCs/Make/options
patching file applications/solvers/compressible/rhopSonicFoam/BCs/Make/options
patching file applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/options
patching file applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/Make/optio ns
patching file applications/solvers/multiphase/twoPhaseEulerFoam/phaseModel/Make/options
patching file applications/utilities/mesh/generation/blockMesh/curvedEdges/lineEdge.C
patching file applications/utilities/mesh/generation/extrudeMesh/extrudeModel/Make/options
patching file applications/utilities/mesh/manipulation/setSet/Allwmake
patching file applications/utilities/miscellaneous/foamDebugSwitches/Make/options
patching file applications/utilities/postProcessing/dataConversion/foamToVTK/Make/options
patching file etc/bashrc
Hunk #1 succeeded at 63 (offset 1 line).
Hunk #2 FAILED at 91.
1 out of 2 hunks FAILED -- saving rejects to file etc/bashrc.rej
patching file etc/bashrc-mingw32
patching file etc/settings.sh
Hunk #1 FAILED at 93.
1 out of 1 hunk FAILED -- saving rejects to file etc/settings.sh.rej
patching file src/Allwmake
patching file src/autoMesh/Make/options
patching file src/conversion/ensight/part/ensightPart.C
patching file src/conversion/ensight/part/ensightPartIO.C
patching file src/conversion/Make/options
patching file src/decompositionAgglomeration/Allwmake
patching file src/decompositionAgglomeration/decompositionMethods/Make/files
patching file src/decompositionAgglomeration/decompositionMethods/Make/options
patching file src/dynamicFvMesh/Make/options
patching file src/dynamicMesh/Make/options
patching file src/edgeMesh/Make/options
patching file src/engine/Make/options
patching file src/errorEstimation/Make/options
patching file src/finiteVolume/Make/options
patching file src/fvMotionSolver/Make/options
patching file src/lagrangian/basic/Make/options
patching file src/lagrangian/dieselSpray/Make/options
patching file src/lagrangian/dieselSpray/parcel/parcel.H
patching file src/lagrangian/intermediate/Make/options
patching file src/lagrangian/molecularDynamics/molecule/Make/options
patching file src/lagrangian/molecularDynamics/potential/Make/options
patching file src/lagrangian/solidParticle/Make/options
patching file src/meshTools/Make/files
patching file src/meshTools/Make/options
patching file src/meshTools/triSurface/octreeData/octreeDataTriSurfaceTreeLeaf.H
patching file src/ODE/Make/options
patching file src/OpenFOAM/containers/Lists/PtrList/PtrList.C
patching file src/OpenFOAM/db/dlLibraryTable/dlLibraryTable.C
patching file src/OpenFOAM/db/IOobject/IOobject.C
patching file src/OpenFOAM/db/IOobject/IOobject.H
patching file src/OpenFOAM/db/IOobject/IOobjectI.H
patching file src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C
patching file src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C
patching file src/OpenFOAM/global/global.C
patching file src/OpenFOAM/include/OSspecific.H
patching file src/OpenFOAM/Make/files
patching file src/OpenFOAM/Make/options
patching file src/OpenFOAM/primitives/Lists/stringListTemplates.C
patching file src/OpenFOAM/primitives/random/Random.C
Hunk #1 succeeded at 38 with fuzz 2 (offset 5 lines).
patching file src/OpenFOAM/primitives/Scalar/doubleFloat.H
patching file src/OpenFOAM/primitives/strings/fileName/fileNameI.H
patching file src/OpenFOAM/primitives/uint/uintIO.C
Hunk #1 FAILED at 66.
1 out of 1 hunk FAILED -- saving rejects to file src/OpenFOAM/primitives/uint/uintIO.C.rej
patching file src/OpenFOAM/primitives/ulong/ulongIO.C
patching file src/OSspecific/MSwindows/clockTime/clockTime.C
patching file src/OSspecific/MSwindows/clockTime/clockTime.H
patching file src/OSspecific/MSwindows/cpuTime/cpuTime.C
patching file src/OSspecific/MSwindows/cpuTime/cpuTime.H
patching file src/OSspecific/MSwindows/deelx.h
patching file src/OSspecific/MSwindows/fileStat.C
patching file src/OSspecific/MSwindows/fileStat.H
patching file src/OSspecific/MSwindows/Make/files
patching file src/OSspecific/MSwindows/MSwindows.C
patching file src/OSspecific/MSwindows/MSwindows.H
patching file src/OSspecific/MSwindows/OSspecific.C
patching file src/OSspecific/MSwindows/printStack.C
patching file src/OSspecific/MSwindows/regularExpression.C
patching file src/OSspecific/MSwindows/regularExpression.H
patching file src/OSspecific/MSwindows/signals/sigFpe.C
patching file src/OSspecific/MSwindows/signals/sigFpe.H
patching file src/OSspecific/MSwindows/signals/sigInt.C
patching file src/OSspecific/MSwindows/signals/sigInt.H
patching file src/OSspecific/MSwindows/signals/sigQuit.C
patching file src/OSspecific/MSwindows/signals/sigQuit.H
patching file src/OSspecific/MSwindows/signals/sigSegv.C
patching file src/OSspecific/MSwindows/signals/sigSegv.H
patching file src/OSspecific/MSwindows/timer.C
patching file src/OSspecific/MSwindows/timer.H
patching file src/OSspecific/Unix/Make/files
patching file src/OSspecific/Unix/regularExpression.C
patching file src/OSspecific/Unix/regularExpression.H
patching file src/OSspecific/Unix/Unix.C
patching file src/postProcessing/fieldAverage/Make/options
patching file src/postProcessing/foamCalcFunctions/Make/options
patching file src/postProcessing/forces/Make/options
patching file src/postProcessing/postCalc/Make/options
patching file src/Pstream/dummy/Make/options
patching file src/randomProcesses/Make/options
patching file src/sampling/Make/options
patching file src/thermophysicalModels/Allwmake
patching file src/thermophysicalModels/barotropicCompressibilityModel/Make/options
patching file src/thermophysicalModels/basic/Make/options
patching file src/thermophysicalModels/chemistryModel/Make/options
patching file src/thermophysicalModels/combustion/Make/options
patching file src/thermophysicalModels/laminarFlameSpeed/Make/options
patching file src/thermophysicalModels/liquidMixture/Make/options
patching file src/thermophysicalModels/liquids/Make/options
patching file src/thermophysicalModels/pdfs/Make/options
patching file src/thermophysicalModels/radiation/Make/options
patching file src/thermophysicalModels/solidMixture/Make/options
patching file src/thermophysicalModels/solids/Make/options
patching file src/thermophysicalModels/specie/Make/options
patching file src/thermophysicalModels/thermophysicalFunctions/Make/options
patching file src/topoChangerFvMesh/Make/options
patching file src/transportModels/incompressible/Make/options
patching file src/transportModels/interfaceProperties/Make/options
patching file src/triSurface/Make/options
patching file src/turbulenceModels/LES/compressible/Make/options
patching file src/turbulenceModels/LES/incompressible/Make/options
patching file src/turbulenceModels/LES/LESdeltas/Make/options
patching file src/turbulenceModels/LES/LESfilters/Make/options
patching file src/turbulenceModels/RAS/compressible/Make/options
patching file src/turbulenceModels/RAS/incompressible/Make/options
patching file svn_ignore.txt
patching file wmake/Makefile
patching file wmake/wmake
Hunk #1 succeeded at 164 (offset -1 lines).
patching file wmake/wmakeLnInclude
Hunk #2 FAILED at 126.
1 out of 2 hunks FAILED -- saving rejects to file wmake/wmakeLnInclude.rej

Has anyone reported those already...?

Best regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 4, 2009, 10:48
Default Ran into the same problem. Tr
  #107
Member
 
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 46
Rep Power: 8
roth is on a distinguished road
Ran into the same problem. Try using the same git version that the patch was designed for as alluded to in step #3 in the Symscape build process. i.e. the following steps worked for me:

1. git clone git://repo.or.cz/OpenFOAM-1.5.x.git

2. cd OpenFOAM-1.5.x

3. git checkout 2fee2240cb5c6e2ecbfa65af95c8a10232f9d5d5

Then patch as you normally would.

Mike
roth is offline   Reply With Quote

Old   January 4, 2009, 12:21
Default Hi Michael Thanks for the h
  #108
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Michael

Thanks for the hint :-)

Alex
alexandrepereira is offline   Reply With Quote

Old   January 7, 2009, 19:36
Default Hi Michael, After following
  #109
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Michael,

After following exactly the instructions on Symscape web page, and using your hint, I have finally patched OpenFOAM-1.5.x... but when I run ./Allwmake the first library, zlib.dll gets compiled... but the process fails in hoard, with this message ...



alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ ./Allwmake
+ cd .
+ cd wmake/src
+ make
make: Nothing to be done for `all'.
+ cd /home/alex/OpenFOAM/ThirdParty
+ ./Allwmake
+ [ -n mingw32-gcc ]
+ export CC=mingw32-gcc
+ [ -n mingw32-g++ ]
+ export CXX=mingw32-g++
+ [ -n ]
+ [ -n ]
+ [ -n ]
+ wmake libso zlib-1.2.3
Making dependency list for source file adler32.c
Making dependency list for source file compress.c
Making dependency list for source file crc32.c
Making dependency list for source file deflate.c
Making dependency list for source file gzio.c
Making dependency list for source file infback.c
Making dependency list for source file inffast.c
Making dependency list for source file inflate.c
Making dependency list for source file inftrees.c
Making dependency list for source file trees.c
Making dependency list for source file uncompr.c
Making dependency list for source file zutil.c
SOURCE=adler32.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/adler32.o
SOURCE=compress.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/compress.o
SOURCE=crc32.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/crc32.o
SOURCE=deflate.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/deflate.o
SOURCE=gzio.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/gzio.o
SOURCE=infback.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/infback.o
SOURCE=inffast.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inffast.o
SOURCE=inflate.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inflate.o
SOURCE=inftrees.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/inftrees.o
SOURCE=trees.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/trees.o
SOURCE=uncompr.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/uncompr.o
SOURCE=zutil.c ; mingw32-gcc -m32 -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -O3 -DNDEBUG -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/zutil.o
Creating library file: /home/alex/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/libz.a
'/home/alex/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/libz.dll' is up to date.
+ cd malloc
+ ./Allwmake
+ wmake libso hoard
Making dependency list for source file hoard-371/src/libhoard.cpp
SOURCE=hoard-371/src/libhoard.cpp ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -DNDEBUG -D_REENTRANT=1 -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OpenFOAM/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.5.x/src/OSspecific/MSwindows/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/libhoard.o
hoard-371/src/libhoard.cpp:45: warning: ignoring #pragma inline_depth
hoard-371/src/libhoard.cpp:49: warning: ignoring #pragma warning
In file included from lnInclude/mmapheap.h:48,
from hoard-371/src/alignedsuperblockheap.h:6,
from hoard-371/src/hoard.h:52,
from hoard-371/src/libhoard.cpp:94:
lnInclude/spinlock.h:70:1: warning: "_WIN32_WINNT" redefined
In file included from /home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/windows.h:48,
from lnInclude/cpuinfo.h:33,
from hoard-371/src/libhoard.cpp:93:
/home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/windef.h:20:1: warning: this is the location of the previous definition.....


...../home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4 .2.3/../../../../mingw32/include/winnt.h:2397: error: expected unqualified-id before end of line
/home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/winnt.h:2397: error: expected `}' before end of line
/home/alex/projects/win32compiler/gcc4.2.3/install/bin/../lib/gcc/mingw32/4.2.3/ ../../../../mingw32/include/winnt.h:2397: error: expected declaration before end of line
make: *** [Make/linuxmingw32DPOpt/libhoard.o] Error 1
+ wmake libo fbsdmalloc
Making dependency list for source file fbsdmalloc.c
could not open file libc_private.h for source file fbsdmalloc.c
could not open file spinlock.h for source file fbsdmalloc.c........



......Is this a normal continuation...?

If you or someone ever managed to compile OpenFOAM-1.5.x for windows could he post the detailed howto here...?

... because I maybe missing something trivial, a stupid detail, but honestly i just cannot figure what... :-(

OpenFOAM-1.4.1 compiles OK... ( excludind those parallel processing libraries issues and dependent execs... but OF-1.5.x is just... :-( .. )


thanks in advance

Regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 7, 2009, 19:49
Default Hi Again, My Foam environme
  #110
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Again,

My Foam environment variables are those :

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ clear

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_INST_DIR
/home/alex/OpenFOAM
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT
OpenFOAM
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_VERSION
1.5.x
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_DIR
/home/alex/OpenFOAM/OpenFOAM-1.5.x
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_USER_DIR
/home/alex/OpenFOAM/alex-1.5.x
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_ARCH
linux
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER
mingw32
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_DIR

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_BIN

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILER_LIB

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_COMPILE_OPTION
Opt
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_DIR
/home/alex/OpenFOAM/OpenFOAM-1.5.x/wmake
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_JAVAC_OPTION
Opt
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_LINK_LANGUAGE
c++
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_MPLIB
NONE
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_OPTIONS
linuxmingw32DPOpt
alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_LANGUAGE

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$ echo $WM_PROJECT_SHELL

alex@iskandhar:~/OpenFOAM/OpenFOAM-1.5.x$


To you think that the $WM_LINK_LANGUAGE=c++ is the one to blame for what is happening...?


I will try changing this to see where does it get...

Alex
alexandrepereira is offline   Reply With Quote

Old   January 8, 2009, 15:17
Default You should only be compiling z
  #111
Senior Member
 
gocarts's Avatar
 
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 8
gocarts is on a distinguished road
You should only be compiling zlib from the Third Party source pack. According to:

4. Install the Third Party source pack and only compile the zlib library.

from: http://www.symscape.com/openfoam-1-5-x-on-windows
__________________
Symscape, Computational Fluid Dynamics for all
gocarts is offline   Reply With Quote

Old   January 12, 2009, 17:56
Default Hi Richard, I have tried to
  #112
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Richard,

I have tried to port an application to win32O penFOAM, compiles trivially in OF-1.4.1, it depends on two libraries, libIcompressiblePostProcessing.dll and libCompressiblePostProcessing.dll, I have built them successfully...

But when I try to build the exec, it finds undefined symbols in the object file... and fails to build...

The message is :

alex@iskandhar:~/Desktop/liftDragTool/liftDrag$ wmake
Making dependency list for source file liftDrag.C
SOURCE=liftDrag.C ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/cfdTools/general/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/transportModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/liftDrag.o
mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/cfdTools/general/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/specie/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/thermophysicalModels/basic/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/turbulenceModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/transportModels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/LESmodels/LESdeltas/lnInclude -IlnInclude -I. -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/home/alex/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -Wl,--enable-auto-import,--force-exe-suffix Make/linuxmingw32DPOpt/liftDrag.o -L/home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt \
-lcompressiblePostProcessing -lincompressiblePostProcessing -lOpenFOAM -lm -o /home/alex/OpenFOAM/OpenFOAM-1.4.1/applications/bin/linuxmingw32DPOpt/liftDrag.e xe
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xd46): undefined reference to `Foam::fvMesh::fvMesh(Foam::IOobject const&)'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xdb2): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2a24): undefined reference to `Foam::fvMesh::readUpdate()'


... and it continues complaining a bout missing lots of stuff... but the Make/files explicitly references them... :


EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude/ \
-I$(LIB_SRC)/cfdTools/general/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/postProcessing \
-I$(LIB_SRC)/LESmodels \
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude

EXE_LIBS = \
-lcompressiblePostProcessing \
-lincompressiblePostProcessing



And besides, the app compiles under linux OS... is this a cyclic dependency issue here...?

both my libCompressiblePostProcessing.dll and my libIncompressiblePostprocessing.dll live in /home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt, I have checked this...


Why does the build of the exe logs as if all the other libs were not there... ?


Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xd46): undefined reference to `Foam::fvMesh::fvMesh(Foam::IOobject const&)'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0xdb2): undefined reference to `Foam::fvMesh::boundary() const'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2a24): undefined reference to `Foam::fvMesh::readUpdate()'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x2f5c): undefined reference to `Foam::basicThermo::New(Foam::fvMesh const&)'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x35cd): undefined reference to `Foam::momentCoefficient(Foam::GeometricField<foam ::vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double,> const&, Foam::dimensioned<double> const&, Foam::word const&, Foam::Vector<double> const&, double const&, double const&)'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x3673): undefined reference to `Foam::liftCoefficient(Foam::GeometricField<foam:: vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double,> const&, Foam::dimensioned<double> const&, Foam::word const&, Foam::Vector<double> const&, double const&)'
Make/linuxmingw32DPOpt/liftDrag.o:liftDrag.C.text+0x3708): undefined reference to `Foam::dragCoefficient(Foam::Geometric.....


Thanks in advance

Best regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 14, 2009, 16:13
Default Hello Alex, By what I've ma
  #113
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hello Alex,

By what I've managed to discover so far with mingw32, it needs for you to declare all of the libraries your application will require. In your case, I think you are missing -lOpenFOAM and the OpenFOAM's lnInclude.

When in doubt, for example, got to src/OpenFOAM and type
grep "fvMesh" -R *
and you'll find out that some of the definitions for fvMesh are in there!


Best regards,

Bruno
wyldckat is offline   Reply With Quote

Old   January 15, 2009, 08:59
Default Hi Bruno, But I have declar
  #114
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Bruno,

But I have declared them... ( I guess...) therefore I feel that bash message when I run wmake is ... awkward...

Just to clear Ideas... my Make/options is :

EXE_INC = \
-I$(LIB_SRC)/OpenFOAM \
-I$(LIB_SRC)/OpenFOAM/lnInclude/ \
-I$(LIB_SRC)/finiteVolume \
-I$(LIB_SRC)/finiteVolume/lnInclude/ \
-I$(LIB_SRC)/cfdTools/general/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/postProcessing \
-I$(LIB_SRC)/LESmodels \
-I$(LIB_SRC)/LESmodels/LESdeltas/lnInclude

EXE_LIBS = \
-lcompressiblePostProcessing \
-lincompressiblePostProcessing

The exe requires that libCompressiblePostProcessing.dll and libIncompressiblePostProcessing.dll be built, and they are... they live in /home/alex/OpenFOAM/OpenFOAM-1.4.1/lib/linuxmingw32DPOpt

I dont know what the heck is wmake missing here... :-(

I will now try to set libCompressible...dll and libIncompressible...dll in Make /Options to see if this works...

But I have a bad feeling about this...

IF mingw32 can "see" all the other libs when it builds the exes, I am sude that it also "sees" those two libs... I guess that the problem is somewhere else... just dunno where... :-(

Thanks anyway


Regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 15, 2009, 09:32
Default Hello again Alex, I see you
  #115
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hello again Alex,

I see you didn't get the full extent of my idea... it isn't just a question of having the header includes (EXE_INC), you also need to explicitly declare the necessary libraries (EXE_LIBS)!
In your Make/options you should also be explicit in declaring:

EXE_LIBS = \
-lcompressiblePostProcessing \
-lincompressiblePostProcessing \
-lOpenFOAM

Actually, the near fire proof one should be:

EXE_LIBS = \
-lcompressiblePostProcessing \
-lincompressiblePostProcessing \
-lOpenFOAM \
-lfiniteVolume \
-lthermophysicalModels \
-lpostProcessing

and add as many as you suspect that might be necessary! When it finally builds, then by trial and error, exclude the libraries that you might think you don't need.
In other words, mingw32 doesn't have smart library search... it only links with the libraries you tell it to!

And by what I can figure out, "fvMesh basicThermo momentCoefficient liftCoefficient" and so on, are methods that belong to libOpenFOAM.dll.
That's why I told you to use
grep "fvMesh" -R *
to figure out inside which lib should those methods be!

Regards,

Bruno
wyldckat is offline   Reply With Quote

Old   January 16, 2009, 17:41
Default Hello to all cross-compiling F
  #116
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hello to all cross-compiling FOAMers,

I've been going around cross-compiling OpenFOAM 1.4.1 and 1.5.x on a KUbuntu 8.04 virtual machine for a little over a month. I've got some developments I'm going to share with you, and I hope the good people at Symscape can later on clean up the rough edges my patches have got... because I managed to get most of the missing libraries fully built and -parallel up and running... although I didn't get mpirun to work with OpenFOAM in Windows .
And on a note on compiling the 1st versions, at least for me, I had to install flex-2.5.34 and compile flex-2.5.35 on top of 2.5.34, in order for OpenFOAM (both versions) to compile.

I'm just going to explain what I manage to do for OpenFOAM-1.5.x, because for 1.4.1 I just needed the addition of this information. And I'm so very sorry for this being a long post, but I thought it would be better to explain all of the stages undertaken, in order to share the know-how I gathered from this cross-compiling experience.


OK, starting from the v1 patch that Symscape has for OpenFOAM 1.5.x available in their page (should also work with v2), I've done the following developments, over 3 stages:
1st - finish resolving the unbuilt libraries that don't depend on MPI;
2nd - get OpenFOAM to compile with some compatible MPI version, that is already available for Windows... because we needed snappyHexMesh to run in Windows;
3rd - get openFOAM to compile like in the 2nd stage, but this time use the Pstream/mpi, instead of the dummy version.
I just didn't get the mallocs up and running, because for now I'm just worried at getting all of the basics up and running... and I can't see whether the linux version uses it!

Hopefully I can get the patches up here onto the forum. Inside the attached tar.gz file, are the following files:
openfoam15x_patch1 <- mentioned in stage 1 and 2
openfoam15x_patch2 <- mentioned in stage 3
ThirdPartyDiff <- mentioned in stage 1
ThirdPartyDiff_mpi <- mentioned in stage 2
setupcmd.bat <- starts command prompt with OpenFOAM environment
setvars.bat <- sets OpenFOAM environment into any command line
gompi.bat <- launches application in parallel mode
gocore.bat <- setups up and launches mpi slaves in local computer
paraFoam.bat <- does foamToVTK and launches paraview... because I can't get .foam to open correctly
patchesNbatches.tar.gz


---- 1st stage ----
I copied the following files:
OpenFOAM-1.4.1/src/MGridGenGamgAgglomeration/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h
OpenFOAM-1.4.1/src/MGridGenGamgAgglomeration/ParMGridGen-1.0/MGridGen/Lib/mgridgen.c
to
ThirdParty/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h
ThirdParty/ParMGridGen-1.0/MGridGen/Lib/mgridgen.c
I didn't get around to check the specific reason why mingw32 wouldn't build with the original version.

Then run at ThirdParty:
wmake libso ParMGridGen-1.0/MGridGen/Lib
wmake libso ParMGridGen-1.0/MGridGen/IMlib

And there are warnings about IMFree not being declared... but it built just the same.
If you don't want them to appear, go to ThirdParty/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h and remove the comments from void IMfree(void **, ...);

Ok, now, source OpenFOAM-1.5.x/src/decompositionAgglomeration/Allwmake, and move up the
wmake libso MGridGenGamgAgglomeration
to before the MPIs if, because the if kills Allwmake at the endif.
Now you can either run that Allmake, or wmake libso MGridGenGamgAgglomeration to build this missing library.


Finally, OpenFOAM-1.5.x/applications/utilities/miscellaneous/foamDebugSwitches wasn't building because of a couple of glitches it has in Make/options. Check the openfoam15x_patch1 file for the correct settings, or just use it for patching things up.

1st stage Patch: The ThirdPartyDiff file will only patch for you IMlib.h and mgridgen.c. You'll have to do the rest! Run it at the ThirdParty folder.



---- 2nd stage ----
Now, for MPI: I couldn't find OpenMPI for Windows... nor LAM. All that was left was MPICH1 (I don't know if OpenFOAM will work with MPICH2). And so, I got the version available here.
At the end of that page, download the mpich.nt.1.2.5.src.zip and unzip it to ThirdParty/, and rename the new folder mpich to mpich-1.2.5. The good thing about this MPI, is that it is already compiled for windows And has the gcc like library definition files!

There is still one thing you've got to get: regex for mingw32. It is at sourceforge and you should get both the bin and the dev versions... to keep things simple ;) Extract both to your instalation of mingw... mine is at $HOME/mingwcc/install/mingw32/.
Copy the files libgnurx-0.dll libregex.a libgnurx.dll.a inside mingw32/bin and mingw32/lib folders, to the $HOME/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/ folder.

Now go to OpenFOAM-1.5.x/wmake/rules/linuxmingw32/mplibMPICH and remove the -lrt option.

Source OpenFOAM-1.5.x/etc/settings.sh, find mpi_version=mpich-1.2.4 and change it to mpi_version=mpich-1.2.5.

There are various file changes that I made in the ThirdParty folder, and the patch file is ThirdPartyDiff_mpi. (NOTE: I've uncommented GKfree in proto.h in ParMetis-3.1/ParMETISLib and ParMetis-3.1/METISLib, so if some application crashes due to memory issues... this might be the one to blame.)
Once you patch up the ThirdParty folder, you can run ./Allwmake there. Keep in mind, that the malloc folder isn't builtable... at least not with this patch.

In the patch openfoam15x_patch1 are the file changes I made to the OpenFOAM-1.5.x folder (including the ones mentioned above), thus enabling the possibility to build libparMetisDecomp.dll and snappyHexMesh.exe.

After patching, go to OpenFOAM-1.5.x/src/decompositionAgglomeration and do a wclean all and wmake all, so it will build all the metis depending libraries. And finally, go to OpenFOAM-1.5.x/applications and run ./Allwmake to build the missing executables... or just go to OpenFOAM-1.5.x/applications/utilities/mesh/generation/ and run wmake all.

And so, 2nd stage is complete! But keep in mind that this only enables you to run snappyHexMesh and others that rely on METIS to "get busy". Parallel processing is not enabled, because Pstream isn't MPI based.



---- 3rd stage ----
Now for the final stage: getting Pstream based on MPI. This is a bit more costly, because you'll have to rebuild everything again! At least I had to...

I followed the Pstream comment at Symscape, but then somehow it got messy with the multiple builds and dll links. So I chose to go with the direct aproach: exclude libPstream.dll from the build, and build its files directly into OpenFOAM!

Use the file openfoam15x_patch2 to patch up the final files in the folder OpenFOAM-1.5.x.
After all of these stages, now you should have everything patched up and ready to rebuild most of it from scratch. I think a wcleanAll and then a ./Allwmake at OpenFOAM-1.5.x, should get everything built nicely... or so I hope. You could always just go with ./Allwmake, but that didn't go so well with me.


Oh, and don't forget about
Quote:
Copy the files libgnurx-0.dll libregex.a libgnurx.dll.a inside mingw32/bin and mingw32/lib folders, to the $HOME/OpenFOAM/OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/ folder.
Between stage 2 and 3, you might erase by accident this library!
And also copy all the files from ThirdParty/mpich-1.2.5/lib to OpenFOAM-1.5.x/lib/linuxmingw32DPOpt/mpich-1.2.5, because the MPICH dlls are necessary.


Once all is built, you can do as mentioned at Symscape's tutorial point 9. I went all the way to replicate the full structure mentioned in the etc/bashrc and etc/settings.sh files. That is why I also attached the setupcmd.bat and setvars.bat files.

Anyway, also copy the *.bat files in the attached file to the bin folder in Windows.

Remember, all of the OpenFOAM's *.dll and *.exe have to be visible in the PATH setting in the command prompt environment, including the ones inside the lib/mpich-1.2.5 folder.

I tried installing the MPICH setup supplied at their site, but it didn't work with OpenFOAM, due to failed "env" settings, thus not indicating the correct PORT to use. So mpirun won't work... Finally I found out about how to manually launch the slaves and master processes, and thus created the gompi.bat and gocore.bat batch files. Together, they launch your foamExecutable with the -parallel argument, and launches individual command prompts running the foamExecutable, with all of the necessary arragements done.
So, source gompi.bat, and change/add all of the local processor cores you want, by following the 2nd core and 3rd core existing lines.

Now, in the command prompt, go to you favorite test case and use:
gompi foamExec
or
gompi foamExec -case you_case_dir
and you application will go full steam ahead!
If you want to use more than one computer, use the gompi.bat and gocore.bat as references to launching manually in each computer.


And there it is, all that I managed to sum up is finally over. Once again, sorry for the looong post. I hope the good people at Symscape can trim my rough edges. And I hope I didn't miss anything, because this is compiled information and I might have missing something along the way
Oh, by the way, you can build applications/test/parallel, that goes into your OpenFOAM/user-1.5.x/application/bin folder. Run it with gompi parallelTest in a case folder, so you can test whether the mpi functions are working. It should show the following last lines:
Create time

[0]
Starting transfers
[0]
[0] master receiving from slave 1
[0] (0 1 2)
[0] master sending to slave 1
End

Finalising parallel run
It really bugs me that I couldn't get the full mpi extent up and running, and Pstream building without cyclic dependencies to OpenFOAM... Oh well «good is enemy of best».

Disclaimer: I've only tested parallelTest, and snappyHexMesh with the motorBike tutorial so far.


Best regards to all, and please warn me if pieces are missing!!

Bruno Santos, at www.bluecape.com.pt
wyldckat is offline   Reply With Quote

Old   January 18, 2009, 13:26
Default Hi Bruno, Great work gettin
  #117
Senior Member
 
gocarts's Avatar
 
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 8
gocarts is on a distinguished road
Hi Bruno,

Great work getting the MinGW parallel moving. I'm not a parallel expert (at least in the league you are) so I wouldn't be confident trying to incorporate your wirk into a new patch. I think the best approach for the time being is for you to issue and maintain a MinGW parallel patch, as you have. If it would be easier for your parallel patch to incoporate my patch then that's fine.

Great job, regards,
Rich
__________________
Symscape, Computational Fluid Dynamics for all
gocarts is offline   Reply With Quote

Old   January 19, 2009, 19:08
Default Hi Bruno Your hint worked l
  #118
Senior Member
 
Alexandre Pereira
Join Date: Mar 2009
Posts: 155
Rep Power: 8
alexandrepereira is on a distinguished road
Hi Bruno

Your hint worked like a charm for most of my apps... except one...

http://mmpp.110mb.com/OpenFOAM/liftDragTool.tar.gz

even after adding ALL the dll libraries existent to the make/options, EXE_LIBS , the wmake still misses something...

This compiles under OF-1.4.1 linux... never tried it under OF-1.5... you can try... I guess it has to do with cyclic dependencies...

...even after addin all the libs it wont compile... :-(

But I managed to compile most of my other apps... except this one...

I will now to build OF-1.5.x for win32...

my Nth try... :-(

OF-1.4.1 built allright... so, this is not a cross compiler issue...

Will have more news tomorrow...

Best regards

Alex
alexandrepereira is offline   Reply With Quote

Old   January 20, 2009, 15:40
Default Hello Alex, For OpenFOAM 1.
  #119
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hello Alex,

For OpenFOAM 1.5.x, you're going to need the version modified by the creator or the maintainer, which is on the README file in your tar.gz file. Because there were some serious restructuring from OpenFOAM 1.4.1 to 1.5.x, so I can't figure out the specific dependencies that your files depend on By what I can figure out, some of the classes it depends on no longer exist in 1.5.x or have been moved and renamed!

As for OpenFOAM 1.4.1, you'll need to add to LIB_LIBS in each options file:
>> postProcessing/compressible/Make/options
-lOpenFOAM \
-lfiniteVolume

>> postProcessing/incompressible/Make/options
-lOpenFOAM \
-lfiniteVolume

>> applications/utilities/postProcessing/liftDrag/Make/options (actually, it's in EXE_LIBS here)
-lbasicThermophysicalModels \
-lOpenFOAM \
-lfiniteVolume

In case you've followed the comment on Pstream to build Pstream separately, you'll need to add to LIB_LIBS or EXE_LIBS on those files:
-L$(FOAM_LIBBIN)/dummy \
-lPstream

And in certain situations, adding -L$(FOAM_LIBBIN) to the EXE_LIBS or LIB_LIBS solves the problem of "I can't find library -lstuff".

Hope this helps. It should build correctly!
Best regards,
Bruno

PS: Er, now that I've re-read your post, I think you've already solved for OpenFOAM 1.4.1... sooo, I guess no dice for OpenFOAM 1.5.x, at least not without having to look at the code and learning what it really needs and does
wyldckat is offline   Reply With Quote

Old   January 21, 2009, 10:37
Default Hello Richard, Took me long
  #120
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,258
Blog Entries: 34
Rep Power: 84
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hello Richard,

Took me longer to reply to your comment, because following your comment, I've cleaned up my patches into two patch files, one for OpenFOAM-1.5.x and another for ThirdParty. They've been updated to meet to your v2 patch version.
So, very well, I'll do my best to keep these patches updated up to your patches!

And so, I lay out the full scheme to apply these two patches. So, fellow cross-compiling FOAMers, here goes!

Once again, I resort to a patchesNbatches.tar.gz file with the 2 new patches and the useful batch files, which is attached here:
patchesNbatches2.tar.gz
Inside the attached tar.gz file, are the following files:
OpenFOAM_1.5.x_patch <- the patch for patching up the OpenFOAM-1.5.x folder
ThirdParty_patch <- the patch for patching up the ThirdParty folder
setupcmd.bat <- starts command prompt with OpenFOAM environment
setvars.bat <- sets OpenFOAM environment into any command line
gompi.bat <- launches application in parallel mode
gocore.bat <- setups up and launches mpi slaves in local computer
paraFoam.bat <- does foamToVTK and launches Paraview... because I can't get .foam to open correctly
I've just tried them on a clean OpenFOAM setup, and here goes the steps to be taken (have Symscape's tutorial opened, because I'll reference it many times):

1. Do Symscape's tutorial point 1.
1.1. Also get regex for mingw32. It is at sourceforge and you should get both the bin and the dev versions... to keep things simple ;) Extract both to your instalation of mingw... mine is at $HOME/mingwcc/install/mingw32/.
I'm not going to lay here the commands, because the sourceforge links might change and your installation path is probably also different!

2. Do Symscape's tutorial point 2;

3. Do Symscape's tutorial point 3. I've done it the following way:
3.1. run the following commands in a bash:
cd ~
mkdir OpenFOAM
cd OpenFOAM
git clone git://repo.or.cz/OpenFOAM-1.5.x.git
cd OpenFOAM-1.5.x
git checkout 2fee2240cb5c6e2ecbfa65af95c8a10232f9d5d5

3.2. source $HOME/.bashrc and add the following line to the end of it:
. $HOME/OpenFOAM/OpenFOAM-1.5.x/etc/bashrc

3.3 launch a new terminal and run the following commands, thus building wmkdep and dirToString:
cd $HOME/OpenFOAM/OpenFOAM-1.5.x
(cd wmake/src && make)


4. Do Symscape's tutorial point 4, but don't build zlib!
4.1. Run the following commands on the terminal:
cd $HOME/OpenFOAM
wget ftp://ftp.mcs.anl.gov/pub/mpi/nt/mpich.nt.1.2.5.src.zip
cd ThirdParty
unzip ../mpich.nt.1.2.5.src.zip
mv mpich mpich-1.2.5

4.2. Patch the ThirdParty folder with ThirdParty_patch file. (Run patch -p0 < ThirdParty_patch, if the patch file is already the ThirdParty folder!)

5. Do Symscape's tutorial point 5. (Possibly, run patch -p1 < v2-mingw-openfoam-1-5-x.patch, inside the OpenFOAM-1.5.x folder)
5.1. Since we're in a patching spree, also patch the OpenFOAM-1.5.x folder with the OpenFOAM_1.5.x_patch, which is inside the attached file. You can do it by running patch -p0 < OpenFOAM_1.5.x_patch, as long as your bash is at the folder OpenFOAM-1.5.x

6. Do Symscape's tutorial point 6;

7. Do Symscape's tutorial point 7.
7.1. Additionally, I've added 2 additional items to bashrc-mingw32:
- WM_PSTREAMLINK: this variable indicates whether OpenFOAM should be built with libPstream.dll, or have it's code directly integrated to libOpenFOAM.dll. (Personally, I've only tested this patch with the separated Pstream library, so I'm no 100% that the other options will also work...)
- MINGW32_INST_PATH: it is the folder where mingw32 is installed. This variable has to be correctly set! I've left a comment in the patch indicating that it is only necessary if you want it to auto-copy the regex files, but actually it is also necessary for the library metis-5.0pre2/GKlib to build properly!
7.2. Don't forget to source $HOME/.bashrc and change the line added in point 3.2. You might also want to launch a new terminal after that, so it updates the environment variables.

8. Do Symscape's tutorial point 8. This will build everything available with these patches for mingw32, both ThirdParty and OpenFOAM-1.5.x.
8.1. Also build applications/test/parallel, that goes into your OpenFOAM/user-1.5.x/application/bin folder. To build it, just run wmake in folder OpenFOAM-1.5.x/applications/test/parallel.

9. Do Symscape's tutorial point 9.
9.1. Also copy the file OpenFOAM/user-1.5.x/application/bin/linuxmingw32DPOpt/parallelTest.exe to Windows, so you can test the parallel mode.
9.Optional: I recreated the folder path inside an OpenFOAM folder, and copied the respective contents, as follows:

OpenFOAM-1.5.x/

applications/bin/linuxmingw32DPOpt

lib/linuxmingw32DPOpt/

dummy
mpich-1.2.5

bin/

etc/

user-1.5.x/

applications/bin/linuxmingw32DPOpt

jobControl/

ThirdParty/


This way it is easier to copy and update/upgrade or add new OpenFOAM built versions.

10. Do Symscape's tutorial point 10.
10.Optional:
- Copy the files setvars.bat and setcmd.bat to the OpenFOAM-1.5.x folder.
- Copy the files gompi.bat and gocore.bat to the jobControl folder, or either bin folders. Source gompi.bat to fit your multi-core specifications. You have in there showing how to launch each core.
- Same goes for paraFoam.bat. You might want to source this one to fix the path to Paraview. NOTE: it will open Paraview inside your case's newly made VTK folder, but won't open any files.
- The batch file setvars.bat inside the attached file, allows to set environment variables according to the structure mentioned on point "9.Optional". Source it to meet your specifications.
- You can run setcmd.bat directly from Windows Explorer or Start Menu, and it will start an MS-DOS like command window (or Windows terminal, whatever you might want to call it) with the necessary environment variables set for you OpenFOAM executions on that window.
The batch files gompi.bat and gocore.bat files, together, they launch your foamExecutable with the -parallel argument. gompi.bat launches individual command prompts running the foamExecutable, with all of the necessary arragements done for you.
In the command prompt, go to you favorite test case and use:
gompi foamExec
or
gompi foamExec -case you_case_dir
and you application will go full steam ahead!
If you want to use more than one computer, use the gompi.bat and gocore.bat as references to launching manually in each computer.

To test if it is working, as long as you've built and copied parallelTest.exe to Windows, run gompi parallelTest inside a case folder of yours, already decomposePar'er, and you should see something like this in the end of the terminal:
Create time

[0]
Starting transfers
[0]
[0] master receiving from slave 1
[0] (0 1 2)
[0] master sending to slave 1
End

Finalising parallel run
So there you go, parallel is up and running! If not, you should blame the firewall, or you haven't sourced properly setvars.bat.


Stuff that isn't building nor working:
- Currently libccmio is offline, because I don't need ccm26ToFoam, sorry .
- ThirdParty's malloc isn't building either, because I don't know how it is suppose to link up to the OpenFOAM libraries.
- mpirun is K.O., or at least I can't get it to work properly. In over 50 tries, only once did it run with OpenFOAM! Might be some issue with the firewall, not sure yet.
- The scripts at OpenFOAM-1.5.x/bin won't work. I've managed to get them to partially working using msys in Windows, but without MPI and a working Paraview .foam plugin, I guess it is a bit pointless.

Stuff I would like to get working:
- faster I/O and malloc, but I haven't got a clue if this is the main bottleneck in this mingw32 OpenFOAM version;
- MPICH2, since it already has a multi-platform building structure, and is able to transfer data between Linux and Windows, as long it is the same 32/64 bit type. I've already got a lead on it, which is here, but only time and patience will tell if it will be useful to us.

Tips:
- In Linux, run mingw32-strip -s *.exe inside your application/bin/linuxmingw32DPOpt/ folder. Also mingw32-strip -s lib*.dll inside lib/linuxmingw32DPOpt/, lib/linuxmingw32DPOpt/dummy/ and lib/linuxmingw32DPOpt/mpich-1.2.5/. This will strip useless symbols and will reduce occupied space in disk from 441+239 MiB to 165+149 MiB! I think it still works properly. Does it run faster? Psychologically, yes!
- If your OpenFOAM application/library isn't building, very likely it's missing specific indication of libraries it has to link to. This is defined in files like Make/options. If you look to my patched versions of options files, you might get shocked, because it was a bit rough way to set linkage to each build mode... sorry. Look at the version patched by Symscape's patches, so you can get a better feel that mingw32 and Windows are a bit dumb, when it comes to libraries... "DLL hell" as some call it!

So, if anyone has any questions, feel free to ask!

Regards,

Bruno
wyldckat is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFOAM 15x MinGW Windows Port gocarts OpenFOAM Installation 1 April 17, 2009 10:41
divide by zero FPE issue in OpenFOAM 141 MingW port allenzhao OpenFOAM Installation 9 September 22, 2008 17:13
OpenFOAM on SuSE Linux 100 musahossein OpenFOAM Installation 4 June 20, 2008 16:47
OpenFoam and Linux Tomislav Maric Main CFD Forum 13 October 25, 2007 04:45
OpenFOAM and linux distros billy OpenFOAM 8 September 8, 2005 01:43


All times are GMT -4. The time now is 20:05.