diff options
author | Oliver Borm (oli) <oli.borm@web.de> | 2008-08-28 08:12:58 +0000 |
---|---|---|
committer | Oliver Borm (oli) <oli.borm@web.de> | 2008-08-28 08:12:58 +0000 |
commit | f16c8e9d3f6f635ed6288450a8105d48b8b72387 (patch) | |
tree | 7a2567ac8f69d22318ef7a617d07e938b6f6c5d8 /sci-libs/openfoam-solvers | |
parent | sci-libs/openfoam-kernel: Update patches for the OpenFOAM Kernel (diff) | |
download | sunrise-f16c8e9d3f6f635ed6288450a8105d48b8b72387.tar.gz sunrise-f16c8e9d3f6f635ed6288450a8105d48b8b72387.tar.bz2 sunrise-f16c8e9d3f6f635ed6288450a8105d48b8b72387.zip |
sci-libs/openfoam-solvers: Update patches for the OpenFOAM solvers
svn path=/sunrise/; revision=6867
Diffstat (limited to 'sci-libs/openfoam-solvers')
5 files changed, 540 insertions, 1 deletions
diff --git a/sci-libs/openfoam-solvers/ChangeLog b/sci-libs/openfoam-solvers/ChangeLog index a44d67d75..c62dff4d3 100644 --- a/sci-libs/openfoam-solvers/ChangeLog +++ b/sci-libs/openfoam-solvers/ChangeLog @@ -2,6 +2,12 @@ # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 28 Aug 2008; Oliver Borm (boroli) <oli.borm@web.de> + +openfoam-solvers-1.4.1_p20080827.ebuild, + +files/openfoam-solvers-1.4.1_p20080827.patch, + +files/openfoam-solvers-compile-1.4.1_p20080827.patch: + Update patches for the OpenFOAM solvers + 04 Aug 2008; Oliver Borm (boroli) <oli.borm@web.de> openfoam-solvers-1.4.1_p20080328.ebuild, openfoam-solvers-1.5.ebuild: Changed version dependencies diff --git a/sci-libs/openfoam-solvers/Manifest b/sci-libs/openfoam-solvers/Manifest index 6e06868e6..8bafb815c 100644 --- a/sci-libs/openfoam-solvers/Manifest +++ b/sci-libs/openfoam-solvers/Manifest @@ -1,9 +1,12 @@ AUX OpenFOAM-1.5-compile.patch 15006 RMD160 ba8423526b5244e3c30d9d38830a2fe79e3c2a1a SHA1 7d275039cea1fe8a3c28fafeda1fef3665360f83 SHA256 6cb940b6c559a846ec65184db8f7c7966d1bef105d5bdad6ca4afd3f1b4d5b89 AUX openfoam-solvers-1.4.1_p20080328.patch 13843 RMD160 0b00d42d4122e3d83f5bf1ba73f24c03785bfd99 SHA1 229d1cb7c817064ece22982e8753471574222cca SHA256 cc4acd93d8fa73b67e6bc3916d267446ae3a563de5e4b226e9e7b00c3e49deec +AUX openfoam-solvers-1.4.1_p20080827.patch 15090 RMD160 7d3f6b97e2f7ddb9d4a96d26894e3f3f0af75616 SHA1 50d45192e46c4cce6458091e0e1e715c32745001 SHA256 4555e1345df0e241b3536115118e4833fe0ae3bde0b7600446832725f43e3bdd AUX openfoam-solvers-compile-1.4.1_p20080328.patch 996 RMD160 0debfeb112bed547317d8d61a3fbdae1490050ba SHA1 87c9b4ace94e4eb7b0c16a39e041ec72fca7877e SHA256 1e6062ff63e4367067c229cc8348f5bbd5e6e96f2b9f109bbacb73f3f16310d5 +AUX openfoam-solvers-compile-1.4.1_p20080827.patch 996 RMD160 0debfeb112bed547317d8d61a3fbdae1490050ba SHA1 87c9b4ace94e4eb7b0c16a39e041ec72fca7877e SHA256 1e6062ff63e4367067c229cc8348f5bbd5e6e96f2b9f109bbacb73f3f16310d5 DIST OpenFOAM-1.4.1.General.gtgz 148526808 RMD160 e25d8bdfa63f15eeeb7b9f1cef09cc26fb7bef74 SHA1 56bbbf5b33c49d08cda35088a65b24d7dc59014f SHA256 c765b36639b42c737bc9ba1ac13c0f66efe20ee4a9f71a6ef987e86ebd50da28 DIST OpenFOAM-1.5.General.gtgz 117334661 RMD160 bccaa9f8f99d31aa6c791d40b30dd9ad4f534041 SHA1 3577f562dc1f54bb32e1e0ef43f979418212c2f7 SHA256 d4cba2d9475523a53cea80b8d39da70d12bfffb9f46e2d1442946ba4a23efd31 EBUILD openfoam-solvers-1.4.1_p20080328.ebuild 2624 RMD160 f61aec1dcf80aa4295ad894ede2af3ba1bab136c SHA1 6a7b3701e3d39744484afe69de684e7d9075ead7 SHA256 567fb499cd396e9058a56e60b5b0ab4a4f03c64bdd0fe3bd9c1de41b5ecddbd4 +EBUILD openfoam-solvers-1.4.1_p20080827.ebuild 2624 RMD160 f61aec1dcf80aa4295ad894ede2af3ba1bab136c SHA1 6a7b3701e3d39744484afe69de684e7d9075ead7 SHA256 567fb499cd396e9058a56e60b5b0ab4a4f03c64bdd0fe3bd9c1de41b5ecddbd4 EBUILD openfoam-solvers-1.5.ebuild 1820 RMD160 166913ae0572bfb57c327eff0d84f4be932cf658 SHA1 276ec3d920d1564cef01861daf86971cbbfda41f SHA256 f3f4506810142d9f7a7a59d8626ddcb11fd1a6e9f67a531a77033c1a5cb5dcf8 -MISC ChangeLog 1529 RMD160 068bd2e5b94f76273524a61457b7b24e6213480f SHA1 023bed95798355ae59ad73bf1759d7f99414dd38 SHA256 629568cc56e99d23c505f160ac322fffd2fb54dd318172936f4244d69c49a984 +MISC ChangeLog 1776 RMD160 0dff7b8fca0699b5b47c8ff42d87950152067bd4 SHA1 e0c9408e6b75bc5875f921ce81c71c6c276731a1 SHA256 2532d9701ba04ca8615a28993a261fdf211b8a9a48bb291470c8012d87cd389f MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42 diff --git a/sci-libs/openfoam-solvers/files/openfoam-solvers-1.4.1_p20080827.patch b/sci-libs/openfoam-solvers/files/openfoam-solvers-1.4.1_p20080827.patch new file mode 100644 index 000000000..314a2e6e6 --- /dev/null +++ b/sci-libs/openfoam-solvers/files/openfoam-solvers-1.4.1_p20080827.patch @@ -0,0 +1,423 @@ +Index: multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +=================================================================== +--- applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C (Revision 30) ++++ applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C (Revision 784) +@@ -120,30 +120,30 @@ + + Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::rho() const + { + PtrDictionary<phase>::const_iterator iter = phases_.begin(); + + tmp<volScalarField> trho = iter()*iter().rho(); + +- for(; iter != phases_.end(); ++iter) ++ for(++iter; iter != phases_.end(); ++iter) + { + trho() += iter()*iter().rho(); + } + + return trho; + } + + + Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::mu() const + { + PtrDictionary<phase>::const_iterator iter = phases_.begin(); + + tmp<volScalarField> tmu = iter()*iter().rho()*iter().nu(); + +- for(; iter != phases_.end(); ++iter) ++ for(++iter; iter != phases_.end(); ++iter) + { + tmu() += iter()*iter().rho()*iter().nu(); + } + + return tmu; + } + +@@ -151,15 +151,15 @@ + Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseMixture::muf() const + { + PtrDictionary<phase>::const_iterator iter = phases_.begin(); + + tmp<surfaceScalarField> tmuf = + fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu()); + +- for(; iter != phases_.end(); ++iter) ++ for(++iter; iter != phases_.end(); ++iter) + { + tmuf() += + fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu()); + } + + return tmuf; + } + +Index: multiphase/interFoam/FoamX/fvSchemes.cfg +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/fvSchemes.cfg (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/fvSchemes.cfg (Revision 784) +@@ -0,0 +1,29 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++include "$FOAMX_CONFIG/dictionaries/fvSchemes/fvSchemes.cfg"; ++ ++entries ++{ ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/ddt/transient.cfg"; ++ ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/grad/defaultOnly.cfg"; ++ include "fvSchemes/divSchemes.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/laplacian/defaultOnly.cfg"; ++ include "fvSchemes/interpolationSchemes.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/snGrad/defaultOnly.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/flux/pdPcorrGamma.cfg" ++; ++} ++ ++default ++{ ++ include "defaults/system/fvSchemes"; ++} ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/interFoam.cfg +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/interFoam.cfg (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/interFoam.cfg (Revision 784) +@@ -0,0 +1,57 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++description "Free surface-capturing unsteady laminar two-phase flow code"; ++ ++dictionaries ++{ ++ include "$FOAMX_CONFIG/dictionaries/controlDict/controlDictAdjustTimeStep.cfg"; ++ fvSchemes; ++ fvSolution; ++ include "$FOAMX_CONFIG/dictionaries/transportProperties/twoPhaseTransportProperties.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/environmentalProperties/environmentalPropertiesg.cfg"; ++} ++ ++fields ++{ ++ include "$FOAMX_CONFIG/entries/geometricFields/pd.cfg"; ++ include "$FOAMX_CONFIG/entries/geometricFields/U.cfg"; ++ include "$FOAMX_CONFIG/entries/geometricFields/gamma.cfg"; ++} ++ ++patchPhysicalTypes ++{ ++ include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/patches.cfg"; ++ ++ wallContactAngle ++ { ++ description "Wall boundary condition with specified contact-angle"; ++ parentType wall; ++ } ++} ++ ++patchFieldsPhysicalTypes ++{ ++ gamma ++ { ++ include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/gamma.cfg"; ++ wallContactAngle gammaContactAngle; ++ } ++ ++ U ++ { ++ include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/U.cfg"; ++ } ++ ++ pd ++ { ++ include "$FOAMX_CONFIG/entries/patchPhysicalTypes/standard/pd.cfg"; ++ } ++} ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/fvSchemes/divSchemes.cfg +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/fvSchemes/divSchemes.cfg (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/fvSchemes/divSchemes.cfg (Revision 784) +@@ -0,0 +1,21 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++divSchemes ++{ ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/schemes.cfg"; ++ entries ++ { ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/rhoPhiU.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phiGamma.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/div/phirbGamma.cfg"; ++ } ++} ++ ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/fvSchemes/interpolationSchemes.cfg +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/fvSchemes/interpolationSchemes.cfg (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/fvSchemes/interpolationSchemes.cfg (Revision 784) +@@ -0,0 +1,18 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++interpolationSchemes ++{ ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/schemes.cfg"; ++ entries ++ { ++ include "$FOAMX_CONFIG/dictionaries/fvSchemes/interpolation/default.cfg"; ++ } ++} ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/fvSolution.cfg +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/fvSolution.cfg (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/fvSolution.cfg (Revision 784) +@@ -0,0 +1,45 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++include "$FOAMX_CONFIG/dictionaries/fvSolution/fvSolution.cfg"; ++ ++entries ++{ ++ solvers ++ { ++ type dictionary; ++ entries ++ { ++ include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pcorr.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pd.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/pdFinal.cfg"; ++ include "$FOAMX_CONFIG/dictionaries/fvSolution/solvers/U.cfg"; ++ } ++ } ++ ++ PISO ++ { ++ type dictionary; ++ entries ++ { ++ include "$FOAMX_CONFIG/entries/Switch/momentumPredictor.cfg"; ++ include "$FOAMX_CONFIG/entries/label/nCorrectors.cfg"; ++ include "$FOAMX_CONFIG/entries/label/nNonOrthogonalCorrectors.cfg"; ++ include "$FOAMX_CONFIG/entries/label/nGammaCorr.cfg"; ++ include "$FOAMX_CONFIG/entries/label/nGammaSubCycles.cfg"; ++ include "$FOAMX_CONFIG/entries/scalar/cGamma.cfg"; ++ } ++ } ++} ++ ++default ++{ ++ include "defaults/system/fvSolution"; ++} ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/defaults/system/fvSchemes +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/defaults/system/fvSchemes (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/defaults/system/fvSchemes (Revision 784) +@@ -0,0 +1,67 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++FoamFile ++{ ++ version 2.0; ++ format ascii; ++ ++ root ""; ++ case ""; ++ instance ""; ++ local ""; ++ ++ class dictionary; ++ object fvSchemes; ++} ++ ++// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ++ ++ddtSchemes ++{ ++ default Euler; ++} ++ ++gradSchemes ++{ ++ default Gauss linear; ++} ++ ++divSchemes ++{ ++ div(rho*phi,U) Gauss limitedLinearV 1; ++ div(phi,gamma) Gauss vanLeer; ++ div(phirb,gamma) Gauss interfaceCompression; ++} ++ ++laplacianSchemes ++{ ++ default Gauss linear corrected; ++} ++ ++interpolationSchemes ++{ ++ default linear; ++ interpolate(HbyA) linear; ++} ++ ++snGradSchemes ++{ ++ default corrected; ++} ++ ++fluxRequired ++{ ++ default no; ++ pd; ++ pcorr; ++ gamma; ++} ++ ++ ++// ************************************************************************* // +Index: multiphase/interFoam/FoamX/defaults/system/fvSolution +=================================================================== +--- applications/solvers/multiphase/interFoam/FoamX/defaults/system/fvSolution (Revision 0) ++++ applications/solvers/multiphase/interFoam/FoamX/defaults/system/fvSolution (Revision 784) +@@ -0,0 +1,64 @@ ++/*---------------------------------------------------------------------------*\ ++| ========= | | ++| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ++| \\ / O peration | Version: 1.4 | ++| \\ / A nd | Web: http://www.openfoam.org | ++| \\/ M anipulation | | ++\*---------------------------------------------------------------------------*/ ++ ++FoamFile ++{ ++ version 2.0; ++ format ascii; ++ ++ root ""; ++ case ""; ++ instance ""; ++ local ""; ++ ++ class dictionary; ++ object fvSolution; ++} ++ ++// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ++ ++solvers ++{ ++ pcorr PCG ++ { ++ preconditioner DIC; ++ tolerance 1e-10; ++ relTol 0; ++ }; ++ pd PCG ++ { ++ preconditioner DIC; ++ tolerance 1e-7; ++ relTol 0.05; ++ }; ++ pdFinal PCG ++ { ++ preconditioner DIC; ++ tolerance 1e-7; ++ relTol 0; ++ }; ++ U PBiCG ++ { ++ preconditioner DILU; ++ tolerance 1e-06; ++ relTol 0; ++ }; ++} ++ ++PISO ++{ ++ momentumPredictor no; ++ nCorrectors 3; ++ nNonOrthogonalCorrectors 1; ++ nGammaCorr 1; ++ nGammaSubCycles 2; ++ cGamma 1; ++} ++ ++ ++// ************************************************************************* // + +Index: multiphase/twoPhaseEulerFoam/kineticTheoryModel/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C +=================================================================== +--- applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModel/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C (Revision 30) ++++ applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModel/frictionalStressModel/Schaeffer/SchaefferFrictionalStress.C (Revision 784) +@@ -126,23 +126,23 @@ + volScalarField& muf_ = tmuf(); + + forAll (D, celli) + { + if (alpha[celli] > alphaMax.value()-5e-2) + { + muf_[celli] = +- 0.5*alpha[celli]*pf[celli]*sin(phi.value()) ++ 0.5*pf[celli]*sin(phi.value()) + /( + sqrt(1.0/6.0*(sqr(D[celli].xx() - D[celli].yy()) + + sqr(D[celli].yy() - D[celli].zz()) + + sqr(D[celli].zz() - D[celli].xx())) + + sqr(D[celli].xy()) + sqr(D[celli].xz()) + + sqr(D[celli].yz())) + I2Dsmall + ); + } + } + +- return muf_; ++ return tmuf; + } + + + // ************************************************************************* // + diff --git a/sci-libs/openfoam-solvers/files/openfoam-solvers-compile-1.4.1_p20080827.patch b/sci-libs/openfoam-solvers/files/openfoam-solvers-compile-1.4.1_p20080827.patch new file mode 100644 index 000000000..e2ab13d8e --- /dev/null +++ b/sci-libs/openfoam-solvers/files/openfoam-solvers-compile-1.4.1_p20080827.patch @@ -0,0 +1,22 @@ +diff -ur OpenFOAM-1.4.1-src/wmake/rules/General/flex++ OpenFOAM-1.4.1/wmake/rules/General/flex++ +--- OpenFOAM-1.4.1-src/wmake/rules/General/flex++ 2006-08-18 17:35:12.000000000 +0200 ++++ OpenFOAM-1.4.1/wmake/rules/General/flex++ 2007-10-28 17:38:46.000000000 +0100 +@@ -1,6 +1,6 @@ + .SUFFIXES: .L + +-Ltoo = flex++ -f $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ ++Ltoo = flex --c++ -f $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ + + .L.dep: + $(MAKE_DEP) +diff -ur OpenFOAM-1.4.1-src/wmake/rules/General/flex++.test OpenFOAM-1.4.1/wmake/rules/General/flex++.test +--- OpenFOAM-1.4.1-src/wmake/rules/General/flex++.test 2007-03-13 17:27:58.000000000 +0100 ++++ OpenFOAM-1.4.1/wmake/rules/General/flex++.test 2007-10-28 17:39:09.000000000 +0100 +@@ -1,6 +1,6 @@ + .SUFFIXES: .L + +-Ltoo = flex++ $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ ++Ltoo = flex --c++ $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ + + .L.dep: + $(MAKE_DEP) diff --git a/sci-libs/openfoam-solvers/openfoam-solvers-1.4.1_p20080827.ebuild b/sci-libs/openfoam-solvers/openfoam-solvers-1.4.1_p20080827.ebuild new file mode 100644 index 000000000..857dcc3c5 --- /dev/null +++ b/sci-libs/openfoam-solvers/openfoam-solvers-1.4.1_p20080827.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit eutils java-pkg-2 versionator multilib toolchain-funcs + +MY_PN="OpenFOAM" +MY_PV=$(get_version_component_range 1-3 ${PV}) +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="OpenFOAM - solvers" +HOMEPAGE="http://www.opencfd.co.uk/openfoam/" +SRC_URI="mirror://sourceforge/foam/${MY_P}.General.gtgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="!=sci-libs/openfoam-${MY_PV}* + !=sci-libs/openfoam-bin-${MY_PV}* + <virtual/jdk-1.5 + =sci-libs/openfoam-kernel-${MY_PV}*" + +S=${WORKDIR}/${MY_P} +INSDIR="/usr/$(get_libdir)/${MY_PN}/${MY_P}" + +pkg_setup() { + if ! version_is_at_least 4.1 $(gcc-version) ; then + die "${PN} requires >=sys-devel/gcc-4.1 to compile." + fi + + java-pkg-2_pkg_setup +} + +src_unpack() { + ln -s "${DISTDIR}"/${MY_P}.General.gtgz ${MY_P}.General.tgz + unpack ./${MY_P}.General.tgz + + cd "${S}" + epatch "${FILESDIR}"/${P}.patch + epatch "${FILESDIR}"/${PN}-compile-${PV}.patch +} + +src_compile() { + cp -a ${INSDIR}/.bashrc "${S}"/.bashrc || "cannot copy .bashrc" + cp -a ${INSDIR}/.${MY_P}/bashrc "${S}"/.${MY_P}/bashrc.bak || "cannot copy bashrc" + + use amd64 && export WM_64="on" + + sed -i -e "s|WM_PROJECT_INST_DIR=/usr/$(get_libdir)/\$WM_PROJECT|WM_PROJECT_INST_DIR="${WORKDIR}"|" \ + -e "s|WM_PROJECT_DIR=\$WM_PROJECT_INST_DIR/\$WM_PROJECT-\$WM_PROJECT_VERSION|WM_PROJECT_DIR="${S}"|" \ + "${S}"/.${MY_P}/bashrc.bak || die "could not replace source options" + + sed -i -e "s|\$WM_PROJECT_INST_DIR/\$WM_ARCH/bin|"${INSDIR}"/bin|" \ + -e "s|FOAM_LIB=\$WM_PROJECT_DIR/lib|FOAM_LIB="${INSDIR}"/lib|" \ + -e "s|FOAM_LIBBIN=\$FOAM_LIB|FOAM_LIBBIN=\$WM_PROJECT_DIR/lib/\$WM_OPTIONS|" \ + -e "s|AddLib \$FOAM_USER_LIBBIN|AddLib \$FOAM_LIB|" \ + -e "s|applications/bin|applications/bin/\$WM_OPTIONS|" \ + -e "s|FOAM_MPI_LIBBIN=\$FOAM_LIBBIN/|FOAM_MPI_LIBBIN="${INSDIR}"/lib/|" \ + "${S}"/.bashrc || die "could not replace paths" + + sed -i -e "s|-L\$(LIB_WM_OPTIONS_DIR)|-L\$(LIB_WM_OPTIONS_DIR) -L${INSDIR}/lib|" \ + "${S}"/wmake/Makefile || die "could not replace search paths" + + source "${S}"/.${MY_P}/bashrc.bak + + cd "${S}"/applications/solvers + wmake all || die "could not build OpenFOAM utilities" +} + +src_install() { + insopts -m0755 + insinto ${INSDIR}/applications/bin + doins -r applications/bin/${WM_OPTIONS}/* + + insinto /usr/$(get_libdir)/${MY_PN}/${MY_P}/lib + doins -r lib/${WM_OPTIONS}/* + + find "${S}"/applications -type d \( -name "${WM_OPTIONS}" -o -name linuxDebug -o -name linuxOpt \) | xargs rm -rf + + insopts -m0644 + insinto ${INSDIR}/applications + doins -r applications/solvers +} |