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
basica 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_frameworkandpyGriddatamodules; - the module
prep_managementis used to generate input files to ADCPREP. plotADCIRCa set of functions for plotting simulation outputspost_managementis used the generate input files to ADCPOST.
run_framework Package¶
This subpackage contains
domaina container object for a data specific to a particular mesh(es), grid(s)random_manningsna 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
.ascfiles*.14 filesfort.13file 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)