Skip to content

Commit

Permalink
Init
Browse files Browse the repository at this point in the history
  • Loading branch information
sbryngelson committed Jul 23, 2019
1 parent 0bd266a commit 2daf537
Show file tree
Hide file tree
Showing 93 changed files with 62,213 additions and 0 deletions.
34 changes: 34 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
doc/Doxygen/*/html
doc/Doxygen/*logo*
doc/Doxygen/*icon*
src/*/*.mod
src/*/*.o
src/pre_process_code/pre_process
src/simulation_code/simulation
src/post_process_code/post_process
src/master_scripts/*.pyc
src/master_scripts/__*
make_doc.sh
cases/
.DS_Store
tests/*/D/*
tests/*/p*
tests/*/D_*
tests/*/*.inf
tests/*/*.inp
tests/*/*.dat
tests/*/silo*
tests/*/restart*
tests/*/*.out
tests/*/binary
example_cases/*/D/*
example_cases/*/p*
example_cases/*/D_*
example_cases/*/*.inf
example_cases/*/*.inp
example_cases/*/*.dat
example_cases/*/silo*
example_cases/*/restart*
example_cases/*/*.out
example_cases/*/binary
lib/fftw-3.3.8
46 changes: 46 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
The MFC is distributed under the GNU GPLv3 license (or later).

Contributors: S. H. Bryngelson, K. Schmidmayer, V. Coralic, J. Meng, K. Maeda, T. Colonius


Spencer H. Bryngelson
--------------------------------------------
Senior Postdoctoral Scholar
California Institute of Technology
Pasadena, California, USA
Email: spencer@caltech.edu

Kevin Schmidmayer
--------------------------------------------
Postdoctoral Scholar
California Institute of Technology
Pasadena, California, USA
Email: kevin.schmidmayer@gmail.com

Vedran Coralic
--------------------------------------------
Senior Research Scientist
Prime Air, Amazon Inc.
Seattle, Washington, USA
Email: vcoralic@amazon.com

Jomela Meng
--------------------------------------------
Research Engineer
Bosch Research and Technology Center
Sunnyvale, California, USA
Email: jomela.meng@gmail.com

Kazuki Maeda
--------------------------------------------
Acting Assistant Professor
University of Washington
Seattle, Washington, USA
Email: kazuki.e.maeda@gmail.com

Tim Colonius
--------------------------------------------
Frank and Ora Lee Marble Professor of Mechanical Engineering
California Institute of Technology
Pasadena, California, USA
Email: colonius@caltech.edu
62 changes: 62 additions & 0 deletions CONFIGURE
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#> Simulations using MFC depend upon Python, MPI,
#> and FFTW.

