Overview¶
Installation¶
The code currently resides at GitHub. If you have a .zip file you can install PolyADCIRC using:
python setup.py install
from the package root directory. The PolyADCIRC package is currently NOT avaiable in the Python Package Index this may change in the future. This package requires GNU Parallel, matplotlib, scipy, mpl_toolkit, and numpy. This package interacts with ADCIRC and GridData. ADCIRC is NOT provided with this package.
Griddata_parallel.out needs to be compiled in the
PolyADCIRC/polyadcirc/pyGriddata
folder:
gfortran -openmp -DHIGHMEM -o Griddata_parallel.out Griddata_v1.32.F90
Cutting Edge Version¶
To use the cutting edge version of this package you need to add the PolySim git
repo to your PYTHONPATH
. The PolySim repo is located at:
/org/groups/chg/lgraham/PolySim.git
You can do this by adding the line:
export PYTHONPATH=~/PolyADCIRC:$PYTHONPATH
to your ~/.bash_profile
or ~/.bashrc
file.
To check that this has worked you can type (in a Python enviroment):
>>> import sys
>>> sys.path
and the PolyADCIRC directory should be listed in that path.
Package Layout¶
The package layout is as follows:
polyadcirc/
pyADCIRC/
__init__.py
prep_management.py
fort1920_management.py
plotADCIRC.py
fort13_management.py
fort15_management.py
fort14_management.py
basic.py
output.py
convert_fort14_to_fort13.py
flag_fort14.py
volume.py
run_framework/
__init__.py
random_manningsn.py
subdomain.py
random_wall.py
fulldomain.py
domain.py
pyGriddata/
__init__.py
file_management.py
table_to_mesh_map.py
manufacture_gap.py
gridObject.py
Code Overview¶
pyADCIRC
Package¶
This subpackage contains
- the class
pickleable
; - the module
basic
a set of classes for container objectd used by therun_framework
; - the modules
fort13_management
,fort14_management
, andfort15_management
,fort1920_management
, a set of methods for manipulation and reading of ADCIRCfort.##
files for use by therun_framework
andpyGriddata
modules; - the module
prep_management
is used to generate input files to ADCPREP. plotADCIRC
a set of functions for plotting simulation outputspost_management
is used the generate input files to ADCPOST.
run_framework
Package¶
This subpackage contains
domain
a container object for a data specific to a particular mesh(es), grid(s)random_manningsn
a class and associated set of methods to run a set of ADCIRC simulations with varying parameters
pyGriddata
Package¶
This package contains a set of modules mainly for the mapping of nodal data to an ADCIRC mesh using landuse data and the Fortran90 program Griddata_v1.32.F90. GridData is a FORTRAN program originally developed by Seizo Tanaka (ST3) and C.H.Lab., University of Notre Dame.
This package contains the modules
grid_management
prepares *.table and
*.13
files needed for table_to_mesh_map
and
creates the n x m matrix of multiplier factors where n = # nodes, and m = #
land classification values, assuming there are no surprises with the spatial
averaging.
- additional needed files:
- compiled version of Gridata_v1.32.F90 named Griddata_parallel.out
.asc
files*.14 files
fort.13
file to use as a template forconvert()
table_to_mesh_map
given a **_manning.table
(and data file(s) from above) produces a fort.13
ready for use by
ADCIRC
Note
This module requires a modified version of
Griddatat_v1.32.F90 that takes *.in
files
See also
Module Index for detailed documentation of modules, classes, etc.
Internal dependencies¶
Dependencies via import
statements:
polyadcirc/
pyADCIRC/
\-prep_management (polyadcirc.run_framework.domain,
polyadcirc.run_framework.random_manningsn)
\-plotADCIRC(polyadcirc.run_framework.domain,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.random_wall)
\-fort13_management (polyadcirc.pyGriddata.prep_mesh,
polyadcirc.pyGriddata.table_to_mesh_map,
polyadcirc.run_framework.domain,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.random_wall)
\-fort15_management (polyadcirc.pyADCIRC.plotADCIRC,
polyadcirc.run_framework.domain,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.subdomain)
\-fort14_management (polyadcirc.pyGriddata.prep_mesh,
polyadcirc.pyGriddata.file_management,
polyadcirc.run_framework.domain,
polyadcirc.run_framework.random_wall)
\-basic (polyadcirc.pyADCIRC.fort14_management,
polyadcirc.pyADCIRC.fort15_management)
\-output (polyadcirc.run_framework.random_wall,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.subdomain)
\-convert_fort14_to_fort13 (polyadcirc.pyGriddata.gridObject)
\-flag_fort14 (polyadcirc.pyADCIRC.fort14_management)
run_framework/
\-random_manningsn (polyadcirc.run_framework.random_wall,
polyadcirc.run_framework.subdomain)
\-domain (polyadcirc.run_framework.fulldomain,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.subdomain)
pyGriddata/
\-file_management (polyadcirc.pyADCIRC.plotADCIRC,
polyadcirc.pyGriddata.prep_mesh)
\-table_to_mesh_map (polyadcirc.pyGriddata.prep_mesh,
polyadcirc.run_framework.random_manningsn,
polyadcirc.run_framework.subdomain)
External dependencies¶
This pacakge requires matplotlib, scipy, mpl_toolkit, and numpy. This package is written in Python.
matplotlib
\-collections
| \-LineCollection (polyadcirc.pyADCIRC.plotADCIRC)
\-pyplot (polyadcirc.pyADCIRC.plotADCIRC)
\-tri (polyadcirc.pyADCIRC.plotADCIRC)
mpl_toolkits
\-axes_grid1
\-make_axes_locatable (polyadcirc.pyADCIRC.plotADCIRC)
numpy (polyadcirc.pyADCIRC.volume,polyadcirc.run_framework.random_manningsn,polyadcirc.pyADCIRC.fort15_management,polyadcirc.run_framework.domain,polyadcirc.pyGriddata.manufacture_gap,polyadcirc.run_framework.random_wall,polyadcirc.pyGriddata.prep_mesh,polyadcirc.run_framework.subdomain,polyadcirc.pyGriddata.table_to_mesh_map,polyadcirc.pyADCIRC.plotADCIRC,polyadcirc.pyADCIRC.fort14_management,polyadcirc.pyADCIRC.fort13_management,polyadcirc.pyADCIRC.fort1920_management,polyadcirc.pyADCIRC.convert_fort14_to_fort13,polyadcirc.pyADCIRC.output)
scipy
\-interpolate
| \-griddata (polyadcirc.run_framework.domain)
\-io (polyadcirc.run_framework.subdomain,polyadcirc.run_framework.random_wall,polyadcirc.run_framework.random_manningsn)