/ans-ifem

IFEM source code

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

IFEM source code

Build Status

Copyright (C) 2014-2018 by Luca Heltai (1), Saswati Roy (2), and Francesco Costanzo (3)

(1) Scuola Internazionale Superiore di Studi Avanzati E-mail: luca.heltai@sissa.it (2) Center for Neural Engineering, The Pennsylvania State University E-Mail: sur164@psu.edu (3) Center for Neural Engineering, The Pennsylvania State University E-Mail: costanzo@engr.psu.edu

This code was developed starting from the example step-33 of the deal.II FEM library, and it is the companion code to the articles

  • S. Roy, L. Heltai, and F. Costanzo. Benchmarking the immersed finite element method for fluid-structure interaction problems. Computers and Mathematics with Applications, 69:1167–1188, 2015.

  • L. Heltai, S. Roy, and F. Costanzo. A fully coupled immersed finite element method for fluid structure interaction via the deal.ii library. Archive of Numerical Software, 2(1):1–27, 2014.

  • L. Heltai and F. Costanzo. Variational implementation of immersed finite element methods. Computer Methods in Applied Mechanics and Engineering, 229–232(0):110 – 127, 2012

This file is subject to LGPL version 2.1 or later and may not be distributed without copyright and license information. Please refer to section 5 and 6 of this file for further information on this license.

  1. Deal.II Requirements: ========================

The FEIBM source code requires the deal.II 8.4 library or greater. Tags corresponding to each release of the deal.II library are available. You should use the tag corresponding to the installed deal.II library.

The master branch of the github repository should compile with the latest deal.II library. If not, submit an issue.

In what follows, we assume that the user has installed the deal.II library in the directory

DEAL_II_DIR

and that the user has defined the enviroment variable DEAL_II_DIR to point to the correct location. If this enviroment variable is not set, the user should specify it by hand when running cmake in order for cmake to properly locate the deal.II library. For the program to work properly, deal.II should be configured with support for UMFPACK.

  1. Installation procedure: ==========================

The provided archive should be cloned in a dedicated subdirectory using git

git clone https://github.com/luca-heltai/ans-ifem

The program can then be compiled by running

mkdir build
cd build
cmake -DDEAL_II_DIR=/path/to/deal.II ..
make
  1. Running instructions: ========================

Once the program has been compiled, it can be run by typing

./ifem_2d.g

or

./ifem parameters.prm

in the directory build. The program uses parameter files to set its runtime variables. The file

immersed_fem.prm

is an example of such files, and it is the default one used if none is specified at run time. If the specified file does not exists, the program will attempt to create one with default values for you. The directory

prms/

contains all parameter files used to produce the results presented in the above papers.

  1. Extensive documentation: ===========================

If the user has the program Doxygen installed, a complete and browsable documentation of the source code itself can be generated by setting the cmake varibale BUILD_DOCUMENTATION=ON

cmake -DBUILD_DOCUMENTATION=ON -DDEAL_II_DIR=/path/to/deal.II .

and then running

make doc

In this case, the documentation will be accessible in the subdirectory

./doc/html

If the user wants the deal.II documentation to be inlined, then the file http://www.dealii.org/developer/doxygen/deal.tag should be downloaded to the program directory before making the documentation, for example, usgin wget

wget http://www.dealii.org/developer/doxygen/deal.tag
make doc
  1. Licence Informations =======================

The feibm library has been placed under an Open Source license, in the sense advocated by the Open Source Initiative.

However, this program is not in the public domain, it is property of and copyrighted by Luca Heltai, Francesco Costanzo and Saswati Roy, and there are restrictions on its use: The legally binding license is the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

See the file LICENCE in this directory for more information.