Git Product home page Git Product logo

fdfault's Introduction

fdfault is a finite difference code for solving elastodynamic rupture problems

Features:

- High order finite difference method
- Complex geometries handled through coordinate transforms on structured mesh
- Boundary conditions are enforced weakly, producing a provably stable method
- Supports elastic and elastic-plastic material response
- Several friction laws, permits heterogeneous parameters in several ways
- Parallelized using MPI
- Included Python module to simplify setting up problems and generating input files
- Analysis tools for Python and MATLAB

Requirements:

- C++ compiler with an MPI library for main code
- Python (supports both Python 2 and 3) with numpy required for setup and analysis
(Python is optional, but greatly simplifies problem generation and thus is highly
recommended)

#######################################################################################

Installation Instructions:

If installing from a downloaded zip archive, enter

> unzip fdfault-1.0.zip

Depending on which version you downloaded, the filename for the zipped archive might
be different. Or clone the git repository using

> git clone https://github.com/egdaub/fdfault.git

For most users, building the source code should simply require

> cd fdfault/src
> make

assuming you have Make and an appropriate C++ compiler with an MPI Library. You may 
need to change some of the compiler flags -- I have mostly tested the code using the 
GNU Compilers and OpenMPI on both Linux and Mac OS X. This will create the fdfault executable in the main fdfault directory.

You will also need to configure the python module. There are several ways to do this:

1. Install the Python module system-wide. To make the Python tools available system-wide,
change to the python directory and run setup.py (you must have setuptools installed):

> cd fdfault/python
> python setup.py install

You may also use Python 3 without any modifications. Depending on your setup, you might
need administrative privileges to do the installation step. If you obtained the code by 
cloning the Git repository, installation in this manner will not update automatically
if any of the source code files are updated. If you want to keep up to date without 
having to reinstall, install a development version:

> cd fdfault/python
> python setup.py develop

This will simply place a link to the fdfault python directory in the system Python 
libraries, so any updates will automatically be available.

2. If you would like the Python module available in any directory without installing for
other users, you can simply modify your PYTHONPATH environment variable to include the
full path to fdfault/python. This will only effect the current user.

3. Some users prefer to only have the Python tools available in certain directories.
The tools for setting up problems are most often used in the problems directory, and the
analysis tools are most often used in the data directory.

To make these tools available in these directories only, make a symbolic link to the 
python/fdfault directory in the problems directory:

> cd fdfault/problems
> ln -s ../python/fdfault/ fdfault

This will allow you to simply type "import fdfault" in python from within the problems 
directory. Similarly, to make the analysis features available in the data directory:

> cd fdfault/data
> ln -s ../python/fdfault/analysis fdfault

This allows you to type "import fdfault" from within the data directory and have the 
analysis tools at your disposal.

Finally you will need to build the User's Guide. The user's guide requires Sphinx and
MathJax (or an internet connection to access MathJax online) for the HTML version and
a LaTeX distribution for the PDF version).

> cd fdfault/docs/
> make html && make latexpdf

This should build the notes in the fdfault/docs/_build/html or fdfault/docs/_build/latex
directories. If you wish to build only the html or pdf version, use the appropriate 
command. If you do not have Sphinx or LaTeX on your machine, both versions of the 
documentation are available on the web:

http://www.ceri.memphis.edu/people/egdaub/fdfault/_build/html/index.html (html)
http://www.ceri.memphis.edu/people/egdaub/fdfault/_build/latex/fdfault_docs.pdf (pdf)

fdfault's People

Contributors

egdaub avatar

Watchers

 avatar  avatar

Forkers

wangyf

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.