Обсуждение:OpenFOAM

Материал из ALT Linux Wiki
Версия от 11:50, 7 декабря 2010; Real (обсуждение | вклад) (Используемые файлы)

Ошибки конфигурации

Посмотрите здесь: http://git.altlinux.org/people/real/packages/openfoam.git

Там в корне создан файл build.log, поглядев в его конец, увидите, на чём лопнуло моё терпение :)

  • хм.. не было у меня ТАКИХ ошибок. Оно, правда, я для 32-бит собирать пытался. Могу в понедельник повторить сборку и сбросить лог, может, сумеете что подсоветовать. --Const 16:14, 3 декабря 2010 (UTC)
    • Я тут пока на одном компе одну долгую штуку собираю, на другом пытаюсь по Вашим добавлениям снова за OpenFOAM взяться. Ошибки довольно смешные, учитывая, что хедеры лежат в каталоге самого OpenFOAM, просто возиться с ним надоело. Вы их могли не увидеть, потому что сборка после таких ошибок продолжается, как будто ничего не было. real 16:34, 3 декабря 2010 (UTC)
      • Возможно. Даже очень возможно. Плохо, что некоторая привычка к OF успела появиться. Что характерно, раньше (до версии 1.6) существовали бинарные сборки у них, завязанные сами на себя. Их тупо разворачивал, даже не пытаясь пересобрать, — и работало (вру! vtkPV3Foam пересобирать приходилось). Видимо, придётся смириться, и собирать и ThirdParty, хоть и не нравится ;(
        • Левые ThirdParty собирать лучше не надо, там только ParMGridGen нужен, остальное всё есть в сизифе. Хотя, если только под себя собирать, то хозяин сам себе боярин, конечно... А vtk у Вас из сизифа или тоже сами собирали? real 16:55, 3 декабря 2010 (UTC)
          • Оп-па. А про vtk ничего не скажу! Всё, чтоб не врать — до понедельника морожусь.
          • Итак, что могу сейчас сказать:
          • 1. vtk системный не установлен, следовательно использует свой.
            • Плохо. real 17:54, 6 декабря 2010 (UTC)
              • Надо будет с системным попробовать. --Const 08:08, 7 декабря 2010 (UTC)
          • 2. Тесты на одиночной системе считает.
          • 3. Данные для paraview можно подготовить посредством foamToVTK
          • 4. Системный paraview подозрительно легко падает, будем посмотреть ;)
            • Так надо смотреть, что пишет перед падением, и прямиком в bugzilla. real 17:54, 6 декабря 2010 (UTC)
            • Отбой. Пардон, всё забываю, что Вы paraview из ThirdParty собираете, а не сизифный используете. real 06:36, 7 декабря 2010 (UTC)
              • Сейчас как раз Сизифный parawiev использую, и не собираю из ThirdParty (отчего и проблема с импортом данных выползает). --Const 08:08, 7 декабря 2010 (UTC)
                • Пока ничего не могу сказать по этому поводу. Вы пока опишите поконкретней, какой файл и каким образом открываете (название исполняемого файла, пункт меню и т.п.), а я, когда доберусь до этого, буду уже тестировать.
          • 5. По спискам пройдусь в ближайшее время — непотребно загрузили бумажками ;(
          • --Const 17:48, 6 декабря 2010 (UTC)

R

В числе собранных исполняемых файлов фигурирует файл с именем R. В ALT Linux есть уже такой файл - в пакете R-base. Это просто "тёзки" или выполняют аналогичные функции? Просто если "тёзки", придётся R из OpenFOAM либо ложить не в /usr/bin, а куда-то ещё, либо переименовать. Если его, конечно, не используют другие программы из OpenFOAM. real 16:54, 5 декабря 2010 (UTC)

Это «тёзки». Цитирую из описания (http://www.openfoam.com/docs/user/standard-utilities.php):

R: Calculates and writes the Reynolds stress R for the current time step 

Сильно опасаюсь, что под таким именем может быть зашит в нескольких местах в коде. Попробую спросить у работающих с кодом людей. --Const 07:18, 7 декабря 2010 (UTC)

  • Значит, придётся переименовывать. Насчёт зашивки в код - буду разбираться... real 07:24, 7 декабря 2010 (UTC)
    • Я вопрос забросил: [1] поглядим, что ответят люди, активно работающие с. --Const 07:52, 7 декабря 2010 (UTC)
      • Хорошо, не забудьте сюда отсигналить, как будет что-то. real 07:55, 7 декабря 2010 (UTC)

Используемые файлы

Какие файлы из исходников используются собранными исполняемыми файлами и библиотеками?

Файлы из подкаталога etc, думаю, точно не следует упаковывать, отдавая всё в руки пользователя (т.е. работаем с настройками не в /erc/bashrc, а в ~/.bashrc), если в этом действиетльно есть необходимость. Что, конечно, надо будет обозначить в %description. real 17:11, 5 декабря 2010 (UTC)

  • Там прописаны переменные окружения, задающие пути и имена. Если ставить OpenFOAM глобально, их надо править и класть куда-то в /etc/OpenFOAM, естественно, обозначив в описании, как их можно вызвать или где прописать их автоматический вызов. --Const 07:22, 7 декабря 2010 (UTC)
    • Не факт, что эти пути нужны будут (если исполняемые файлы лежат в /usr/bin, а библиотеки - в /usr/lib, никаких путей к ним не нужно), но надо проверять, конечно - возможно, это тоже где-то в код зашивается. real 07:33, 7 декабря 2010 (UTC)
      • Часть нижеприведённых переменных окружения не являются стандартными и будет нужна. С другой стороны, их уже можно будет и в /etc/bashrc.d/openfoam.sh прописать.
$ set | grep WM
WM_ARCH=linux
WM_ARCH_OPTION=64
WM_COMPILER=Gcc
WM_COMPILE_OPTION=Opt
WM_DIR=/home/const/OpenFOAM/OpenFOAM-1.7.1/wmake
WM_LINK_LANGUAGE=c++
WM_MPLIB=OPENMPI
WM_NCOMPPROCS=2
WM_OPTIONS=linuxGccDPOpt
WM_OSTYPE=POSIX
WM_PRECISION_OPTION=DP
WM_PROJECT=OpenFOAM
WM_PROJECT_DIR=/home/const/OpenFOAM/OpenFOAM-1.7.1
WM_PROJECT_INST_DIR=/home/const/OpenFOAM
WM_PROJECT_USER_DIR=/home/const/OpenFOAM/const-1.7.1
WM_PROJECT_VERSION=1.7.1
WM_THIRD_PARTY_DIR=/home/const/OpenFOAM/ThirdParty-1.7.1
$ set | grep FOAM
FOAM_APP=/home/const/OpenFOAM/OpenFOAM-1.7.1/applications
FOAM_APPBIN=/home/const/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linuxGccDPOpt
FOAM_INST_DIR=/home/const/OpenFOAM
FOAM_JOB_DIR=/home/const/OpenFOAM/jobControl
FOAM_LIB=/home/const/OpenFOAM/OpenFOAM-1.7.1/lib
FOAM_LIBBIN=/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt
FOAM_MPI_LIBBIN=/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1
FOAM_RUN=/home/const/OpenFOAM/const-1.7.1/run
FOAM_SIGFPE=
FOAM_SITE_APPBIN=/home/const/OpenFOAM/site/1.7.1/bin/linuxGccDPOpt
FOAM_SITE_LIBBIN=/home/const/OpenFOAM/site/1.7.1/lib/linuxGccDPOpt
FOAM_SOLVERS=/home/const/OpenFOAM/OpenFOAM-1.7.1/applications/solvers
FOAM_SRC=/home/const/OpenFOAM/OpenFOAM-1.7.1/src
FOAM_TUTORIALS=/home/const/OpenFOAM/OpenFOAM-1.7.1/tutorials
FOAM_USER_APPBIN=/home/const/OpenFOAM/const-1.7.1/applications/bin/linuxGccDPOpt
FOAM_USER_LIBBIN=/home/const/OpenFOAM/const-1.7.1/lib/linuxGccDPOpt
FOAM_UTILITIES=/home/const/OpenFOAM/OpenFOAM-1.7.1/applications/utilities
LD_LIBRARY_PATH=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/paraview-3.8.0/lib/paraview-3.8:/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/openmpi-1.4.1:/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/lib:/home/const/OpenFOAM/const-1.7.1/lib/linuxGccDPOpt:/home/const/OpenFOAM/site/1.7.1/lib/linuxGccDPOpt:/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt:/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/dummy:/usr/lib/openmpi/lib
MANPATH=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/man:/usr/lib/openmpi/man:/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/X11R6/man:/usr/local/man:
MPI_ARCH_PATH=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1
OLDPWD=/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt
OPAL_PREFIX=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1
PATH=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/paraview-3.8.0/bin:/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/openmpi-1.4.1/bin:/home/const/OpenFOAM/const-1.7.1/applications/bin/linuxGccDPOpt:/home/const/OpenFOAM/site/1.7.1/bin/linuxGccDPOpt:/home/const/OpenFOAM/OpenFOAM-1.7.1/applications/bin/linuxGccDPOpt:/home/const/OpenFOAM/OpenFOAM-1.7.1/wmake:/home/const/OpenFOAM/OpenFOAM-1.7.1/bin:/usr/lib/kde4/bin:/usr/lib/kde4bin:/usr/lib/openmpi/bin:/home/const/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/X11R6/bin
PV_PLUGIN_PATH=/home/const/OpenFOAM/OpenFOAM-1.7.1/lib/linuxGccDPOpt/paraview-3.8
PWD=/home/const/OpenFOAM/1
ParaView_DIR=/home/const/OpenFOAM/ThirdParty-1.7.1/platforms/linuxGcc/paraview-3.8.0
WM_DIR=/home/const/OpenFOAM/OpenFOAM-1.7.1/wmake
WM_PROJECT=OpenFOAM
WM_PROJECT_DIR=/home/const/OpenFOAM/OpenFOAM-1.7.1
WM_PROJECT_INST_DIR=/home/const/OpenFOAM
WM_PROJECT_USER_DIR=/home/const/OpenFOAM/const-1.7.1
WM_THIRD_PARTY_DIR=/home/const/OpenFOAM/ThirdParty-1.7.1

        • В том-то и дело, что подавляющее большинство этих переменных нужны исключительно при сборке, если вообще не все. Но это, опять-таки, надо проверять, а у меня пока ещё до этапа установки дело не дошло: сейчас правится куча багов линковки, так что пока всё не разрулю, дальше двигаться не могу. Ну и факт, что сборки длится 3 часа, тоже налагает определённые ограничения на возможность всё быстро разрулить ;) real 08:50, 7 декабря 2010 (UTC)

Недолинковки

Некоторые библиотеки и исполняемые файлы недолинкованы, поэтому часть зависимых файлов просто не собирается. Приходится прочёсывать лог сборки на предмет наличия фраз "undefined reference" и "undefined symbol" и править соответствующие конфиги - файлы options, лежащие подкаталогах Make каталогов, где собираются соответствующие файлы. real 17:11, 5 декабря 2010 (UTC)

Дополнение: проверьте, каких файлов из списка ниже у Вас нет (к постпроцессингу пока не приступал). real 17:33, 5 декабря 2010 (UTC)

Собранные файлы

1. Исполняемые:

Co
IFCLookUpTableGen
Lambda2
MRFInterFoam
MRFMultiphaseInterFoam
Mach
PDRFoam
Pe
Q
R
XiFoam
adiabaticFlameT
ansysToFoam
applyBoundaryLayer
applyWallFunctionBoundaryConditions
attachMesh
autoPatch
autoRefineMesh
blockMesh
boundaryFoam
boxTurb
bubbleFoam
buoyantBoussinesqPimpleFoam
buoyantBoussinesqSimpleFoam
buoyantPimpleFoam
buoyantSimpleFoam
buoyantSimpleRadiationFoam
cavitatingFoam
cellSet
cfx4ToFoam
changeDictionary
channelFoam
checkMesh
chemkinToFoam
chtMultiRegionFoam
chtMultiRegionSimpleFoam
coalChemistryFoam
coldEngineFoam
collapseEdges
combinePatchFaces
compressibleInterDyMFoam
compressibleInterFoam
createBaffles
createPatch
createTurbulenceFields
decomposePar
deformedGeom
dieselEngineFoam
dieselFoam
dnsFoam
dsmcFieldsCalc
dsmcFoam
dsmcInitialise
electrostaticFoam
engineCompRatio
engineFoam
engineSwirl
enstrophy
equilibriumCO
equilibriumFlameT
estimateScalarError
execFlowFunctionObjects
expandDictionary
extrude2DMesh
extrudeMesh
faceSet
financialFoam
fireFoam
flattenMesh
flowType
fluent3DMeshToFoam
fluentMeshToFoam
foamCalc
foamDataToFluent
foamDebugSwitches
foamFormatConvert
foamInfoExec
foamMeshToFluent
foamToEnsight
foamToEnsightParts
foamToFieldview9
foamToGMV
foamToStarMesh
foamToTecplot360
foamToVTK
foamUpgradeFvSolution
gambitToFoam
gmshToFoam
icoErrorEstimate
icoFoam
icoMomentError
ideasUnvToFoam
insideCells
interDyMFoam
interFoam
interMixingFoam
interPhaseChangeFoam
kivaToFoam
laplacianFoam
mapFields
mdEquilibrationFoam
mdFoam
mdInitialise
mergeMeshes
mergeOrSplitBaffles
mgridgen
mhdFoam
mirrorMesh
mixtureAdiabaticFlameT
modifyMesh
momentScalarError
moveDynamicMesh
moveEngineMesh
moveMesh
mshToFoam
multiphaseInterFoam
netgenNeutralToFoam
nonNewtonianIcoFoam
objToVTK
pPrime2
particleTracks
patchAverage
patchIntegrate
patchSummary
pdfPlot
pimpleDyMFoam
pimpleFoam
pisoFoam
plot3dToFoam
pointSet
polyDualMesh
porousExplicitSourceReactingParcelFoam
porousInterFoam
porousSimpleFoam
postChannel
potentialFoam
probeLocations
ptot
reactingFoam
reactingParcelFoam
reconstructPar
reconstructParMesh
redistributeMeshPar
refineHexMesh
refineMesh
refineWallLayer
refinementLevel
removeFaces
renumberMesh
rhoCentralDyMFoam
rhoCentralFoam
rhoPimpleFoam
rhoPisoFoam
rhoPorousMRFPimpleFoam
rhoPorousSimpleFoam
rhoReactingFoam
rhoSimpleFoam
rotateMesh
sammToFoam
sample
scalarTransportFoam
selectCells
setFields
setSet
setsToZones
settlingFoam
shallowWaterFoam
simpleFoam
smapToFoam
snappyHexMesh
solidDisplacementFoam
solidEquilibriumDisplacementFoam
sonicDyMFoam
sonicFoam
sonicLiquidFoam
splitCells
splitMesh
splitMeshRegions
star4ToFoam
starToFoam
stitchMesh
streamFunction
stressComponents
subsetMesh
surfaceAdd
surfaceAutoPatch
surfaceCheck
surfaceClean
surfaceCoarsen
surfaceConvert
surfaceFeatureConvert
surfaceFeatureExtract
surfaceFind
surfaceMeshConvert
surfaceMeshConvertTesting
surfaceMeshExport
surfaceMeshImport
surfaceMeshTriangulate
surfaceOrient
surfacePointMerge
surfaceRedistributePar
surfaceRefineRedGreen
surfaceSmooth
surfaceSplitByPatch
surfaceSplitNonManifolds
surfaceSubset
surfaceToPatch
surfaceTransformPoints
tetgenToFoam
transformPoints
twoLiquidMixingFoam
twoPhaseEulerFoam
uncoupledKinematicParcelFoam
uprime
vorticity
wallGradU
wallHeatFlux
wallShearStress
wdot
writeCellCentres
writeMeshObj
yPlusLES
yPlusRAS
zipUpMesh
  • У меня явно нет химии:
$ diff const real 
26a27,28
> coalChemistryFoam
> coldEngineFoam
35a38,39
> dieselEngineFoam
> dieselFoam
41a46
> engineFoam
52a58
> fireFoam
67a74
> foamToTecplot360
91a99
> mgridgen
119a128
> porousExplicitSourceReactingParcelFoam
128a138,139
> reactingFoam
> reactingParcelFoam
143a155
> rhoReactingFoam
150a163
> setSet
198a212
> uncoupledKinematicParcelFoam
206a221
> XiFoam

--Const 07:13, 7 декабря 2010 (UTC)

2. Библиотеки:

libEulerianInterfacialModels.so
libIMlib.so
libIOFunctionObjects.so
libLESdeltas.so
libLESfilters.so
libMGridGen.so
libMGridGenGAMGAgglomeration.so
libODE.so
libOpenFOAM.so
libPstream.so
libautoMesh.so
libbarotropicCompressibilityModel.so
libbasicThermophysicalModels.so
libchemistryModel.so
libcoalCombustion.so
libcombustionModels.so
libcompressibleLESModels.so
libcompressibleRASModels.so
libcompressibleTurbulenceModel.so
libconversion.so
libdecompositionMethods.so
libdieselSpray.so
libdsmc.so
libdynamicFvMesh.so
libdynamicMesh.so
libedgeMesh.so
libengine.so
liberrorEstimation.so
libextrudeModel.so
libfieldFunctionObjects.so
libfiniteVolume.so
libfoamCalcFunctions.so
libforces.so
libfvMotionSolvers.so
libgenericPatchFields.so
libincompressibleLESModels.so
libincompressibleRASModels.so
libincompressibleTransportModels.so
libincompressibleTurbulenceModel.so
libinterfaceProperties.so
libkineticTheoryModel.so
liblagrangian.so
liblagrangianIntermediate.so
liblaminarFlameSpeedModels.so
libliquidMixture.so
libliquids.so
libmeshTools.so
libmetisDecomp.so
libmolecularMeasurements.so
libmolecule.so
libmultiphaseInterFoam.so
libpdf.so
libparMetisDecomp.so
libphaseModel.so
libpotential.so
libradiation.so
librandomProcesses.so
libreactionThermophysicalModels.so
librhoCentralFoam.so
libsampling.so
libscotchDecomp.so
libsolidMixture.so
libsolidParticle.so
libsolids.so
libspecie.so
libsurfMesh.so
libsystemCall.so
libtecio.so
libthermophysicalFunctions.so
libtopoChangerFvMesh.so
libtriSurface.so
libuserd-foam.so
libutilityFunctionObjects.so
  • Тут в другую сторону различие:
$ diff const real
27d26
< libGKlib.so
45,46d43
< libmetis-parmetis.so
< libmetis.so
54d50
< libOSspecific.o
56d51
< libparmetis.so
61,62d55
< libptscotcherrexit.so
< libptscotch.so
69,70d61
< libscotcherrexit.so
< libscotch.so
76a68
> libtecio.so
82d73
< postCalc.o

--Const 07:13, 7 декабря 2010 (UTC)

    • С libGKlib.so разберусь, файлы *.o я не указывал, потому что они вряд ли могут пригодиться (если ошибаюсь, это потом выскочит, и я их тоже запакую), а остальные у нас в сизифе есть. Только libmetis-parmetis.so у нас называется libparmetis.so. real 07:31, 7 декабря 2010 (UTC)
    • libGKlib.so используется только libmetis.so, но поскольку у нас есть сизифный, эта библиотека не нужна.