Skip to content

Commit

Permalink
Merge branch 'devel' into next_release
Browse files Browse the repository at this point in the history
  • Loading branch information
raback committed Nov 9, 2020
2 parents 05ddee2 + fa46097 commit 10ec3f5
Show file tree
Hide file tree
Showing 61 changed files with 2,033 additions and 14,311 deletions.
19 changes: 12 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ IF(NOT CMAKE_BUILD_TYPE)
ENDIF()

PROJECT(Elmer Fortran C CXX)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)

# CMAKE_VERSION seems to require this in minimum
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2)

IF(APPLE)
SET(CMAKE_MACOSX_RPATH 1)
Expand Down Expand Up @@ -207,14 +209,8 @@ IF(WITH_OpenMP)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
# endif()

if("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy")
endif()

FIND_PACKAGE(OpenMP REQUIRED)



# Test compiler support for OpenMP 4.0 features used
INCLUDE(testOpenMP40)
IF(CMAKE_Fortran_COMPILER_SUPPORTS_OPENMP40)
Expand All @@ -229,6 +225,15 @@ endif()
ENDIF()
ENDIF()

# Get rid of the annoying rank mismatch warning
IF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.9)
SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch")
# SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy")
ENDIF()
ENDIF()


IF(WITH_MPI)
# Advanced properties
MARK_AS_ADVANCED(
Expand Down
18 changes: 9 additions & 9 deletions ElmerGUI/Application/edf-extra/vectorhelmholtz.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,24 +36,24 @@
<Material>
<Parameter Widget="Label" > <Name> Material properties </Name> </Parameter>
<Parameter Widget="Edit" >
<Name> Inverse Relative Permeability </Name>
<Name> Relative Permittivity </Name>
<Type> String </Type>
<Whatis> Give the inverse relative permeability compared to vacuum (real part). </Whatis>
<Whatis> Give the relative permittivity of medium (real part). </Whatis>
</Parameter>
<Parameter Widget="Edit" >
<Name> Inverse Relative Permeability im </Name>
<Name> Relative Permittivity im</Name>
<Type> String </Type>
<Whatis> Give the inverse relative permeability compared to vacuum (imag part). </Whatis>
<Whatis> Give the relative permittivity of medium (imag part). </Whatis>
</Parameter>
<Parameter Widget="Edit" >
<Name> Relative Permittivity </Name>
<Name> Relative Reluctivity</Name>
<Type> String </Type>
<Whatis> Give the relative permittivity of medium (real part). </Whatis>
<Whatis> Give the relative reluctivity of the medium (real part). </Whatis>
</Parameter>
<Parameter Widget="Edit" >
<Name> Relative Permittivity im</Name>
<Name> Relative Reluctivity im</Name>
<Type> String </Type>
<Whatis> Give the relative permittivity of medium (imag part). </Whatis>
<Whatis> Give the relative reluctivity of the medium (imag part). </Whatis>
</Parameter>
</Material>

Expand Down Expand Up @@ -308,7 +308,7 @@
<Whatis> Calculate Poynting Vector </Whatis>
</Parameter>
<Parameter Widget="CheckBox">
<Name> Calculate Div Poynting Vector </Name>
<Name> Calculate Div of Poynting Vector </Name>
<Type> Logical </Type>
<Whatis> Calculate Divergence of Poyntings vector</Whatis>
</Parameter>
Expand Down
6 changes: 6 additions & 0 deletions ElmerGUI/Application/vtkpost/matc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@
#include <vtkPointData.h>
#include <vtkCellDataToPointData.h>

#ifndef FALSE
#define FALSE 0
#endif



using namespace std;

Matc::Matc(QWidget *parent)
Expand Down
24 changes: 13 additions & 11 deletions ElmerGUIlogger/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
MESSAGE(STATUS "------------------------------------------------")

IF(ElmerGUIloggerSTANDALONE)
PROJECT(ElmerGUIlogger CXX C)
IF(WIN32)
INCLUDE(cmake/windows_bundle.cmake)
ENDIF(WIN32)
ENDIF(ElmerGUIloggerSTANDALONE)

IF(WITH_QT5)
MESSAGE(STATUS "------------------------------------------------")
SET(QT5_PKG_LIST Qt5OpenGL Qt5Xml Qt5Script Qt5Gui Qt5Core Qt5PrintSupport)
SET(QT5_PKG_LIST Qt5OpenGL Qt5Xml Qt5Script Qt5Gui Qt5Core Qt5Widgets Qt5PrintSupport)
FOREACH(_pkg ${QT5_PKG_LIST})
FIND_PACKAGE(${_pkg} PATHS ${QT5_PATH})
ENDFOREACH()
ADD_DEFINITIONS(-DWITH_QT5)
MESSAGE(STATUS " [ElmerGUIlogger] Qt5: " ${Qt5_FOUND})
MESSAGE(STATUS " [ElmerGUIlogger] Qt5 Libraries: ${Qt5OpenGL_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5Script_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Core_LIBRARIES}")
MESSAGE(STATUS " [ElmerGUIlogger] Qt5 Libraries: ${Qt5OpenGL_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5Script_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5PrintSupport_LIBRARIES}")
MESSAGE(STATUS "------------------------------------------------")
ELSE()
MESSAGE(STATUS "------------------------------------------------")
Expand All @@ -21,15 +27,6 @@ ELSE()
MESSAGE(STATUS "------------------------------------------------")
ENDIF()


IF(ElmerGUIloggerSTANDALONE)
PROJECT(ElmerGUIlogger CXX C)
IF(WIN32)
INCLUDE(cmake/windows_bundle.cmake)
ENDIF(WIN32)
ENDIF(ElmerGUIloggerSTANDALONE)


SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTORCC ON)
Expand Down Expand Up @@ -63,6 +60,11 @@ ENDIF()


