Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Feb 2026 15:13:46 +0000
From:      Thierry Thomas <thierry@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 24f85cb9f5e7 - main - science/elmerfem: restore
Message-ID:  <698210aa.4074d.7be5b9d0@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by thierry:

URL: https://cgit.FreeBSD.org/ports/commit/?id=24f85cb9f5e7c294e44a1b70f4da13bf1111402f

commit 24f85cb9f5e7c294e44a1b70f4da13bf1111402f
Author:     Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2026-02-03 15:09:06 +0000
Commit:     Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2026-02-03 15:09:06 +0000

    science/elmerfem: restore
---
 MOVED                                              |   1 -
 science/Makefile                                   |   1 +
 science/elmerfem/Makefile                          | 123 ++++++
 science/elmerfem/distinfo                          |   5 +
 science/elmerfem/files/patch-CMakeLists.txt        |  11 +
 .../patch-ElmerGUI_Application_cad_cadview.cpp     | 101 +++++
 .../patch-ElmerGUI_Application_twod_renderarea.cpp |  10 +
 .../patch-ElmerGUI_Application_vtkpost_vtkpost.cpp |  53 +++
 .../elmerfem/files/patch-ElmerGUI_CMakeLists.txt   |  15 +
 .../files/patch-cmake_Modules_FindOCE.cmake        |  15 +
 ...ake_Modules_FindPackageHandleStandardArgs.cmake |  10 +
 .../files/patch-elmergrid_src_CMakeLists.txt       |  22 +
 .../patch-fem_src_modules_DCRComplexSolve.F90      |  58 +++
 science/elmerfem/pkg-descr                         |   8 +
 science/elmerfem/pkg-plist                         | 449 +++++++++++++++++++++
 15 files changed, 881 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index 4757d7fc75ec..52d678478277 100644
--- a/MOVED
+++ b/MOVED
@@ -5104,5 +5104,4 @@ biology/snpeff||2026-02-01|Has expired: Unfetchable
 games/freeminer-default||2026-02-01|Has expired: depends on deprecated games/freeminer
 games/freeminer||2026-02-01|Has expired: dead upstream
 net/jsch||2026-02-01|Has expired: Upstream website does not exist. No ports depend on this. It does not compile on jdk21. See also: https://github.com/mwiede/jsch
-science/elmerfem||2026-02-01|Broken for more than 6 months
 devel/rubygem-ffi16|devel/rubygem-ffi|2026-02-03|Remove obsoleted port. Use devel/rubygem-ffi instead
diff --git a/science/Makefile b/science/Makefile
index fefb467d96f3..f14398a64291 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -83,6 +83,7 @@
     SUBDIR += dynare
     SUBDIR += eccodes
     SUBDIR += elk
+    SUBDIR += elmerfem
     SUBDIR += epte
     SUBDIR += erd
     SUBDIR += ergo
