Exemple #1
0
# Exact solution specification for error calculations
#-----------------------------------------------------------------------------

octree.KnownSolution = 'NoKnownSolution'

#-----------------------------------------------------------------------------
# Set solver parameters
#-----------------------------------------------------------------------------

octree.Solver = 'Richards'
octree.Solver.MaxIter = 5

octree.Solver.Nonlinear.MaxIter = 10
octree.Solver.Nonlinear.ResidualTol = 1e-9
octree.Solver.Nonlinear.EtaChoice = 'EtaConstant'
octree.Solver.Nonlinear.EtaValue = 1e-5
octree.Solver.Nonlinear.UseJacobian = True
octree.Solver.Nonlinear.DerivativeEpsilon = 1e-2

octree.Solver.Linear.KrylovDimension = 10

octree.Solver.Linear.Preconditioner = 'PFMG'

#-----------------------------------------------------------------------------
# Run and Unload the ParFlow output files
#-----------------------------------------------------------------------------

dir_name = get_absolute_path('test_output/octree')
mkdir(dir_name)
octree.run(working_directory=dir_name)
Exemple #2
0
#-----------------------------------------------------------------------------
# this runs CLM test case
#-----------------------------------------------------------------------------

from parflow import Run
from parflow.tools.fs import mkdir, cp, get_absolute_path

clm = Run("clm", __file__)

#-----------------------------------------------------------------------------
# Making output directories and copying input files
#-----------------------------------------------------------------------------

dir_name = get_absolute_path('test_output/clm')
mkdir(dir_name)

directories = [
    'qflx_evap_grnd', 'eflx_lh_tot', 'qflx_evap_tot', 'qflx_tran_veg',
    'correct_output', 'qflx_infl', 'swe_out', 'eflx_lwrad_out', 't_grnd',
    'diag_out', 'qflx_evap_soi', 'eflx_soil_grnd', 'eflx_sh_tot',
    'qflx_evap_veg', 'qflx_top_soil'
]

for directory in directories:
    mkdir(dir_name + '/' + directory)

cp('$PF_SRC/test/tcl/clm/drv_clmin.dat', dir_name)
cp('$PF_SRC/test/tcl/clm/drv_vegm.dat', dir_name)
cp('$PF_SRC/test/tcl/clm/drv_vegp.dat', dir_name)
cp('$PF_SRC/test/tcl/clm/narr_1hr.sc3.txt.0', dir_name)
Exemple #3
0
checkOK('BasicSettings.yaml')

cp('$PF_SRC/test/input/BasicSettings.yaml', 'TestCopyFile.yaml')
checkOK('TestCopyFile.yaml')

# copying file from adjacent directory with environment variable
cp('$PF_SRC/README.md')
checkOK('README.md')

# removing files
rm('BasicSettings.yaml')
checkKO('BasicSettings.yaml')
rm('README.md')
checkKO('README.md')

# creating directory
checkKO('test_directory')
mkdir('test_directory')
checkOK('test_directory')

# creating same directory - you should get a message that this directory already exists.
mkdir('test_directory')

mkdir('test_directory/test1/test2/')
checkOK('test_directory/test1/test2')

# removing directory
rm('test_directory')
rm('test_directory')
checkKO('test_directory')
# R. Maxwell, originally developed in 2009, updated PF Short Course 2019, updated to Python and Streamlit 2021
# [email protected]

from parflow import Run
import streamlit as st
from parflow.tools.fs import get_absolute_path, cp, rm, mkdir, exists
from parflowio.pyParflowio import PFData
import matplotlib.pyplot as plt
import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.io as pio

base_dir = get_absolute_path(".")
Dunne = Run("Dunne")
mkdir('dunne_over')
Dunne.FileVersion = 4

Dunne.Process.Topology.P = 1
Dunne.Process.Topology.Q = 1
Dunne.Process.Topology.R = 1

#---------------------------------------------------------
# Computational Grid
#---------------------------------------------------------
Dunne.ComputationalGrid.Lower.X = 0.0
Dunne.ComputationalGrid.Lower.Y = 0.0
Dunne.ComputationalGrid.Lower.Z = 0.0

Dunne.ComputationalGrid.NX = 20
Dunne.ComputationalGrid.NY = 1
Exemple #5
0
# also veg_map.pfb must be provided.
# This tests 1D forcing of vegetation: a single time series is applied at each cell based on the cell's vegetation type (IGBP)
# These time series are stored as columns (as many columns as IGBP vegetation classes -18) in input files.
#-----------------------------------------------------------------------------

from parflow import Run
from parflow.tools.fs import mkdir, cp, chdir, get_absolute_path

clm_veg = Run("clm_forfc_veg", __file__)

#-----------------------------------------------------------------------------
# Making output directories and copying input files
#-----------------------------------------------------------------------------

dir_name = get_absolute_path('test_output/clm_veg')
mkdir(dir_name)
chdir(dir_name)

directories = [
    'qflx_evap_grnd', 'eflx_lh_tot', 'qflx_evap_tot', 'qflx_tran_veg',
    'correct_output', 'qflx_infl', 'swe_out', 'eflx_lwrad_out', 't_grnd',
    'diag_out', 'qflx_evap_soi', 'eflx_soil_grnd', 'eflx_sh_tot',
    'qflx_evap_veg', 'qflx_top_soil'
]

for directory in directories:
    mkdir(directory)

cp('$PF_SRC/test/tcl/clm/drv_clmin.dat')
cp('$PF_SRC/test/tcl/clm/drv_vegm.dat')
cp('$PF_SRC/test/tcl/clm/drv_vegp.dat')