## Python ##
If you do not have Python, it can be installed via
Homebrew on OSX (https://www.brew.sh) as:
$$ brew install python
or compiled via your favorite package manager on Unix
systems.

## MPI ##
An MPI fortran compiler is required for all systems.
If you do not have one, Homebrew can take care of this
on OSX:
$$ brew install open-mpi
or compiled via another package manager on Unix systems.

## FFTW ##
If you already have FFTW compiled:
- Specify the location of your FFTW library and
include files in Makefile.user (fftw_lib_dir and
fftw_include_dir)

If you do not have FFTW compiler, the library and
installer are included in this package. Just:
$$ cd installers
$$ ./install_fftw.sh

#> Post-processing of parallel data files is not required,
#> but can indeed be handled with the MFC. For this, HDF5
#> and Silo must be installed

On OSX, a custom tap for Silo is included in the installers
directory. You can use it via
$$ cd lib
$$ brew install silo.rb
This will install silo and its dependences (including HDF5)
in their usual locations (/usr/local/lib and
/usr/local/include)

On Unix systems, you can install via a package manager or
from source. On CentOS (also Windows 7), HDF5
binaries can be found at
https://support.hdfgroup.org/ftp/HDF5/current18/bin/
Untar this archive in your intended location via
$$ tar -zxf [your HDF5 archive]

Silo should be downloaded at
https://wci.llnl.gov/simulation/computer-codes/silo/downloads
then
$$ tar -zxf [your Silo archive]
$$ cd [your Silo archive]
$$ ./configure --prefix=[target installation directory] --enable-pythonmodule --enable-optimization --disable-hzip --disable-fpzip --enableportable-binary FC=mpif90 F77=mpif77 -with-hdf5=[your hdf5 directory]/include,/[your hdf5 directory]/lib --disable-silex
$$ make
$$ make install
then add this line to your ~/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/[your silo directory]/lib:/[your hdf5 directory]/lib
and
$$ source ~/.bash_profile

You will then need to modify silo_lib_dir and silo_include_dir in
Makefile.user to point to your silo directory
3 changes: 3 additions & 0 deletions COPYRIGHT
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
MFC

Copyright © 2019 Spencer Bryngelson, Kevin Schmidmayer, Vedran Coralic, Jomela Meng, Kazuki Maeda, Timothy Colonius
18 changes: 18 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

READ "CONFIGURE" BEFORE PROCEEDING WITH INSTALL

Once all dependencies have been installed, the MFC can be built via

$$ make

from the MFC directory. This will build all MFC components. Individual
components can be built via

$$ make [component]

where [component] is one of "pre_process,simulation,post_process".

Once this is completed, you can ensure that the software is working
as intended by running

$$ make test
43 changes: 43 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
include Makefile.user

default: all

include installers/Makefile.messages

all: pre_process simulation post_process

pre_process:
@$(MAKE) -C src/pre_process_code -f makefile

simulation:

ifneq ("$(wildcard $(fftw_include_dir)/fftw3.*)","")
ifneq ("$(wildcard $(fftw_lib_dir)/libfftw*.la)","")
@$(MAKE) -C src/simulation_code -f makefile
else
@echo "$$FFTW_LIB_ERR"
endif
else
@echo "$$FFTW_INC_ERR"
endif

post_process:

ifneq ("$(wildcard $(silo_include_dir)/silo_*.inc)","")
ifneq ("$(wildcard $(silo_lib_dir)/libsilo*.*a)","")
@$(MAKE) -C src/post_process_code -f makefile
else
@echo "$$SILO_LIB_ERR"
endif
else
@echo "$$SILO_INC_ERR"
endif

test:
./tests/checks.sh

.PHONY: clean
clean:
@$(MAKE) -C src/pre_process_code -f makefile clean
@$(MAKE) -C src/simulation_code -f makefile clean
@$(MAKE) -C src/post_process_code -f makefile clean
38 changes: 38 additions & 0 deletions Makefile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
include ../../Makefile.user

########################## FFTW Flags ###########################
# Linker flags
ifdef fftw_lib_dir
ld_sim_flags = -L$(fftw_lib_dir) -lfftw3 -lm
else
ld_sim_flags =
endif

# Header flags
ifdef fftw_include_dir
hd_flags = -I$(fftw_include_dir)
else
hd_flags =
endif

# Compiler flags
f90_flags = $(FFLAGS) $(hd_flags)

#################### Post-process Silo Flags #####################
# Linker flags
ifdef silo_lib_dir
silo_flags = -L$(silo_lib_dir) -lsiloh5 -lm
else
silo_flags =
endif
ld_post_flags = $(ld_sim_flags) $(silo_flags)

# Header flags
ifdef silo_include_dir
hd_post_flags = -I$(silo_include_dir)
else
hd_post_flags =
endif

# Compiler flags
f90_post_flags = $(f90_flags) $(hd_post_flags)
35 changes: 35 additions & 0 deletions Makefile.user
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
################ Compiler options ####################
# Gets the MFC directory [do not modify]
MFC_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

### Compiler command ###
FC = mpif90
#FC = mpiifort

### Compiler flags [set according to your compiler] ###
#Note: Requires -cpp to enable preprocessor

FFLAGS = -cpp -c -w
#NOTE: Cray compilers require: -eZ

######### FFTW library and include locations #########
######### Set these to the location of FFTW #########

## For the FFTW included in the MFC package
fftw_lib_dir = $(MFC_DIR)/lib/fftw-3.3.8/lib
fftw_include_dir = $(MFC_DIR)/lib/fftw-3.3.8/include

## Other possible locatins [only use absolute paths]
#fftw_lib_dir = /usr/local/lib
#fftw_include_dir = /usr/include
#fftw_include_dir = /usr/local/include

######### Silo library and include locations #########
######### Set these to the location of Silo #########
######### [ only use absolute paths ] #########

silo_lib_dir = /usr/local/lib
silo_include_dir = /usr/local/include

#silo_lib_dir = /home/spencer/packages/silo-4.10.2/lib
#silo_include_dir = /home/spencer/packages/silo-4.10.2/include
Loading

0 comments on commit 2daf537

Please sign in to comment.