Giter Club home page Giter Club logo

eof-library's Introduction

Libraries for coupling Elmer FEM and OpenFOAM + test cases. For detailed information how this software works check our article.

If you use EOF-Library, please cite: Juris Vencels, Peter Råback, Vadims Geža, EOF-Library: Open-source Elmer FEM and OpenFOAM coupler for electromagnetics and fluid dynamics, SoftwareX, Volume 9, 2019, Pages 68-72, ISSN 2352-7110, https://doi.org/10.1016/j.softx.2019.01.007.

About

This software is maintained by Juris Vencels from EOF Consulting LLC in cooperation with CSC - IT Center for Science Ltd. (Finland).

  • Software improvements and suggestions are very welcome.
  • If you find this software useful then drop me a message.
  • The best way to support development of this library is buying consulting services.
  • GPL v3 license allows commercial use of this software.

Introduction

EOF-Library couples internal fields between Elmer FEM and OpenFOAM. Applications are

  • Magnetohydrodynamics (MHD)
  • Microwave ehating
  • Plasma physics
  • Convective cooling of electrical devices and machines

Requirements

  • Both Elmer and OpenFOAM must use the same OpenMPI version!

How to

There are two options to install and use this software:

  1. Docker install (best for beginners and running on clouds) - Linux, Windows, MacOS
  2. Complete install (best for developers and advanced users) - Linux

Performance-wise these two options are comparable. Docker installation comes with OpenFOAM and Elmer installed, and environment is set. This is preferred option for most users and for running simulations on multiple computers or cloud.

On the other hand complete installation gives users more flexibility, it is preferred option for developers who want to work on their own solvers or have full control over software and its source code.

1. Docker

First, you will need to install docker on your OS:

  1. Ubuntu/Linux (preferred) - https://docs.docker.com/install/linux/docker-ce/ubuntu/
  2. Windows - https://docs.docker.com/docker-for-windows/install/ https://docs.docker.com/docker-for-windows/install/
  3. MacOS - https://docs.docker.com/docker-for-mac/install/

Then, follow commands below to install the software & run demo simulation.

  • Create an empty folder
mkdir runs
cd runs
  • Run Docker image and bind mount current host system folder ${PWD} to newly created EOF-Library/runs folder
docker run --rm -it -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) -v ${PWD}:/home/openfoam/EOF-Library/runs eoflibrary/eof_elmer84_of6:latest
  • Update EOF-Library and compile it
eofUpdate
  • Compile OpenFOAM solver
cd EOF-Library
wmake solvers/mhdInterFoam6
  • Copy test simulation
cp -r tests/levitation2D runs
  • Prepare case
cd runs/levitation2D
setFields
decomposePar
ElmerGrid 2 2 meshElmer -metis 2
  • Run simulation on 2 physical cores:
mpirun -n 2 mhdInterFoam -parallel : -n 2 ElmerSolver_mpi case.sif
  • Simulation results will appear in host system runs folder

2. Manual installation

  • Get git, cmake, gfortran, blas and lapack.
sudo apt-get install git cmake gfortran libblas-dev liblapack-dev
cmake -DWITH_MPI=TRUE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../mpi-install ../elmerfem
make -j install
  • Download EOF-Library:
git clone https://github.com/jvencels/EOF-Library
  • Update environment
. EOF-Library/etc/bashrc
  • Check the MPI implementation and version (it is important that Elmer and OpenFOAM was compiled with the same version!)
which mpirun
mpirun --version
  • Compile EOF-Library
eofCompile
  • Colmpile OpenFOAM solver
cd EOF-Library/solvers/mhdInterFoam6
wmake
  • Copy test
cd ../..
mkdir runs
cd runs
cp -r ../tests/levitation2D .
  • Prepare test
cd levitation2D
setFields
decomposePar
ElmerGrid 2 2 meshElmer -metis 2
  • Run OpenFOAM on 2 processes and Elmer on 2 processes
mpirun -np 2 mhdInterFoam -parallel : -np 2 ElmerSolver_mpi

eof-library's People

Contributors

jvencels avatar anilkunwar avatar raback avatar didzis-berenis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.