Skip to content

Commit

Permalink
Updated to version 7.0.8.3.4 from pip.
Browse files Browse the repository at this point in the history
  • Loading branch information
llnl-fesp committed Sep 13, 2019
1 parent a3934ce commit acdac24
Show file tree
Hide file tree
Showing 28 changed files with 846 additions and 801 deletions.
9 changes: 4 additions & 5 deletions INSTALL
@@ -1,6 +1,6 @@

UEDGE is in a transitional phase from running in the BASIS environment,
developed at LLNL, to Python. This version, tagged $Name: V7_07 $, can
developed at LLNL, to Python. This version, tagged $Name: V7_08_03 $, can
run in both environments. If you have interest in the Basis version of
UEDGE contact Bill Meyer (meyer8@llnl.gov). New installations of the
Basis version are discouraged as there is no longer any official support
Expand All @@ -19,11 +19,10 @@ Building Python UEDGE (pyUedge).
This includes many useful packages. Besides the base Python
packages pyUedge includes Python scripts that utilize the
matplotlib and hdf5 packages. Numpy is a required package to
build pyUedge. Anaconda (2) also includes pip, used below to
install Forthon, MPPL, and UEDGE.
build pyUedge.

- Fortran/C compilers
Only gfortran and gcc version 6.3.0 have been tested.
Only gfortran and gcc have been tested.

Requisites:
- Forthon
Expand All @@ -41,7 +40,7 @@ Building Python UEDGE (pyUedge).
"pip show uedge" reports version 7.6 then a "pip uninstall uedge"
and "pip install --no-cache-dir uedge" will be nesseccary.

Install from git clone (github.com/LLNL/UEDGE):
Install from git clone:
python setup.py build
python setup.py install

Expand Down
9 changes: 6 additions & 3 deletions MANIFEST.in
@@ -1,13 +1,16 @@
include *
recursive-include pyscripts *
recursive-include pytests *
recursive-include jupyter *
recursive-include aph *
recursive-include api *
recursive-include bbb *
recursive-include com *
recursive-include dst *
recursive-include flx *
recursive-include grd *
recursive-include idf *
recursive-include psi *
recursive-include svr *
recursive-include wdf *
#recursive-include dst *
#recursive-include idf *
#recursive-include psi *
#recursive-include std *
5 changes: 3 additions & 2 deletions Makefile.Forthon
@@ -1,4 +1,4 @@
DEBUG = -g #--fargs "-C=array" #--fargs "-CB -traceback"
DEBUG = --fargs "-Ofast" # -g #--fargs "-C=array" #--fargs "-CB -traceback"

SO = so
PUBLICHOME =
Expand Down Expand Up @@ -52,7 +52,8 @@ update:
done

clean:
rm -rf build *.so
find . -name build -exec rm -rf {} \;
find . -name \*.F -exec rm {} \;

#----------------------------------------------------------------------------
#--- Build command for opendx wrapper.
Expand Down
10 changes: 6 additions & 4 deletions PKG-INFO
@@ -1,10 +1,12 @@
Metadata-Version: 1.0
Metadata-Version: 1.2
Name: uedge
Version: 7.0.7.6
Version: 7.0.8.3.4
Summary: 2D Fluid simulation of plasma and neutrals in magnetic fusion devices
Home-page: UNKNOWN
Author: Bill Meyer
Author-email: meyer8@llnl.gov
Author: Tom Rognlien
Author-email: trognlien@llnl.gov
Maintainer: Bill Meyer
Maintainer-email: meyer8@llnl.gov
License: UNKNOWN
Description: UNKNOWN
Platform: Unix
Expand Down
38 changes: 11 additions & 27 deletions README.md
@@ -1,25 +1,15 @@
# UEDGE
A 2D time-dependent fluid simulation code of plasma and neutrals in magnetic fusion devices.
## Brief description
UEDGE is an interactive suite of physics packages using the BASIS or Python scripting systems.
UEDGE was initiated in the early 1990's as a collaborative project between LLNL, INEL, and SNL to
exploit implicit time-advancement methods for 2D plasma and neutral transport in the edge region of
magnetic fusion devices [Rognlien 1992, Smith 1995]. The code is written in Fortran and has used the
BASIS scripting system since its inception that provides a powerful interactive steering and diagnostic capability.
As Python has developed, it provides many of the features of BASIS plus a larger set of capabilities.
Thus, the first UEDGE Python capability was developed in 2007, which was then further developed
under the FACETS SciDAC project [Cary 2008, McCourt 2012]. Most recently, a standalone Python UEDGE has
been made available (see the INSTALL instructions above).