ADD_EXECUTABLE(ElmerGUIlogger WIN32 ${SOURCES} ${UI_RESOURCES})

IF(WITH_QT5)
QT5_USE_MODULES(ElmerGUIlogger OpenGL Xml Script Gui Core Widgets PrintSupport)
ENDIF()

TARGET_LINK_LIBRARIES(ElmerGUIlogger ${QT_LIBRARIES})

INSTALL(TARGETS ElmerGUIlogger RUNTIME DESTINATION "bin" COMPONENT "elmergui")
9 changes: 7 additions & 2 deletions ElmerGUItester/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

IF(WITH_QT5)
MESSAGE(STATUS "------------------------------------------------")
SET(QT5_PKG_LIST Qt5Gui Qt5Core)
SET(QT5_PKG_LIST Qt5Gui Qt5Core Qt5Widgets)
FOREACH(_pkg ${QT5_PKG_LIST})
FIND_PACKAGE(${_pkg} PATHS ${QT5_PATH})
ENDFOREACH()
Expand All @@ -16,7 +16,7 @@ ENDIF()
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTORCC ON)
SET(CMAKE_AUTOUIC ON)
SET(CMAKE_AUTOUIC OFF)

SET(TARGETS ElmerGUItester)

Expand Down Expand Up @@ -48,5 +48,10 @@ ENDIF()

INCLUDE_DIRECTORIES(${APPLICATION_INCLUDE_DIRS})
ADD_EXECUTABLE(ElmerGUItester WIN32 ${SOURCES} ${UI_HEADERS} ${UI_RESOURCES})

IF(WITH_QT5)
QT5_USE_MODULES(ElmerGUItester Gui Core Widgets)
ENDIF()

TARGET_LINK_LIBRARIES(ElmerGUItester ${QT_LIBRARIES})
INSTALL(TARGETS ElmerGUItester RUNTIME DESTINATION "bin" COMPONENT "elmergui")
51 changes: 27 additions & 24 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,31 @@ Elmer is a finite element software for numerical solution of partial differentia
Elmer consists of several parts. The most important ones are ElmerSolver the finite element solver, ElmerGUI the graphical user interface, and ElmerGrid the mesh creation and manipulation tool. Also a visualization tool, ElmerPost, is included in the package but it is no longer developed.


=== Download Binaries:
=== Download binaries

You may download binaries and virtual machines from http://www.elmerfem.org/blog/binaries/[here]
You may download binaries and virtual machines from http://www.elmerfem.org/blog/binaries/[here].

=== Docker:
=== Docker

* nwrichmond/elmerice: https://hub.docker.com/r/nwrichmond/elmerice/[Docker Hub], More info https://raw.githubusercontent.com/ElmerCSC/elmerfem/release/ReleaseNotes/release_8.4.txt[here]
* nwrichmond/elmerice: https://hub.docker.com/r/nwrichmond/elmerice/[Docker Hub], https://raw.githubusercontent.com/ElmerCSC/elmerfem/release/ReleaseNotes/release_8.4.txt[more info]
* unifem/Elmer-desktop: https://github.com/unifem/Elmer-desktop[GitHub]
* CoSci-LLC/docker-elmerice https://hub.docker.com/repository/docker/coscillc/elmerice[Docker Hub], https://github.com/CoSci-LLC/docker-elmerice[GitHub]
* CoSci-LLC/docker-elmerice: https://hub.docker.com/repository/docker/coscillc/elmerice[Docker Hub], https://github.com/CoSci-LLC/docker-elmerice[GitHub]

=== Documentation

You may find the PDFs for the documentation http://www.elmerfem.org/blog/documentation/[here]
You may find the PDFs for the documentation http://www.elmerfem.org/blog/documentation/[here].

=== Compiling:
=== Compiling


==== macOS:
==== macOS