diff --git a/science/elmerfem/Makefile b/science/elmerfem/Makefile
new file mode 100644
index 000000000000..0b9f373882f1
--- /dev/null
+++ b/science/elmerfem/Makefile
@@ -0,0 +1,123 @@
+PORTNAME=	elmerfem
+DISTVERSIONPREFIX=	release-
+DISTVERSION=	9.0
+PORTREVISION=	23
+CATEGORIES=	science
+
+PATCH_SITES=	https://github.com/ElmerCSC/${PORTNAME}/commit/
+PATCHFILES=	48e9430c.patch:-p1 # https://github.com/ElmerCSC/elmerfem/pull/294
+
+MAINTAINER=	henrik@gulbra.net
+COMMENT=	Multiphysical simulation software
+WWW=		https://www.elmerfem.org/blog/
+
+LICENSE=	GPLv2
+
+BROKEN=		fails to build with vtk-9.5.0, see https://github.com/ElmerCSC/elmerfem/issues/677
+
+LIB_DEPENDS=	libblas.so:math/blas \
+		libhdf5.so:science/hdf5 \
+		libmetis.so:math/metis \
+		libmpich.so:net/mpich \
+		libnetcdf.so:science/netcdf \
+		libopenblas.so:math/openblas \
+		libparpack.so:math/arpack-ng
+
+USES=		cmake compiler:c++11-lang fortran
+USE_CXXSTD=	c++14
+USE_GITHUB=	yes
+GH_ACCOUNT=	ElmerCSC
+USE_LDCONFIG=	${PREFIX}/lib/elmersolver
+
+CMAKE_ARGS=	-DELMER_FEM_REVISION:STRING=${GH_TAGNAME}
+
+ALL_TARGET=	# empty
+
+LDFLAGS+=	-L${LOCALBASE}/lib
+
+PORTSCOUT=	limit:^release-[1-9]
+
+CMAKE_ARGS+=	-DHAVE_INTTYPES_H=ON
+.if !defined(MAINTAINER_MODE)
+CMAKE_ARGS+=	-Wno-dev
+.endif
+
+OPTIONS_DEFINE=		GUI OCC
+OPTIONS_DEFAULT=	GUI OCC
+OPTIONS_SUB=		yes
+
+GUI_DESC=		Build with ElmerGUI (Graphical User Interface)
+OCC_DESC=		Use OpenCASCADE for CAD import in ElmerGUI
+
+GUI_LIB_DEPENDS=	libqwt.so:x11-toolkits/qwt6@qt5
+GUI_USES=		gl jpeg qt:5 xorg
+GUI_USE=		gl=gl,glu xorg=ice,sm,x11,xext,xt qt=${_QT5_LIBS:ts,}
+GUI_CMAKE_BOOL=		WITH_ELMERGUI WITH_PARAVIEW
+GUI_CMAKE_ON=		-DQWT_LIBRARY=${QT_LIBDIR}/libqwt.so \
+			-DQWT_INCLUDE_DIR=${QT_INCDIR}/qwt6 \
+			-DDESIRED_QT_VERSION=5 \
+			-DWITH_QT5:BOOL=TRUE \
+			-DQT_FOUND:BOOL=TRUE
+
+OCC_IMPLIES=		GUI
+OCC_LIB_DEPENDS=	libexpat.so:textproc/expat2 \
+			libfreetype.so:print/freetype2 \
+			libpng.so:graphics/png \
+			libpython${_PYVERSION}.so:lang/python${PYTHON_SUFFIX} \
+			libtiff.so:graphics/tiff \
+			libTKernel.so:cad/opencascade \
+			libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R}
+OCC_USES=		python
+OCC_CMAKE_BOOL=		WITH_OCC
+OCC_CMAKE_ON=		-DVTK_DIR=${LOCALBASE}/lib/cmake/vtk-9.0 \
+			-DPython3_EXECUTABLE=${PYTHON_CMD}
+
+_LIBSTAGEDIR=	${STAGEDIR}/${PREFIX}/lib/elmersolver
+_PYVERSION=	${PYTHON_VER}${PYTHON_ABIVER}
+_QT5_LIBS=	buildtools:build core declarative gui network opengl \
+		printsupport qmake:build script sql svg widgets xml
+
+.include <../../math/vtk9/Makefile.version>
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "amd64"
+CFLAGS_${ARCH}=	-fPIC
+CXXFLAGS_${ARCH}= -fPIC
+FCFLAGS+=	-fPIC
+FFLAGS+=	-fPIC
+.endif
+
+.if ${GCC_DEFAULT} >= 10
+# workaround for Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/COMPLEX(8)).
+# in theory, this should set FCFLAGS, but the port does not conform
+FFLAGS+=	-fallow-argument-mismatch
+.endif
+
+post-patch:
+	@${RM} ${WRKSRC}/cmake/Modules/CMakeParseArguments.cmake
+	@${RM} -r ${WRKSRC}/elmergrid/src/metis-5.1.0
+	@${REINPLACE_CMD} -e 's,"metis.*/metis\.h",<metis.h>,' \
+		${WRKSRC}/elmergrid/src/egparallel.c
+
+pre-configure-OCC-on:
+	${REINPLACE_CMD} -e "s|\$${VERSION}|`${PKG_QUERY} '%v' opencascade`|" \
+		"${WRKSRC}/cmake/Modules/FindOCE.cmake"
+	${REINPLACE_CMD} -e 's|$${INCLUDE}|${LOCALBASE}/include/OpenCASCADE|' \
+		"${WRKSRC}/cmake/Modules/FindOCE.cmake"
+
+post-configure:
+	# workaround for https://github.com/ElmerCSC/elmerfem/issues/334
+	@${REINPLACE_CMD} -e 's| -lMPI::MPI_C | |' ${BUILD_WRKSRC}/ElmerGUI/Application/CMakeFiles/ElmerGUI.dir/link.txt
+
+post-install:
+	${LN} -sf ElmerSolver_mpi ${STAGEDIR}${PREFIX}/bin/ElmerSolver
+	${LN} -sf libelmersolver.so ${_LIBSTAGEDIR}/libelmersolver.so.0
+	${LN} -sf libfhuti.so ${_LIBSTAGEDIR}/libfhuti.so.0
+	${LN} -sf libmatc.so ${_LIBSTAGEDIR}/libmatc.so.0
+	${LN} -sf libmpi_stubs.so ${_LIBSTAGEDIR}/libmpi_stubs.so.0
+	@${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/ElmerGrid
+
+do-test:
+	@cd ${TEST_WRKSRC} && ctest -C ${CMAKE_BUILD_TYPE} ${_MAKE_JOBS}
+
+.include <bsd.port.post.mk>
diff --git a/science/elmerfem/distinfo b/science/elmerfem/distinfo
new file mode 100644
index 000000000000..a586a9e01226
--- /dev/null
+++ b/science/elmerfem/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1648098229
+SHA256 (ElmerCSC-elmerfem-release-9.0_GH0.tar.gz) = 08c5bf261e87ff37456c1aa0372db3c83efabe4473ea3ea0b8ec66f5944d1aa0
+SIZE (ElmerCSC-elmerfem-release-9.0_GH0.tar.gz) = 64060003
+SHA256 (48e9430c.patch) = b6ed988029169a5af745187d6ffb3e73cb81f5287944aab273e4a1fdf50af91f
+SIZE (48e9430c.patch) = 1141
diff --git a/science/elmerfem/files/patch-CMakeLists.txt b/science/elmerfem/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..f663733e4c7b
--- /dev/null
+++ b/science/elmerfem/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2020-06-26 12:18:06 UTC
++++ CMakeLists.txt
+@@ -470,7 +470,7 @@ ADD_SUBDIRECTORY(umfpack)
+ ADD_SUBDIRECTORY(fhutiter)
+ ADD_SUBDIRECTORY(meshgen2d)
+ ADD_SUBDIRECTORY(fem)
+-ADD_SUBDIRECTORY(mathlibs)
++#ADD_SUBDIRECTORY(mathlibs)
+ ADD_SUBDIRECTORY(elmergrid)
+ ADD_SUBDIRECTORY(license_texts)
+ 
diff --git a/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp b/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp
new file mode 100644
index 000000000000..aed35f60ceed
--- /dev/null
+++ b/science/elmerfem/files/patch-ElmerGUI_Application_cad_cadview.cpp
@@ -0,0 +1,101 @@
+- includes workaround for https://github.com/ElmerCSC/elmerfem/issues/304
+
+--- ElmerGUI/Application/cad/cadview.cpp.orig	2020-11-10 19:52:44 UTC
++++ ElmerGUI/Application/cad/cadview.cpp
+@@ -74,7 +74,7 @@
+ #include <BRepAdaptor_Curve2d.hxx>
+ #include <BRepBndLib.hxx>
+ #include <BRepGProp.hxx>
+-#include <BRepMesh.hxx>
++#include <BRepMesh_IncrementalMesh.hxx>
+ #include <BRepTools.hxx>
+ #include <BRep_Builder.hxx>
+ #include <BRep_Tool.hxx>
+@@ -104,7 +104,7 @@ static void pickEventHandler(vtkObject* caller, unsign
+   QVTKWidget* qvtkWidget = cadView->GetQVTKWidget();
+ #endif
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   vtkPropPicker* propPicker = vtkPropPicker::SafeDownCast(picker);
+   vtkActor* actor = propPicker->GetActor();
+ 
+@@ -146,15 +146,15 @@ CadView::CadView(QWidget *parent) : QMainWindow(parent
+ 
+   renderer = vtkRenderer::New();
+   renderer->SetBackground(1, 1, 1);
+-  qVTKWidget->GetRenderWindow()->AddRenderer(renderer);
++  qVTKWidget->renderWindow()->AddRenderer(renderer);
+   renderer->GetRenderWindow()->Render();
+ 
+   vtkPropPicker *propPicker = vtkPropPicker::New();
+   vtkCallbackCommand *cbcPick = vtkCallbackCommand::New();
+-  qVTKWidget->GetInteractor()->SetPicker(propPicker);
++  qVTKWidget->interactor()->SetPicker(propPicker);
+   cbcPick->SetClientData(this);
+   cbcPick->SetCallback(pickEventHandler);
+-  qVTKWidget->GetInteractor()->GetPicker()->AddObserver(vtkCommand::PickEvent,
++  qVTKWidget->interactor()->GetPicker()->AddObserver(vtkCommand::PickEvent,
+                                                         cbcPick);
+   propPicker->Delete();
+   cbcPick->Delete();
+@@ -343,9 +343,6 @@ bool CadView::readFile(QString fileName) {
+ 
+     const gp_Trsf &Transformation = Location.Transformation();
+ 
+-    const Poly_Array1OfTriangle &Triangles = Triangulation->Triangles();
+-    const TColgp_Array1OfPnt &Nodes = Triangulation->Nodes();
+-
+     int nofTriangles = Triangulation->NbTriangles();
+     int nofNodes = Triangulation->NbNodes();
+ 
+@@ -366,8 +363,8 @@ bool CadView::readFile(QString fileName) {
+     vtkTriangle *triangle = vtkTriangle::New();
+     partGrid->Allocate(nofTriangles, nofTriangles);
+ 
+-    for (int i = Triangles.Lower(); i <= Triangles.Upper(); i++) {
+-      Triangles(i).Get(n0, n1, n2);
++    for (int i = 1; i <= nofTriangles; i++) {
++      Triangulation->Triangle(i).Get(n0, n1, n2);
+ 
+       if (Face.Orientation() != TopAbs_FORWARD) {
+         int tmp = n2;
+@@ -375,9 +372,9 @@ bool CadView::readFile(QString fileName) {
+         n1 = tmp;
+       }
+ 
+-      triangle->GetPointIds()->SetId(0, n0 - Nodes.Lower());
+-      triangle->GetPointIds()->SetId(1, n1 - Nodes.Lower());
+-      triangle->GetPointIds()->SetId(2, n2 - Nodes.Lower());
++      triangle->GetPointIds()->SetId(0, n0 - 1);
++      triangle->GetPointIds()->SetId(1, n1 - 1);
++      triangle->GetPointIds()->SetId(2, n2 - 1);
+ 
+       partGrid->InsertNextCell(triangle->GetCellType(),
+                                triangle->GetPointIds());
+@@ -385,13 +382,13 @@ bool CadView::readFile(QString fileName) {
+ 
+     double x[3];
+     vtkPoints *partPoints = vtkPoints::New();
+-    for (int i = Nodes.Lower(); i <= Nodes.Upper(); i++) {
+-      gp_XYZ XYZ = Nodes(i).Coord();
++    for (int i = 1; i <= nofNodes; i++) {
++      gp_XYZ XYZ = Triangulation->Node(i).Coord();
+       Transformation.Transforms(XYZ);
+       x[0] = XYZ.X();
+       x[1] = XYZ.Y();
+       x[2] = XYZ.Z();
+-      partPoints->InsertPoint(i - Nodes.Lower(), x);
++      partPoints->InsertPoint(i - 1, x);
+     }
+ 
+     partGrid->SetPoints(partPoints);
+@@ -490,7 +487,7 @@ bool CadView::readFile(QString fileName) {
+   // Draw:
+   //------
+   renderer->ResetCamera();  
+-  qVTKWidget->GetRenderWindow()->Render();
++  qVTKWidget->renderWindow()->Render();
+ 
+   QCoreApplication::processEvents();
+ 
diff --git a/science/elmerfem/files/patch-ElmerGUI_Application_twod_renderarea.cpp b/science/elmerfem/files/patch-ElmerGUI_Application_twod_renderarea.cpp
new file mode 100644
index 000000000000..804d181d2e71
--- /dev/null
+++ b/science/elmerfem/files/patch-ElmerGUI_Application_twod_renderarea.cpp
@@ -0,0 +1,10 @@
+--- ElmerGUI/Application/twod/renderarea.cpp.orig	2020-06-23 12:25:41 UTC
++++ ElmerGUI/Application/twod/renderarea.cpp
+@@ -38,6 +38,7 @@
+  *                                                                           *
+  *****************************************************************************/
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QMouseEvent>
+ #include <QFile>
+ #include <QTextStream>
diff --git a/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp b/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp
new file mode 100644
index 000000000000..77962f421b0e
--- /dev/null
+++ b/science/elmerfem/files/patch-ElmerGUI_Application_vtkpost_vtkpost.cpp
@@ -0,0 +1,53 @@
+--- ElmerGUI/Application/vtkpost/vtkpost.cpp.orig	2020-11-10 19:52:44 UTC
++++ ElmerGUI/Application/vtkpost/vtkpost.cpp
+@@ -124,6 +124,8 @@
+ 
+ using namespace std;
+ 
++#define GetRenderWindow renderWindow // renaming for VTK-9.2.2
++
+ // Custom print for QtScript:
+ //----------------------------
+ #if QT_VERSION >= 0x040403
+@@ -171,7 +173,7 @@ static void pEventHandler(vtkObject* caller, unsigned 
+   QVTKWidget* qvtkWidget = vtkPost->GetQVTKWidget();
+ #endif
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   vtkPropPicker* propPicker = vtkPropPicker::SafeDownCast(picker);
+ 
+   vtkActor* actor = propPicker->GetActor();
+@@ -382,14 +384,14 @@ VtkPost::VtkPost(QWidget *parent)
+   // Create a cell picker and set the callback & observer:
+   //------------------------------------------------------
+   vtkPropPicker* propPicker = vtkPropPicker::New();
+-  qvtkWidget->GetInteractor()->SetPicker(propPicker);
++  qvtkWidget->interactor()->SetPicker(propPicker);
+   propPicker->Delete();
+ 
+   vtkCallbackCommand* cbcPick = vtkCallbackCommand::New();
+   cbcPick->SetClientData(this);
+   cbcPick->SetCallback(pEventHandler);
+ 
+-  vtkAbstractPicker* picker = qvtkWidget->GetInteractor()->GetPicker();
++  vtkAbstractPicker* picker = qvtkWidget->interactor()->GetPicker();
+   picker->AddObserver(vtkCommand::EndPickEvent, cbcPick);
+   cbcPick->Delete();
+ 
+@@ -402,7 +404,7 @@ VtkPost::VtkPost(QWidget *parent)
+   cbcPlane->SetCallback(iEventHandler);
+ 
+   planeWidget = vtkImplicitPlaneWidget::New();
+-  planeWidget->SetInteractor(qvtkWidget->GetInteractor());
++  planeWidget->SetInteractor(qvtkWidget->interactor());
+   planeWidget->AddObserver(vtkCommand::InteractionEvent, cbcPlane);
+   cbcPlane->Delete();
+ 
+@@ -3519,4 +3521,4 @@ void VtkPost::viewZXmPlaneSlot(){
+   renderer->GetActiveCamera()->SetViewUp(1,0,0);
+   renderer->ResetCamera();
+   redrawSlot();
+-}
+\ No newline at end of file
++}
diff --git a/science/elmerfem/files/patch-ElmerGUI_CMakeLists.txt b/science/elmerfem/files/patch-ElmerGUI_CMakeLists.txt
new file mode 100644
index 000000000000..1207457d52e1
--- /dev/null
+++ b/science/elmerfem/files/patch-ElmerGUI_CMakeLists.txt
@@ -0,0 +1,15 @@
+--- ElmerGUI/CMakeLists.txt.orig	2020-11-10 19:52:44 UTC
++++ ElmerGUI/CMakeLists.txt
+@@ -83,7 +83,11 @@ IF(WITH_OCC)
+     MESSAGE(STATUS "  [ElmerGUI] OCE_VERSION:       " ${OCE_VERSION})
+     MESSAGE(STATUS "  [ElmerGUI] OCE_INCLUDE_DIRS:  " ${OCE_INCLUDE_DIRS})
+   ENDIF()
+-  SET(ELMER_OCC_LIBS "TKernel;TKMath;TKG3d;TKG2d;TKBRep;TKSTEP;TKMesh;TKIGES;TKG2d;TKGeomBase;TKBool;TKBO;TKGeomAlgo;TKPrim;TKShHealing;TKSTEP209;TKSTEPAttr;TKSTEPBase;TKTopAlgo;TKXSBase" CACHE INTERNAL "")
++  IF(OCE_VERSION AND OCE_VERSION VERSION_GREATER_EQUAL "7.8.0")
++    SET(ELMER_OCC_LIBS "TKernel;TKMath;TKG3d;TKG2d;TKBRep;TKDESTEP;TKMesh;TKDEIGES;TKG2d;TKGeomBase;TKBool;TKBO;TKGeomAlgo;TKPrim;TKShHealing;TKTopAlgo;TKXSBase" CACHE INTERNAL "")
++  ELSE()
++    SET(ELMER_OCC_LIBS "TKernel;TKMath;TKG3d;TKG2d;TKBRep;TKSTEP;TKMesh;TKIGES;TKG2d;TKGeomBase;TKBool;TKBO;TKGeomAlgo;TKPrim;TKShHealing;TKSTEP209;TKSTEPAttr;TKSTEPBase;TKTopAlgo;TKXSBase" CACHE INTERNAL "")
++  ENDIF()
+   MESSAGE(STATUS "  [ElmerGUI] ELMER_OCC_LIBS:    " "${ELMER_OCC_LIBS}")
+   MESSAGE(STATUS "------------------------------------------------")
+ ENDIF()
diff --git a/science/elmerfem/files/patch-cmake_Modules_FindOCE.cmake b/science/elmerfem/files/patch-cmake_Modules_FindOCE.cmake
new file mode 100644
index 000000000000..c9c428cd8de4
--- /dev/null
+++ b/science/elmerfem/files/patch-cmake_Modules_FindOCE.cmake
@@ -0,0 +1,15 @@
+--- cmake/Modules/FindOCE.cmake.orig	2020-03-08 13:46:44 UTC
++++ cmake/Modules/FindOCE.cmake
+@@ -0,0 +1,12 @@
++MESSAGE(STATUS "Faking OCE")
++
++SET(OCE_FOUND TRUE)
++SET(OCE_VERSION "${VERSION}")
++SET(OCE_INCLUDE_DIRS "${INCLUDE}")
++
++
++MARK_AS_ADVANCED(
++  OCE_FOUND
++  OCE_VERSION
++  OCE_INCLUDE_DIRS
++  )
diff --git a/science/elmerfem/files/patch-cmake_Modules_FindPackageHandleStandardArgs.cmake b/science/elmerfem/files/patch-cmake_Modules_FindPackageHandleStandardArgs.cmake
new file mode 100644
index 000000000000..68963493b696
--- /dev/null
+++ b/science/elmerfem/files/patch-cmake_Modules_FindPackageHandleStandardArgs.cmake
@@ -0,0 +1,10 @@
+--- cmake/Modules/FindPackageHandleStandardArgs.cmake.orig	2020-11-10 19:52:44 UTC
++++ cmake/Modules/FindPackageHandleStandardArgs.cmake
+@@ -100,7 +100,6 @@
+ #  License text for the above reference.)
+ 
+ include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake)
+-include(${CMAKE_CURRENT_LIST_DIR}/CMakeParseArguments.cmake)
+ 
+ # internal helper macro
+ macro(_FPHSA_FAILURE_MESSAGE _msg)
diff --git a/science/elmerfem/files/patch-elmergrid_src_CMakeLists.txt b/science/elmerfem/files/patch-elmergrid_src_CMakeLists.txt
new file mode 100644
index 000000000000..8daab05b04f0
--- /dev/null
+++ b/science/elmerfem/files/patch-elmergrid_src_CMakeLists.txt
@@ -0,0 +1,22 @@
+--- elmergrid/src/CMakeLists.txt.orig	2020-11-10 19:52:44 UTC
++++ elmergrid/src/CMakeLists.txt
+@@ -12,19 +12,13 @@ IF(CMAKE_CROSSCOMPILING)
+   ENDIF()
+ ENDIF()
+ 
+-# Don't install metis
+-SET(METIS_INSTALL FALSE CACHE BOOL "")
+-ADD_SUBDIRECTORY(metis-5.1.0)
+-
+ SET(elmergrid_SRCS egdef.h egparallel.h egnative.h egconvert.h
+   egexport.h egextra.h egmesh.h 
+   egtypes.h egutils.h egparallel.c egnative.c egconvert.c egexport.c
+   egextra.c egmesh.c fempre.c 
+   egutils.c)
+ 
+-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/metis)
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/elmergrid/src/metis)
+ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/elmergrid/src)
+ 
+ ADD_DEFINITIONS(-DDISABLE_MATC)
diff --git a/science/elmerfem/files/patch-fem_src_modules_DCRComplexSolve.F90 b/science/elmerfem/files/patch-fem_src_modules_DCRComplexSolve.F90
new file mode 100644
index 000000000000..515d7d578f3e
--- /dev/null
+++ b/science/elmerfem/files/patch-fem_src_modules_DCRComplexSolve.F90
@@ -0,0 +1,58 @@
+--- fem/src/modules/DCRComplexSolve.F90.orig	2020-11-10 19:52:44 UTC
++++ fem/src/modules/DCRComplexSolve.F90
+@@ -433,6 +433,7 @@ CONTAINS
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -485,6 +486,7 @@ CONTAINS
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -1074,6 +1076,7 @@ contains
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -1374,6 +1377,7 @@ contains
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -1426,6 +1430,7 @@ contains
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -1727,6 +1732,7 @@ CONTAINS
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
+@@ -1779,6 +1785,7 @@ CONTAINS
+ !------------------------------------------------------------------------------
+       LOGICAL :: FirstTime = .TRUE., stat
+       REAL(KIND=dp), POINTER :: Hwrk(:,:,:)
++      INTEGER :: i
+ 
+       SAVE FirstTime, Hwrk
+ !------------------------------------------------------------------------------
diff --git a/science/elmerfem/pkg-descr b/science/elmerfem/pkg-descr
new file mode 100644
index 000000000000..cb5c79f9f2de
--- /dev/null
+++ b/science/elmerfem/pkg-descr
@@ -0,0 +1,8 @@
+Elmer runs multiphysical simulations, using the finite element method
+to solve predefined or user-specified partial differential equations.
+There are models for structural mechanics, fluid dynamics, acoustics,
+heat transfer, and electromagnetism in both two and three dimensions.
+New solvers can be added as separate modules linked into the program.
+
+While Elmer is powerful, it is not for the faint of heart. New users
+can expect to spend days or weeks honing their skills in one domain.
diff --git a/science/elmerfem/pkg-plist b/science/elmerfem/pkg-plist
new file mode 100644
index 000000000000..a0a7c03ac32b
--- /dev/null
+++ b/science/elmerfem/pkg-plist
@@ -0,0 +1,449 @@
+%%GUI%%bin/ElmerGUI
+bin/ElmerGrid
+bin/ElmerSolver
+bin/ElmerSolver_mpi
+bin/GebhardtFactors
+bin/Mesh2D
+bin/ViewFactors
+bin/elmerf90
+bin/elmerld
+bin/matc
+%%GUI%%lib/ElmerGUI/ngcore/libng.a
+lib/elmersolver/libamd.a
+lib/elmersolver/libamdf77.a
+lib/elmersolver/libelmersolver.so
+lib/elmersolver/libelmersolver.so.0
+lib/elmersolver/libfhuti.so
+lib/elmersolver/libfhuti.so.0
+lib/elmersolver/libmatc.so
+lib/elmersolver/libmatc.so.0
+lib/elmersolver/libmpi_stubs.so
+lib/elmersolver/libmpi_stubs.so.0
+lib/elmersolver/libumfpack.a
+%%GUI%%share/ElmerGUI/edf-extra/advection-diffusion.xml
+%%GUI%%share/ElmerGUI/edf-extra/divergencesolver.xml
+%%GUI%%share/ElmerGUI/edf-extra/elasticplate.xml
+%%GUI%%share/ElmerGUI/edf-extra/fluxsolver.xml
+%%GUI%%share/ElmerGUI/edf-extra/freesurface.xml
+%%GUI%%share/ElmerGUI/edf-extra/k-epsilon.xml
+%%GUI%%share/ElmerGUI/edf-extra/magnetodynamics.xml
+%%GUI%%share/ElmerGUI/edf-extra/magnetodynamics2d.xml
+%%GUI%%share/ElmerGUI/edf-extra/model-pde.xml
+%%GUI%%share/ElmerGUI/edf-extra/nonlinearelasticity.xml
+%%GUI%%share/ElmerGUI/edf-extra/poissonboltzmann.xml
+%%GUI%%share/ElmerGUI/edf-extra/reynolds.xml
+%%GUI%%share/ElmerGUI/edf-extra/richards.xml
+%%GUI%%share/ElmerGUI/edf-extra/saveline.xml
+%%GUI%%share/ElmerGUI/edf-extra/savescalars.xml
+%%GUI%%share/ElmerGUI/edf-extra/sst-k-omega.xml
+%%GUI%%share/ElmerGUI/edf-extra/statcurrent.xml
+%%GUI%%share/ElmerGUI/edf-extra/vectorhelmholtz.xml
+%%GUI%%share/ElmerGUI/edf-extra/vorticitysolver.xml
+%%GUI%%share/ElmerGUI/edf/edf.xml
+%%GUI%%share/ElmerGUI/edf/egini.xml
+%%GUI%%share/ElmerGUI/edf/egmaterials.xml
+%%GUI%%share/ElmerGUI/edf/electrostatics.xml
+%%GUI%%share/ElmerGUI/edf/heatequation.xml
+%%GUI%%share/ElmerGUI/edf/helmholtz.xml
+%%GUI%%share/ElmerGUI/edf/linearelasticity.xml
+%%GUI%%share/ElmerGUI/edf/mc.ini
+%%GUI%%share/ElmerGUI/edf/meshdeform.xml
+%%GUI%%share/ElmerGUI/edf/navier-stokes.xml
+%%GUI%%share/ElmerGUI/edf/resultoutput.xml
+%%GUI%%share/ElmerGUI/license_texts/GPL-2
+%%GUI%%share/ElmerGUI/license_texts/GPL_EXCEPTION
+%%GUI%%share/ElmerGUI/license_texts/LICENSES
+%%GUI%%share/ElmerGUI/samples/README
+%%GUI%%share/ElmerGUI/samples/brep/CylinderCutsCube.brep
+%%GUI%%share/ElmerGUI/samples/brep/cylinder.brep
+%%GUI%%share/ElmerGUI/samples/brep/spheres_in_cylinder.brep
+%%GUI%%share/ElmerGUI/samples/fdneut/README
+%%GUI%%share/ElmerGUI/samples/fdneut/fibers.FDNEUT
+%%GUI%%share/ElmerGUI/samples/gmsh/README
+%%GUI%%share/ElmerGUI/samples/gmsh/angle_in_halfcircle.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/angle_in_halfcircle.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/cross_cylinders_in_hexahedron.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/cross_cylinders_in_hexahedron.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/crucible.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/crucible.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/deform.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/deform.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/half_circle_in_square.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/half_circle_in_square.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/hole_in_hexahedron.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/hole_in_hexahedron.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/horseshoe.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/horseshoe.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar_ref.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar_ref.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar_sectors.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/mortar_sectors.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/sinus0.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t1.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t2.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t3.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t4.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t5.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/t6.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/three_profiles.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/three_profiles.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/tuning_fork.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/tuning_fork.msh
+%%GUI%%share/ElmerGUI/samples/gmsh/winkel.geo
+%%GUI%%share/ElmerGUI/samples/gmsh/winkel.msh
+%%GUI%%share/ElmerGUI/samples/grd/README
+%%GUI%%share/ElmerGUI/samples/grd/angle.grd
+%%GUI%%share/ElmerGUI/samples/grd/angle3d.grd
+%%GUI%%share/ElmerGUI/samples/grd/angles3d.grd
+%%GUI%%share/ElmerGUI/samples/grd/beam.grd
+%%GUI%%share/ElmerGUI/samples/grd/beam3d.grd
+%%GUI%%share/ElmerGUI/samples/grd/bench.grd
+%%GUI%%share/ElmerGUI/samples/grd/circle_in_box.grd
+%%GUI%%share/ElmerGUI/samples/grd/concentric_cubes.grd
+%%GUI%%share/ElmerGUI/samples/grd/cones.grd
+%%GUI%%share/ElmerGUI/samples/grd/container.grd
+%%GUI%%share/ElmerGUI/samples/grd/cooler.grd
+%%GUI%%share/ElmerGUI/samples/grd/crucible.grd
+%%GUI%%share/ElmerGUI/samples/grd/cube.grd
+%%GUI%%share/ElmerGUI/samples/grd/cube_quadratic.grd
+%%GUI%%share/ElmerGUI/samples/grd/curve.grd
+%%GUI%%share/ElmerGUI/samples/grd/curved_pipe.grd
+%%GUI%%share/ElmerGUI/samples/grd/cylinder.grd
+%%GUI%%share/ElmerGUI/samples/grd/cz.grd
+%%GUI%%share/ElmerGUI/samples/grd/disk.grd
+%%GUI%%share/ElmerGUI/samples/grd/emptybox.grd
+%%GUI%%share/ElmerGUI/samples/grd/fourbodies.grd
+%%GUI%%share/ElmerGUI/samples/grd/geoslab.grd
+%%GUI%%share/ElmerGUI/samples/grd/hexframe.grd
+%%GUI%%share/ElmerGUI/samples/grd/hexhole.grd
+%%GUI%%share/ElmerGUI/samples/grd/holes.grd
+%%GUI%%share/ElmerGUI/samples/grd/kiskot.grd
+%%GUI%%share/ElmerGUI/samples/grd/land_dyke.grd
+%%GUI%%share/ElmerGUI/samples/grd/maze3d.grd
+%%GUI%%share/ElmerGUI/samples/grd/rectangle.grd
+%%GUI%%share/ElmerGUI/samples/grd/rectangle_2pi.grd
+%%GUI%%share/ElmerGUI/samples/grd/roll.grd
+%%GUI%%share/ElmerGUI/samples/grd/square.grd
+%%GUI%%share/ElmerGUI/samples/grd/square_profile.grd
+%%GUI%%share/ElmerGUI/samples/grd/step.grd
+%%GUI%%share/ElmerGUI/samples/grd/steplong.grd
+%%GUI%%share/ElmerGUI/samples/grd/toroid.grd
+%%GUI%%share/ElmerGUI/samples/grd/toroid_in_toroid.grd
+%%GUI%%share/ElmerGUI/samples/grd/tube.grd
+%%GUI%%share/ElmerGUI/samples/grd/two_circles_in_channel.grd
+%%GUI%%share/ElmerGUI/samples/grd/u_turn.grd
+%%GUI%%share/ElmerGUI/samples/grd/waves.grd
+%%GUI%%share/ElmerGUI/samples/grd/wedges.grd
+%%GUI%%share/ElmerGUI/samples/grd/weight.grd
+%%GUI%%share/ElmerGUI/samples/grd/winkel.grd
+%%GUI%%share/ElmerGUI/samples/grd/wire.grd
+%%GUI%%share/ElmerGUI/samples/iges/cylinder_in_channel.iges
+%%GUI%%share/ElmerGUI/samples/iges/rectangle_in_channel.iges
+%%GUI%%share/ElmerGUI/samples/in2d/CircleInCircle.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/CircleInCircle_2.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/README.txt
+%%GUI%%share/ElmerGUI/samples/in2d/airfoil_naca_0012.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/airfoil_rae_2822.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/circle.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/circle_in_channel.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/circle_in_square.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/crescent.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/curve_in_channel.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/demo2d.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/glacier_on_bedrock_toy.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/glacier_toy.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/half_circle.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/heptagon.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/hexagon.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/land_dyke.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/newin2d.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/obstacle_in_channel.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/octagon.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/pentagon.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/rounded_square.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/square.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/step.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/triangle.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/triangle_in_channel.in2d
+%%GUI%%share/ElmerGUI/samples/in2d/v2in2d.in2d
+%%GUI%%share/ElmerGUI/samples/mphtxt/README
+%%GUI%%share/ElmerGUI/samples/mphtxt/fsi.mphtxt
+%%GUI%%share/ElmerGUI/samples/netgen/BallsInBall.geo
+%%GUI%%share/ElmerGUI/samples/netgen/CylinderJoiningWalls.geo
+%%GUI%%share/ElmerGUI/samples/netgen/HalfBallInBrick.geo
+%%GUI%%share/ElmerGUI/samples/netgen/TwoBallsInBall.geo
+%%GUI%%share/ElmerGUI/samples/off/README
+%%GUI%%share/ElmerGUI/samples/off/elk.off
+%%GUI%%share/ElmerGUI/samples/off/femur.off
+%%GUI%%share/ElmerGUI/samples/off/joint.off
+%%GUI%%share/ElmerGUI/samples/off/sample.off
+%%GUI%%share/ElmerGUI/samples/off/socket.off
+%%GUI%%share/ElmerGUI/samples/ply/icosahedron.ply
+%%GUI%%share/ElmerGUI/samples/ply/octahedron.ply
+%%GUI%%share/ElmerGUI/samples/ply/sample.ply
+%%GUI%%share/ElmerGUI/samples/ply/sphere.ply
+%%GUI%%share/ElmerGUI/samples/poly/L.poly
+%%GUI%%share/ElmerGUI/samples/poly/README
+%%GUI%%share/ElmerGUI/samples/poly/example.poly
+%%GUI%%share/ElmerGUI/samples/smesh/L.mtr
+%%GUI%%share/ElmerGUI/samples/smesh/L.smesh
+%%GUI%%share/ElmerGUI/samples/smesh/README
+%%GUI%%share/ElmerGUI/samples/smesh/ex1.node
+%%GUI%%share/ElmerGUI/samples/smesh/ex1.smesh
+%%GUI%%share/ElmerGUI/samples/smesh/sphere.smesh
+%%GUI%%share/ElmerGUI/samples/smesh/spine.smesh
+%%GUI%%share/ElmerGUI/samples/smesh/twobodies2.smesh
+%%GUI%%share/ElmerGUI/samples/step/README.txt
+%%GUI%%share/ElmerGUI/samples/step/axle.step
+%%GUI%%share/ElmerGUI/samples/step/bent_waveguide.step
+%%GUI%%share/ElmerGUI/samples/step/couplingdown.step
+%%GUI%%share/ElmerGUI/samples/step/fusee.stp
+%%GUI%%share/ElmerGUI/samples/step/pump_carter_sup.stp
+%%GUI%%share/ElmerGUI/samples/step/shaft.step
+%%GUI%%share/ElmerGUI/samples/step/stator.step
+%%GUI%%share/ElmerGUI/samples/stl/README
+%%GUI%%share/ElmerGUI/samples/stl/hinge.stl
+%%GUI%%share/ElmerGUI/samples/stl/part1.stl
+%%GUI%%share/ElmerGUI/samples/stl/sphere.stl
+%%GUI%%share/ElmerGUI/samples/stl/wrapped_tube_1_3.stl
+%%GUI%%share/ElmerGUI/samples/stl/wrapped_tube_3_3.stl
+%%GUI%%share/ElmerGUI/samples/stl/wrapped_tube_n5.stl
+%%GUI%%share/ElmerGUI/samples/unv/README
+%%GUI%%share/ElmerGUI/samples/unv/box.unv
+share/elmersolver/include/adaptive.mod
+share/elmersolver/include/ascbinoutpututils.mod
+share/elmersolver/include/bandmatrix.mod
+share/elmersolver/include/bandwidthoptimize.mod
+share/elmersolver/include/binio.mod
+share/elmersolver/include/blocksolve.mod
+share/elmersolver/include/blowers.mod
+share/elmersolver/include/circmatinitmod.mod
+share/elmersolver/include/circuitsmod.mod
+share/elmersolver/include/circuitutils.mod
+share/elmersolver/include/clusteringmethods.mod
+share/elmersolver/include/componentutils.mod
+share/elmersolver/include/coordinatesystems.mod
+share/elmersolver/include/crsmatrix.mod
+share/elmersolver/include/defutils.mod
+share/elmersolver/include/differentials.mod
+share/elmersolver/include/diffuseconvective.mod
+share/elmersolver/include/diffuseconvectivegeneral.mod
+share/elmersolver/include/directsolve.mod
+share/elmersolver/include/dxfile.mod
+share/elmersolver/include/eigensolve.mod
+share/elmersolver/include/elementdescription.mod
+share/elmersolver/include/elementutils.mod
+share/elmersolver/include/emwavesolverutils.mod
+share/elmersolver/include/exchangecorrelations.mod
+share/elmersolver/include/fetisolve.mod
+share/elmersolver/include/freesurface.mod
+share/elmersolver/include/gebhardtfactorglobals.mod
+share/elmersolver/include/generalutils.mod
+share/elmersolver/include/globmat.mod
+share/elmersolver/include/globmatc.mod
+share/elmersolver/include/h1basis.mod
+share/elmersolver/include/harmutils.mod
+share/elmersolver/include/hashtable.mod
+share/elmersolver/include/huti_aux.mod
+share/elmersolver/include/huti_bicgstab.mod
+share/elmersolver/include/huti_bicgstab_2.mod
+share/elmersolver/include/huti_cg.mod
+share/elmersolver/include/huti_cgs.mod
+share/elmersolver/include/huti_gmres.mod
+share/elmersolver/include/huti_interfaces.mod
+share/elmersolver/include/huti_qmr.mod
+share/elmersolver/include/huti_sfe.mod
+share/elmersolver/include/huti_tfqmr.mod
+share/elmersolver/include/incompressiblelocalforms.mod
+share/elmersolver/include/integration.mod
+share/elmersolver/include/interpolation.mod
+share/elmersolver/include/interpvartovar.mod
+share/elmersolver/include/iso_varying_string.mod
+share/elmersolver/include/iterativemethods.mod
+share/elmersolver/include/itersolve.mod
+share/elmersolver/include/kinds.mod
+share/elmersolver/include/linearalgebra.mod
+share/elmersolver/include/linearforms.mod
+share/elmersolver/include/listmatrix.mod
+share/elmersolver/include/listmatrixarray.mod
+share/elmersolver/include/lists.mod
+share/elmersolver/include/loadmod.mod
+share/elmersolver/include/ludecomposition.mod
+share/elmersolver/include/magnetodynamicsutils.mod
+share/elmersolver/include/mainutils.mod
+share/elmersolver/include/materialmodels.mod
+share/elmersolver/include/maxwell.mod
+share/elmersolver/include/maxwellaxis.mod
+share/elmersolver/include/maxwellgeneral.mod
+share/elmersolver/include/meshpartition.mod
+share/elmersolver/include/meshremeshing.mod
+share/elmersolver/include/meshutils.mod
+share/elmersolver/include/messages.mod
+share/elmersolver/include/mgdynmaterialutils.mod
+share/elmersolver/include/modeldescription.mod
+share/elmersolver/include/multigrid.mod
+share/elmersolver/include/navierstokes.mod
+share/elmersolver/include/navierstokescylindrical.mod
+share/elmersolver/include/navierstokesgeneral.mod
+share/elmersolver/include/paralleleigensolve.mod
+share/elmersolver/include/parallelutils.mod
+share/elmersolver/include/particledynamicsstuff.mod
+share/elmersolver/include/particleutils.mod
+share/elmersolver/include/pelementbase.mod
+share/elmersolver/include/pelementmaps.mod
+share/elmersolver/include/porousmaterials.mod
+share/elmersolver/include/radiation.mod
+share/elmersolver/include/radiationfactorglobals.mod
+share/elmersolver/include/saveutils.mod
+share/elmersolver/include/smoothers.mod
+share/elmersolver/include/solidmechanicsutils.mod
+share/elmersolver/include/solverutils.mod
+share/elmersolver/include/sparitercomm.mod
+share/elmersolver/include/spariterglobals.mod
+share/elmersolver/include/spariterprecond.mod
+share/elmersolver/include/sparitersolve.mod
+share/elmersolver/include/statelecboundaryutils.mod
+share/elmersolver/include/stressgeneral.mod
+share/elmersolver/include/stresslocal.mod
+share/elmersolver/include/timeintegrate.mod
+share/elmersolver/include/toroidcurrents.mod
+share/elmersolver/include/types.mod
+share/elmersolver/include/vectorhelmholtzutils.mod
+share/elmersolver/include/vecutils.mod
+share/elmersolver/include/viewfactorglobals.mod
+share/elmersolver/include/vtklegacyfile.mod
+share/elmersolver/include/vtuxmlfile.mod
+share/elmersolver/include/zirka.mod
+share/elmersolver/include/zirkautils.mod
+share/elmersolver/lib/Acoustics.so
+share/elmersolver/lib/AdvectionDiffusion.so
+share/elmersolver/lib/AdvectionReaction.so
+share/elmersolver/lib/AllocateSolver.so
+share/elmersolver/lib/ArteryOutlet.so
+share/elmersolver/lib/ArtificialCompressibility.so
+share/elmersolver/lib/BeamSolver3D.so
+share/elmersolver/lib/CircuitsAndDynamics.so
+share/elmersolver/lib/CoilSolver.so
+share/elmersolver/lib/CompressibleNS.so
+share/elmersolver/lib/CoordinateTransform.so
+share/elmersolver/lib/CoupledNSUpdate.so
+share/elmersolver/lib/CraigBamptonSolver.so
+share/elmersolver/lib/DCRComplexSolve.so
+share/elmersolver/lib/DFTSolver.so
+share/elmersolver/lib/DataToFieldSolver.so
+share/elmersolver/lib/DirectionSolver.so
+share/elmersolver/lib/DistanceSolve.so
+share/elmersolver/lib/DistributeSource.so
+share/elmersolver/lib/DivProjection.so
+share/elmersolver/lib/DivergenceSolver.so
+share/elmersolver/lib/EMWaveSolver.so
+share/elmersolver/lib/ElasticSolve.so
+share/elmersolver/lib/ElectricForce.so
+share/elmersolver/lib/Electrokinetics.so
+share/elmersolver/lib/ElementSizeSolver.so
+share/elmersolver/lib/ElementStats.so
+share/elmersolver/lib/EliminateDirichlet.so
+share/elmersolver/lib/EliminatePeriodic.so
+share/elmersolver/lib/Elmer2OpenFoamIO.so
+share/elmersolver/lib/EnergyRelease.so
+share/elmersolver/lib/FDiffusion.so
+share/elmersolver/lib/FDiffusion3D.so
+share/elmersolver/lib/FacetShellSolve.so
+share/elmersolver/lib/FilterTimeSeries.so
+share/elmersolver/lib/FindOptimum.so
+share/elmersolver/lib/FlowSolve.so
+share/elmersolver/lib/FluidicForce.so
+share/elmersolver/lib/FluxSolver.so
+share/elmersolver/lib/FourierLoss.so
+share/elmersolver/lib/FreeSurfaceReduced.so
+share/elmersolver/lib/FreeSurfaceSolver.so
+share/elmersolver/lib/GmshOutputReader.so
+share/elmersolver/lib/HarmonicSignals.so
+share/elmersolver/lib/HeatSolve.so
+share/elmersolver/lib/HeatSolveVec.so
+share/elmersolver/lib/HelmholtzBEM.so
+share/elmersolver/lib/HelmholtzProjection.so
+share/elmersolver/lib/HelmholtzSolve.so
+share/elmersolver/lib/IncompressibleNSVec.so
+share/elmersolver/lib/Isosurface.so
+share/elmersolver/lib/KESolver.so
+share/elmersolver/lib/Komega.so
+share/elmersolver/lib/LevelSet.so
+share/elmersolver/lib/MagneticSolve.so
+share/elmersolver/lib/MagnetoDynamics.so
+share/elmersolver/lib/MagnetoDynamics2D.so
+share/elmersolver/lib/MarchingODESolver.so
+share/elmersolver/lib/Mesh2MeshSolver.so
+share/elmersolver/lib/MeshChecksum.so
+share/elmersolver/lib/MeshSolve.so
+share/elmersolver/lib/ModelMixedPoisson.so
+share/elmersolver/lib/ModelPDE.so
+share/elmersolver/lib/MovingElstatSolver.so
+share/elmersolver/lib/NonphysicalMeshSolve.so
+share/elmersolver/lib/NormalSolver.so
+share/elmersolver/lib/OdeSolver.so
+share/elmersolver/lib/OpenFoam2ElmerIO.so
+share/elmersolver/lib/ParStokes.so
+share/elmersolver/lib/ParticleAdvector.so
+share/elmersolver/lib/ParticleDynamics.so
+share/elmersolver/lib/PartitionMesh.so
+share/elmersolver/lib/PhaseChangeSolve.so
+share/elmersolver/lib/Poisson.so
+share/elmersolver/lib/PoissonBEM.so
+share/elmersolver/lib/PoissonBoltzmannSolve.so
+share/elmersolver/lib/PoissonDG.so
+share/elmersolver/lib/PressurePrecond.so
+share/elmersolver/lib/PressureUpdate.so
+share/elmersolver/lib/ProjectToPlane.so
+share/elmersolver/lib/RateOfChange.so
+share/elmersolver/lib/ReloadData.so
+share/elmersolver/lib/ReloadInput.so
+share/elmersolver/lib/ResultOutputSolve.so
+share/elmersolver/lib/ReynoldsSolver.so
+share/elmersolver/lib/RichardsSolver.so
+share/elmersolver/lib/RigidBodyReduction.so
+share/elmersolver/lib/RigidMeshMapper.so
+share/elmersolver/lib/SOLVER.KEYWORDS
+share/elmersolver/lib/SSTKomega.so
+share/elmersolver/lib/SaveData.so
+share/elmersolver/lib/SaveGridData.so
+share/elmersolver/lib/SaveMesh.so
+share/elmersolver/lib/ScalarPotentialSolver.so
+share/elmersolver/lib/ScannedFieldSolver.so
+share/elmersolver/lib/ShallowWaterNS.so
+share/elmersolver/lib/ShearrateSolver.so
+share/elmersolver/lib/ShellSolver.so
+share/elmersolver/lib/Smitc.so
+share/elmersolver/lib/Spalart-Allmaras.so
+share/elmersolver/lib/SpringAssembly.so
+share/elmersolver/lib/StatCurrentSolve.so
+share/elmersolver/lib/StatCurrentSolveVec.so
+share/elmersolver/lib/StatElecBoundary.so
+share/elmersolver/lib/StatElecSolve.so
+share/elmersolver/lib/StatMagSolve.so
+share/elmersolver/lib/SteadyPhaseChange.so
+share/elmersolver/lib/Stokes.so
*** 22 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?698210aa.4074d.7be5b9d0>