Обсуждение:OpenFOAM
Ошибки конфигурации
Посмотрите здесь: 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)
- 2. Тесты на одиночной системе считает.
- 3. Данные для paraview можно подготовить посредством foamToVTK
- 4. Системный paraview подозрительно легко падает, будем посмотреть ;)
- 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)
Используемые файлы
Какие файлы из исходников используются собранными исполняемыми файлами и библиотеками?
Файлы из подкаталога etc, думаю, точно не следует упаковывать, отдавая всё в руки пользователя (т.е. работаем с настройками не в /erc/bashrc, а в ~/.bashrc), если в этом действиетльно есть необходимость. Что, конечно, надо будет обозначить в %description. real 17:11, 5 декабря 2010 (UTC)
- Там прописаны переменные окружения, задающие пути и имена. Если ставить OpenFOAM глобально, их надо править и класть куда-то в /etc/OpenFOAM, естественно, обозначив в описании, как их можно вызвать или где прописать их автоматический вызов. --Const 07:22, 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 и libtecio.so разберусь, файлы *.o я не указывал, потому что они вряд ли могут пригодиться (если ошибаюсь, это потом выскочит, и я их тоже запакую), а остальные у нас в сизифе есть. Только libmetis-parmetis.so у нас называется libparmetis.so.