The plasma is described by time-dependent 2D plasma fluid equations
that include equations for density, velocity, ion temperature, electron temperature, electrostatic
potential, and in the edge region of a magnetic fusion energy confinement device. Fluid equations
are also used to describe the neutral gas components in the edge region, and coupling to Monte Carlo
neutrals is possible, but is not the common mode of simulation. Slab,
cylindrical, and toroidal geometries are all options, and closed and open magnetic field-line regions
are included. Classical transport is assumed along magnetic field lines, and anomalous transport
is assumed across field lines. Multi-charge state impurities can be included with the corresponding
line-radiation energy loss.
UEDGE is an interactive suite of physics packages using the Python or BASIS scripting systems.
The original (circa 2007) Python version was further developed under the FACETS SciDAC project
[Cary 2008, McCourt 2012]. The plasma is described by time-dependent 2D plasma fluid equations
that include equations for density, velocity, ion temperature, electron temperature, electrostatic
potential, and gas density in the edge region of a magnetic fusion energy confinement device. slab,
cylindrical, and toroidal geometries are allowed, and closed and open magnetic field-line regions
are included. Classical transport is assumed along magnetic field lines, and anomalous transport
is assumed across field lines. Multi-charge state impurities can be included with the corresponding
line-radiation energy loss.

## Method of solution
A fully implicit numerical algorithm is used that allows both Newton-like iterations to steady state
Expand Down Expand Up @@ -50,14 +40,8 @@ et al., Phys. Plasmas 22 (2015) 012506.

## Getting started
The easiest way to try out UEDGE is to download a static executable that should run on any Linux system; see
the link to the executable [see uedge_executable file]. Generally, you will also need an input file that defines the
geometry, mesh size, and various input parameters. The simplest cases are 2D slab models, but there are many
examples availabe for the poloidal cross-section of different tokamaks, both single- and double-null magnetic
configurations.

The second method, preferred if you intent to use and possibly modify UEDGE, is to download and install the Python
version of UEDGE. For this method, see the INSTALL file above (amoung UEDGE github files above) for step-by-step
instructions. Again, there are a number of examples of input files available from the authors.
the link to the executable [see uedge_executable file]. The second method is to download the UEDGE source files, and then build a Python
version or a Basis version [see uedge_source directory].

## How to get involved and contribute
Sent email to one of the developers listed below expressing your interest in modifying or developing packages
Expand Down
2 changes: 1 addition & 1 deletion README_Uedge_vers
Expand Up @@ -29,7 +29,7 @@ those of the United States Government or the University of California, and
shall not be used for advertising or product endorsement purposes.

*****************************************************************************
This file was committed $Date: 2018/02/28 18:32:42 $ and tagged $Name: V7_07 $
This file was committed $Date: 2018/02/28 18:32:42 $ and tagged $Name: V7_08_03 $

Version 3.0 Corresponds to CVS archives as of 12/14/99