* download this repository either az a zip file via GitHub or using `git clone https://github.com/ElmerCSC/elmerfem.git`
* go to the downloaded directory `mkdir build` and `cd build`
* Install HomeBrew
* Install GNU GCC `brew install gcc`
* Download this repository either az a zip file via GitHub or using `git clone https://github.com/ElmerCSC/elmerfem.git`
* Go to the downloaded directory `mkdir build` and `cd build`
* Install Homebrew
* Install GCC `brew install gcc`
* Install CMake `brew install cmake`
* Without:
* Without MPI:
** `cmake .. -D WITH_OpenMP:BOOLEAN=TRUE`
* With MPI:
** Install OpenMPI `brew install open-mpi`
Expand All @@ -69,8 +69,9 @@ You may find the PDFs for the documentation http://www.elmerfem.org/blog/documen

==== Ubuntu

* install the dependencies `sudo apt install git cmake build-essential fortran libopenmpi-dev libblas-dev liblapack-dev`
* Without:
* Download the source code and create `build` directory as above
* Install the dependencies `sudo apt install git cmake build-essential gfortran libopenmpi-dev libblas-dev liblapack-dev`
* Without MPI:
** `cmake .. -DWITH_OpenMP:BOOLEAN=TRUE`
* With MPI:
** `cmake .. -DWITH_OpenMP:BOOLEAN=TRUE -DWITH_MPI:BOOLEAN=TRUE`
Expand All @@ -79,25 +80,28 @@ You may find the PDFs for the documentation http://www.elmerfem.org/blog/documen
** `cmake .. -DWITH_OpenMP:BOOLEAN=TRUE -DWITH_MPI:BOOLEAN=TRUE -DWITH_ELMERGUI:BOOLEAN=TRUE`
* `make`
* `sudo make install`
* the executable are in `/usr/local/bin` folder, you may add this to your PATH if you will.
* The executables are in `/usr/local/bin` folder, you may add this to your PATH if you will

=== Licencing: image:https://img.shields.io/badge/License-GPLv2-blue.svg["License: GPL v2", link=https://www.gnu.org/licenses/gpl-2.0] image:https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg["License: LGPL v2.1", link=https://www.gnu.org/licenses/lgpl-2.1]
=== Licensing

image:https://img.shields.io/badge/License-GPLv2-blue.svg["License: GPL v2", link=https://www.gnu.org/licenses/gpl-2.0] image:https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg["License: LGPL v2.1", link=https://www.gnu.org/licenses/lgpl-2.1]

[.text-justify]
Elmer software is licensed under GPL except for the ElmerSolver library which is licensed under LGPL license. Elmer is mainly developed at CSC - IT Center for Science, Finland. However, there have been numerous contributions from other organizations and developers as well, and the project is open for new contributions. More information about Elmer's licensing http://www.elmerfem.org/blog/license/[here].
Elmer software is licensed under GPL except for the ElmerSolver library which is licensed under LGPL license. Elmer is mainly developed at CSC - IT Center for Science, Finland. However, there have been numerous contributions from other organizations and developers as well,
and the project is open for new contributions. More information about Elmer's licensing link:license_texts/ElmerLicensePolicy.txt[here].


=== Package managers:
=== Package managers

[.text-center]
image::https://repology.org/badge/vertical-allrepos/elmerfem.svg["Packaging status", link=https://repology.org/project/elmerfem/versions]

==== Chocolatey:
==== Chocolatey

[.text-center]
image:https://img.shields.io/chocolatey/dt/elmer-mpi["Chocolatey", link=https://chocolatey.org/packages/elmer-mpi]

=== Social:
=== Social

[.text-justify]
Here on https://discordapp.com/invite/NeZEBZn[this Discord channel] you may ask for help or dicuss different Elmer related matters:
Expand All @@ -116,14 +120,13 @@ Ask your questions on Reddit:
image:https://img.shields.io/reddit/subreddit-subscribers/ElmerFEM["Subreddit subscribers", link=https://www.reddit.com/r/ElmerFEM/]


=== Computational Glaciology "Elmer/Ice":
=== Computational Glaciology "Elmer/Ice"

* http://elmerice.elmerfem.org[Elmer/Ice community web site]
* https://github.com/ElmerCSC/elmerfem/tree/elmerice/elmerice/[Elmer/Ice README]


=== Other links:

=== Other links

* http://www.elmerfem.org/[Elmer Blog]
* https://www.csc.fi/web/elmer[official CSC homepage]
Expand Down
2 changes: 2 additions & 0 deletions docker/elmerice.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ WORKDIR /home
RUN printf "Acquire::http::Pipeline-Depth 0;\nAcquire::http::No-Cache true;\nAcquire::BrokenProxy true;" \
>> /etc/apt/apt.conf.d/99fixbadproxy

ENV DEBIAN_FRONTEND="noninteractive"

# Add the necessary packages to compile Elmer/Ice
RUN apt update -o Acquire::CompressionTypes::Order::=gz && apt upgrade -y && apt install -y \
build-essential \
Expand Down
Loading

0 comments on commit 10ec3f5

Please sign in to comment.