Coder Social home page Coder Social logo

solrun / feeca Goto Github PK

View Code? Open in Web Editor NEW

This project forked from airini/feeca

0.0 1.0 0.0 2.08 MB

FEECa: Finite Element Exterior Calculus in Haskell

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.40% Haskell 86.04% Shell 0.45% Python 5.16% TeX 4.60% HTML 1.06% CSS 2.28%

feeca's Introduction

FEECa: Finite Element Exterior Calculus in Haskell Build Status

FEECa (['fi:ka]) is a library implementing the mathematical framework that the theory of finite element exterior calculus (FEEC), developed by Arnold, Falk and Winther, provides for the discretization of partial differential equations (PDEs) that allows for a universal treatment of a large number of physical problems.

FEECa implements the abstract, mathematical concepts of FEEC and provides a full-fledged basis form generated and framework for computations on differential forms. It handles polynomial differential forms in arbitrary dimensions and implements monomial as well as Bernstein bases for polynomials. The package provides functionality to compute bases of the P_r L^k and P-_r L^k spaces of finite element spaces based on the geometric decomposition proposed by Arnold, Falk and Winther.

Douglas N. Arnold, Richard S. Falk, and Ragnar Winther: Finite element exterior calculus, homological techniques, and applications. J. Acta Numerica. 2006

Douglas N. Arnold, Richard S. Falk, and Ragnar Winther: Geometric decompositions and local bases for spaces of finite element differential forms. J. Computer Methods in Applied Mechanics and Engineering. 2009.

The FEECa online documentation is under construction.

Installation

To build and use FEECa, the Haskell compiler GHC and Cabal should be installed in your system. Or you could use Stack, which will install the Haskell tools (including GHC and Cabal) for you.

Short version (for Ubuntu):

sudo apt-get install libblas-dev liblapack-dev
sudo apt-get install stack
stack upgrade
git clone https://github.com/Airini/FEECa.git
cd FEECa
stack build

Details:

The package and dependencies are tested for GHC 7.6 upwards and will not build with older versions of the compiler. Cabal 1.16 and upwards will work, though the cabal libraries some of FEECa's need to see actually need to be version 1.18 or above.

If you are new to Haskell or the building environment described, we recommend you install the Haskell Platform which provides GHC, Cabal and stack.

If you happen to be working with GHC 7.6 and Cabal 1.16, and do not want to update these, you might need to:

cabal install Cabal-1.18.0

LAPACK and BLAS should also be installed. If not so, and you are on a linux machine, use apt-get (the snippet below will install developer versions of both):

sudo apt-get -qq update
sudo apt-get install -y libblas-dev liblapack-dev

For other systems, we recommend you search for the best way of getting these libraries. On OS X, you may install them via Homebrew or Macports.

When these dependencies are ready, FEECa may be built and installed as a Cabal package using cabal (or stack):

cabal install --only-dependencies
cabal configure
cabal install

The first instruction will install all dependencies (alone); the parameter --reorder-goals might become necessary for some versions of Cabal. If you do not install them first, cabal will display the missing dependencies and the instructions to install them.

If you wish to run the test-suite:

cabal configure --enable-tests
cabal build
cabal test

Or:

make test-feec

The project

The project (Functional FEEC, initially) has been funded by the Information & Communication Technology Area of Advance (ICT AoA) of Chalmers University and is a collaboration between the Computational Mathematics (Department of Mathematics) and Functional Programming (Department of Computer Science and Engineering) groups at Chalmers University of Technology, Gothenburg, Sweden.

The resulting implemented package has been developed by (you can find contact information in the package description file: feeca.cabal):

  • Simon Pfreundschuh: MSc student in Physics
  • Irene Lobo Valbuena: MSc/doctoral student in Computer Science

as joint work with:

Presentation

2016-05-18: The project results are presented by Simon Pfreundscuh at the FENICS 2016 workshop. Programme.

Documentation

The FEECa code is written using literate Haskell to combine source code and documentation. The executable doc uses the Hakyll framework to compile the code into a static web page and can be viewed in your browser after executing:

stack build feeca
stack exec doc rebuild
stack exec doc preview

or alternatively:

cabal run doc rebuild
cabal run doc server

feeca's People

Contributors

airini avatar anderslogg avatar olivierverdier avatar patrikja avatar

Watchers

 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.