Expand Down
4 changes: 2 additions & 2 deletions api/apifcn.m
Expand Up @@ -285,11 +285,11 @@ subroutine readrates1(impunit)
do ii=1,ntemp
read (impunit, '(a8)') zdum
read (impunit, '(a8)') zdum
read (impunit, '(f12.2)') etemp(ii)
read (impunit, '(f9.2)') etemp(ii)
read (impunit, '(a8)') zdum
do jj=1,nden
read (impunit, '(a8)') zdum
read (impunit, '(1x,e12.2,f12.2)') eden(jj),etemp(ii)
read (impunit, '(1x,e12.3,f8.2)') eden(jj),etemp(ii)
read (impunit, '(6e12.3)') (rate(kk,ii,jj),kk=1,nlam)
enddo
enddo
Expand Down
46 changes: 33 additions & 13 deletions bbb/bbb.v
Expand Up @@ -61,6 +61,9 @@ ngbackg(ngspmx) real [1/m**3] /ngspmx*1.e14/ + restart
#background gas density
ingb integer /2/ #background gas source=nuiz*ngbackg*
# (.9+.1*(ngbackg/ng)**ingb)
inflbg integer /4/ #expon to force flalfg large near ng~ngback
#ex:flalfgx,y*(1.+(cflgb*ngbackg/ng)**inflbg)
cflbg real /10./ #scaling fac for flalfgx,y using inflbg
facngbackg2ngs(ngspmx) real /ngspmx*1.e-8/
#fraction of ngbackg add to initial ngs
nzbackg(nispmx) real [1/m**3] /nispmx*1.e9/ #background impurity density
Expand Down Expand Up @@ -152,6 +155,8 @@ isybdryog integer /0/ #=1 sets fx0, fmx stencil to orthog values at iy=0 & ny
isybdrywd integer /0/ #=1 vy diffusion-only for iy=0 & ny if matwalli,o=1
isxmpog integer /0/ #=1 sets fy0, fmy stencil to orthog values at ix=nxc-1
# and ix=nxc+1 for geometry='dnbot'
iexclnxc1 integer /0/ #if=0; include nxc+1 for fee,iytotc if geometry=dnbot;
#if=1; exclude nxc+1 for fee,iytotc
ineudif integer /2/ #=1 gas sub. neudif uses ng, tg for gas vel & fngx->fnix
#=2 gas sub. neudifgp uses pg for gas vel & fngx->fnix
#=3 gas sub. neudifl use log_ng, tg for gas vel
Expand All @@ -174,7 +179,7 @@ isplflxl integer /1/ #=0, flalfe,i not active at ix=0 & nx;=1 active all ix
isplflxlv integer /1/ #=0, flalfv not active at ix=0 & nx;=1 active all ix
isplflxlgx integer /1/ #=0, flalfgx not active at ix=0 & nx;=1 active all ix
isplflxlgxy integer /1/ #=0, flalfgxy not active at ix=0 & nx;=1 active all ix
iswflxlgy integer /1/ #=0, flalfgy not active at iy=0 & ny;=1 active all iy
iswflxlgy integer /0/ #=0, flalfgy not active at iy=0 & ny;=1 active all iy
isplflxlvgx integer /1/ #=0, flalfvgx not active at ix=0 & nx;=1 active all ix
isplflxlvgxy integer /1/ #=0, flalfvgxy not active at ix=0 & nx;=1 active all ix
iswflxlvgy integer /1/ #=0, flalfvgy not active at iy=0 & ny;=1 active all iy
Expand Down Expand Up @@ -424,7 +429,7 @@ isupcore(nispmx) integer /nispmx*0/ #=0 sets up=upcore on core bdry
isngcore(ngspmx) integer /ngspmx*0/ #switch for neutral-density core B.C.
#=0, set loc flux= -(1-albedoc)*ng*vtg/4
#=1, set uniform, fixed density, ngcore
#=2, set rad. grad. to sqrt(lam_i*lam_cx)
#=2, not available
#=3, extrapolation, but limited
#=anything else, set zero deriv which was
#prev default inert hy
Expand Down Expand Up @@ -830,6 +835,7 @@ recywall_use(0:nx+1,ngspmx) _real #outer wall recycling coef; user input
recycwit(0:nx+1,ngspmx,nxptmx) _real #tot recyc coeff on PF wall
recycwot(0:nx+1,ngspmx) _real #tot recyc coeff on outer wall
isrefluxclip integer /1/ #=1 prohib outward gas for inward ion
gamsec real /0./ #secondary elec emiss coeff on plates
sputtr real /0./ #sputtering coef. at plates
sputtlb(0:ny+1,ngspmx,nxptmx) _real #set sputt coef. inner plate (iy,igsp)
sputtrb(0:ny+1,ngspmx,nxptmx) _real #set sputt coef. outer plate (iy,igsp)
Expand Down Expand Up @@ -1568,7 +1574,8 @@ rtauy(0:nx+1,0:ny+1) _real [1e-16 m^-2]/0./ #Norm. radial neutral line-dens.,
#norm. Ly-a opacity to radial wall
rtau(0:nx+1,0:ny+1) _real [1e-16 m^-2]/0./ #Min. norm neutral line-dens.,
#min. Ly-a opacity; min(rtaux,rtauy)
betap(0:nx+1,0:ny+1) _real /0./ #poloidal plasma beta
betap(0:nx+1,0:ny+1) _real /0./ #poloidal plasma beta
fracvgpgp real /1./ #frac of vgp in vgradp eng terms

