Revision: 120744 https://trac.macports.org/changeset/120744 Author: sean@macports.org Date: 2014-06-05 20:54:59 -0700 (Thu, 05 Jun 2014) Log Message: ----------- ngsolve: add new port; closes #42057 Added Paths: ----------- trunk/dports/math/ngsolve/ trunk/dports/math/ngsolve/Portfile trunk/dports/math/ngsolve/files/ trunk/dports/math/ngsolve/files/patch-extern-netgen.diff trunk/dports/math/ngsolve/files/patch-l2hofe-template.diff Added: trunk/dports/math/ngsolve/Portfile =================================================================== --- trunk/dports/math/ngsolve/Portfile (rev 0) +++ trunk/dports/math/ngsolve/Portfile 2014-06-06 03:54:59 UTC (rev 120744) @@ -0,0 +1,48 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 +# $Id$ + +PortSystem 1.0 +PortGroup compilers 1.0 + +compilers.setup + +name ngsolve +version 5.1 +platforms darwin +categories math +license LGPL-2 +maintainers nomaintainer +description NGSolve Finite Element Library +long_description NGSolve is a general purpose Finite Element Library \ + on top of Netgen. With the basic library one can solve \ + heat flow equations, Maxwell equations, and solid \ + mechanical problems. Several add-ons are available for \ + particular application classes. + +homepage http://sourceforge.net/apps/mediawiki/ngsolve/ +master_sites sourceforge:ngsolve + +checksums rmd160 0e0638b91b81fa1d6dbf7baf76794b225b6b7f8c \ + sha256 5c3a035345cdcf526c1b6b3f1ec12b37a3c856c82c8d31e22ef87d1477f2eb82 + +depends_lib port:tcl port:tk port:tix port:Togl port:netgen + +# configure.ldflags-append -lcblas -lf77blas -latlas -llapack -lgfortran +configure.ldflags-append -lnglib -linterface -lgeom2d -lmesh -lstl -lcsg -lcsgvis -lz + +configure.args --mandir=${prefix}/share/man \ + --with-tcl=${prefix}/lib \ + --with-netgen=${prefix} \ + --disable-shared \ + --with-lapack="-framework Accelerate" + +patchfiles patch-l2hofe-template.diff \ + patch-extern-netgen.diff + +test.run yes +test.target test + +post-destroot { + reinplace -W ${destroot}${prefix}/bin "s,libngsolve,${prefix}/lib/libngsolve,g" ngsolve.tcl + delete ${destroot}${prefix}/include/clapack.h +} Added: trunk/dports/math/ngsolve/files/patch-extern-netgen.diff =================================================================== --- trunk/dports/math/ngsolve/files/patch-extern-netgen.diff (rev 0) +++ trunk/dports/math/ngsolve/files/patch-extern-netgen.diff 2014-06-06 03:54:59 UTC (rev 120744) @@ -0,0 +1,13 @@ +--- solve/ngs.cpp.orig 2014-06-01 15:17:41.000000000 -0500 ++++ solve/ngs.cpp 2014-06-01 15:18:03.000000000 -0500 +@@ -2,8 +2,8 @@ + + namespace netgen + { +- int h_argc; +- char ** h_argv; ++ extern int h_argc; ++ extern char ** h_argv; + } + + int main(int argc, char ** argv) Added: trunk/dports/math/ngsolve/files/patch-l2hofe-template.diff =================================================================== --- trunk/dports/math/ngsolve/files/patch-l2hofe-template.diff (rev 0) +++ trunk/dports/math/ngsolve/files/patch-l2hofe-template.diff 2014-06-06 03:54:59 UTC (rev 120744) @@ -0,0 +1,124 @@ +--- fem/l2hofe.cpp.orig 2014-05-31 11:21:29.000000000 -0500 ++++ fem/l2hofe.cpp 2014-05-31 11:25:40.000000000 -0500 +@@ -17,18 +17,18 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + typename L2HighOrderFE<ET,SHAPES,BASE>::TPRECOMP L2HighOrderFE<ET,SHAPES,BASE>::precomp; + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + typename L2HighOrderFE<ET,SHAPES,BASE>::TPRECOMP_TRACE L2HighOrderFE<ET,SHAPES,BASE>::precomp_trace(320); + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + typename L2HighOrderFE<ET,SHAPES,BASE>::TPRECOMP_GRAD L2HighOrderFE<ET,SHAPES,BASE>::precomp_grad(40); + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + PrecomputeTrace () + { +@@ -56,7 +56,7 @@ + } + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + PrecomputeGrad () + { +@@ -72,7 +72,7 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + PrecomputeShapes (const IntegrationRule & ir) + { +@@ -95,7 +95,7 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + Evaluate (const IntegrationRule & ir, FlatVector<double> coefs, FlatVector<double> vals) const + { +@@ -108,7 +108,7 @@ + } + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + EvaluateTrans (const IntegrationRule & ir, FlatVector<> values, FlatVector<> coefs) const + { +@@ -128,7 +128,7 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + EvaluateGrad (const IntegrationRule & ir, FlatVector<> coefs, FlatMatrixFixWidth<DIM> values) const + { +@@ -145,7 +145,7 @@ + } + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + EvaluateGradTrans (const IntegrationRule & ir, FlatMatrixFixWidth<DIM> values, FlatVector<> coefs) const + { +@@ -163,7 +163,7 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + GetGradient (FlatVector<> coefs, FlatMatrixFixWidth<DIM> grad) const + { +@@ -179,7 +179,7 @@ + DGFiniteElement<DIM>::GetGradient (coefs, grad); + } + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + GetGradientTrans (FlatMatrixFixWidth<DIM> grad, FlatVector<> coefs) const + { +@@ -203,7 +203,7 @@ + + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + GetTrace (int facet, FlatVector<> coefs, FlatVector<> fcoefs) const + { +@@ -218,7 +218,7 @@ + DGFiniteElement<DIM>::GetTrace (facet, coefs, fcoefs); + } + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + GetTraceTrans (int facet, FlatVector<> fcoefs, FlatVector<> coefs) const + { +@@ -232,7 +232,7 @@ + } + + +- template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET> class SHAPES, class BASE> ++ template <ELEMENT_TYPE ET, template <ELEMENT_TYPE ET2> class SHAPES, class BASE> + void L2HighOrderFE<ET,SHAPES,BASE> :: + GetDiagMassMatrix (FlatVector<> mass) const + {