***** Postproc:
#Variables used in the postprocessing of data to check energy and particle bal.
Expand Down Expand Up @@ -1693,6 +1700,9 @@ gradby(0:nx+1,0:ny+1) _real [1/mT] #grad_B drift (p_perp) drift factor, y-face
gradb2(0:nx+1,0:ny+1) _real [1/mT] #grad_B drift (p_perp) drift factor, x-face
dbm2dx(0:nx+1,0:ny+1) _real [1/T**2m] #pol deriv of 1/B**2 on x-face
dbm2dy(0:nx+1,0:ny+1) _real [1/T**2m] #rad deriv of 1/B**2 on y-face
isrozhfac integer /0/ #=0 sets bfacx,yrozh=1; =1 computes ave
bfacxrozh(0:nx+1,0:ny+1) _real [ ] #[1-B**2/B**2_ave], x-face; Rozhansky
bfacyrozh(0:nx+1,0:ny+1) _real [ ] #[1-B**2/B**2_ave], y-face; Rozhansky

***** Oldpla:
#Old value of some of the plasma quantities.
Expand Down Expand Up @@ -2848,6 +2858,10 @@ ixpt1o(1:nxpt) _integer #prev. grid value for ixpt1
ixpt2o(1:nxpt) _integer #prev. grid value for ixpt2
ixrbo(1:nxpt) _integer #prev. grid value for ixrb
iysptrxo integer #prev. grid value for iysptrx
ixst(1:6) integer #starting ix for 6 poloid region interp
ixsto(1:6) integer #value of ixst on previous grid
ixend(1:6) integer #end ix for 6 poloid region interp
ixendo(1:6) integer #value of ixend on previous grid
xnrmo(0:nxold+1,0:nyold+1) _real #norm. x-grd; old x-grid, old y-grid
xvnrmo(0:nxold+1,0:nyold+1) _real #norm. xv-grd; old x-grid, old y-grid
xnrmox(0:nxold+1,0:ny+1) _real #norm. x-grd;nxold grd interp. to new ny
Expand Down Expand Up @@ -2899,7 +2913,7 @@ cpassin(1:30) character*8 #character input variables to be passed

***** Npes_mpi:
# Processor numbers for parallel version with mpi
npes integer /1/ #total number of processors
npes integer /0/ #total number of processors
mype integer /-1/ #processor number of local processor (domain)
ismpion integer /0/ #flag to indicate using MPI (if=1)
hascomm integer /0/ #flag indicates communicator has been set (if=1)
Expand Down Expand Up @@ -3416,7 +3430,7 @@ fit_neteti() subroutine
# out iownit 1 if ixg,iyg are in the local processor's space, else 0
# out ixl local index
# out iyl local index
getbdyindexlims() subroutine
###getbdyindexlims() subroutine
# calculates values of running index corresponding to start and end of various
# portions of the edge boundary
###getixiybdy(lindex:integer,ix:integer,iy:integer,surfacename:character) subroutine
Expand Down Expand Up @@ -3562,6 +3576,12 @@ mult24(var2:real,var4:real,n3:integer,n4:integer) function
mult34(var2:real,var4:real,n3:integer,n4:integer) function
# component-wise multiplication of 3d*4d variable along x, y, and third directions

wallflux subroutine
# diagnostic calc particle/heat flux to walls; alt. to balancee

plateflux subroutine
# diagnostic calc particle/heat flux to plates; alt. to balancee

***** Imprad:
# variables associated with impurity radiation
isimpon integer /0/ +restart
Expand Down Expand Up @@ -3757,27 +3777,27 @@ yielh(imx+1) _real
yielz(imx+1,lnst+1) _real

***** Ident_vars:
uedge_ver character*80 /'$Name: $'/
uedge_ver character*80 /'$Name: V7_08_03 $'/
uedge_date character*80 /'Version date in README_Uedge_vers in dir uedge'/

***** Last_group_ex_sav_var:
# Last group in bbb where new variables from read save files get stored

***** MpiComponent:
# Link to setting and getting communicators
set_uedgeComm(comm:integer) integer function # in comm the new communicator
###set_uedgeComm(comm:integer) integer function # in comm the new communicator

uedge_mpiInit subroutine
###uedge_mpiInit subroutine
# Do mpiInit if it is not a component
uedge_petscInit subroutine
###uedge_petscInit subroutine
# Enable the initialization of petsc from
uedge_mpiFinal subroutine
###uedge_mpiFinal subroutine
# call MPI_Finalize() to exit MPI
uedge_petscFinal subroutine
###uedge_petscFinal subroutine
# calls PetscFinalizeWrap() to exit petsc
uedge_petscInsertOpts subroutine
###uedge_petscInsertOpts subroutine
# calls PetscInsertOpts() to set petscoptions
uedge_reset subroutine
###uedge_reset subroutine
# Does the reset

***** Logging:
Expand Down

0 comments on commit acdac24

Please sign in to comment.