Merged in postRaijuTests (pull request #32)

PostRaijuTests

Approved-by: Anthony Sciola
Approved-by: ksorathia
This commit is contained in:
Jeff
2025-07-30 20:03:50 +00:00
36 changed files with 568 additions and 269 deletions

View File

@@ -12,6 +12,7 @@ module streamline
real(rp), private :: ShueScl = 2.0 !Safety factor for Shue MP
real(rp), private :: rShue = 6.0 !Radius to start checking Shue
integer , private :: NpChk = 10 !Cadence for Shue checking
logical , private :: doShueG = .false. !Global doShue, can be overriden by optional arguments to routines
contains
@@ -21,15 +22,16 @@ module streamline
if (Model%isMAGE .and. (trim(toUpper(Model%uID)) == "EARTHCODE")) then
!This is for Earth and we're running in tandem w/ mage
!Setup shue for short-circuiting
write(*,*) "Initializing SHUE-MP checking ..."
call inpXML%Set_Val(ShueScl,'streamshue/ShueScl' ,ShueScl)
call inpXML%Set_Val(rShue ,'streamshue/rShue' ,rShue )
call inpXML%Set_Val(NpChk ,'streamshue/NpChk' ,NpChk )
call inpXML%Set_Val(doShueG,'streamshue/doShue' ,.false.)
if (doShueG) write(*,*) "Initializing SHUE-MP checking ..."
else
!Otherwise don't care about Shue
rShue = HUGE
doShueG = .false.
endif
end subroutine setShue
!Trace field line w/ seed point x0 (both directions)
@@ -84,10 +86,11 @@ module streamline
doSH = .false.
endif
!If optional argument, do whatever it says. Otherwise default to global value
if (present(doShueO)) then
doShue = doShueO
else
doShue = .false.
doShue = doShueG
endif
!Allocate temp arrays to hold information along each direction
@@ -749,7 +752,7 @@ module streamline
if (present(doShueO)) then
doShue = doShueO
else
doShue = .false.
doShue = doShueG
endif
!Initialize
@@ -827,7 +830,7 @@ module streamline
!Slimmed down projection to northern hemisphere for MAGE
!RinO is optional cut-off inner radius when in northern hemisphere
!epsO is optional epsilon (otherwise use Model default)
subroutine mageproject(Model,ebState,x0,t,xyz,Np,isG,epsO,MaxStepsO)
subroutine mageproject(Model,ebState,x0,t,xyz,Np,isG,epsO,MaxStepsO,doShueO)
type(chmpModel_T), intent(in) :: Model
type(ebState_T), intent(in) :: ebState
real(rp), intent(in) :: x0(NDIM),t
@@ -836,12 +839,13 @@ module streamline
logical, intent(out) :: isG
real(rp), intent(in), optional :: epsO
integer , intent(in), optional :: MaxStepsO
logical , intent(in), optional :: doShueO
type(GridPoint_T) :: gPt
integer :: sgn,MaxSteps
real(rp) :: eps,h
real(rp), dimension(NDIM) :: dx,B,oB
logical :: inDom,isSC,isDone
logical :: inDom,isSC,isDone,doShue
if (present(epsO)) then
eps = epsO
@@ -855,6 +859,12 @@ module streamline
MaxSteps = MaxFL
endif
if (present(doShueO)) then
doShue = doShueO
else
doShue = doShueG
endif
sgn = +1 !Step towards NH
isG = .false.
!Initialize
@@ -935,7 +945,7 @@ module streamline
logical :: inMP
inDom = inDomain(xyz,Model,ebState%ebGr)
if ( (modulo(Np,NpChk) == 0) .and. (norm2(gPt%xyz)>=rShue) ) then
if ( doShue .and. (modulo(Np,NpChk) == 0) .and. (norm2(gPt%xyz)>=rShue) ) then
inMP = inShueMP_SM(xyz,ShueScl)
else
inMP = .true.

View File

@@ -275,7 +275,7 @@ module raijuIO
call AddOutVar(IOVars,"pot_corot",State%pot_corot(is:ie+1,js:je+1),uStr="kV",dStr="(corners) Corotation potential")
! Idk about you but I did not expect true to equal -1
allocate(outTmp2D(is:ie, Grid%Nk))
allocate(outTmp2D(Grid%shGrid%isg:Grid%shGrid%ieg, Grid%Nk))
where (State%activeShells)
outTmp2D = 1.0
elsewhere
@@ -421,6 +421,7 @@ module raijuIO
allocate(outTmp2D(Grid%shGrid%isg:Grid%shGrid%ieg ,Grid%shGrid%jsg:Grid%shGrid%jeg))
call calcMapJacNorm(Grid, State%xyzMin, outTmp2D)
call AddOutVar(IOVars, "mapJacNorm", outTmp2D(is:ie,js:je), dStr="L_(2,1) norm of lat/lon => xyzMin Jacobian")
deallocate(outTmp2D)
endif
call WriteVars(IOVars,.true.,Model%raijuH5, gStr)

View File

@@ -422,8 +422,8 @@ module ebsquish
return
endif
!Do quick short-cut to save us some effort
isGood = inShueMP_SM(xyz,ShueScl)
!Can add short circuit code here, but nothing for now
isGood = .true. !Let's be optimistic
if (.not. isGood) return
! trap for when we're within epsilon of the inner boundary

View File

@@ -74,7 +74,9 @@ module innermagsphere
!call vApp%imagApp%doInit(iXML,gApp%Model%isRestart,vApp)
call vApp%imagApp%InitModel(iXML)
call vApp%imagApp%InitIO(iXML)
if(vApp%writeFiles) then
call vApp%imagApp%InitIO(iXML)
endif
end subroutine InitInnerMag

View File

@@ -152,8 +152,8 @@ module voltapp_mpi
deallocate(vApp%ebTrcApp%ebSquish%blockStartIndices)
allocate(vApp%ebTrcApp%ebSquish%blockStartIndices(vApp%ebTrcApp%ebSquish%numSquishBlocks))
do b=1,vApp%ebTrcApp%ebSquish%numSquishBlocks
vApp%ebTrcApp%ebSquish%blockStartIndices(b) = vApp%ebTrcApp%ebState%ebGr%ks + &
((b-1)*(vApp%ebTrcApp%ebState%ebGr%ke+1))/vApp%ebTrcApp%ebSquish%numSquishBlocks
vApp%ebTrcApp%ebSquish%blockStartIndices(b) = &
GetAdjustedSquishStart(vApp,((b-1)*(vApp%ebTrcApp%ebState%ebGr%ke+1))/vApp%ebTrcApp%ebSquish%numSquishBlocks)
enddo
endif
call createLoadBalancer(vApp%squishLb, nHelpers,&
@@ -443,7 +443,7 @@ module voltapp_mpi
vApp%deepProcessingInProgress = .true.
call Toc("DeepUpdate", .true.)
else
elseif(vApp%doDeep) then
vApp%gApp%Grid%Gas0 = 0
!Load TM03 into Gas0 for ingestion during spinup
!Note: Using vApp%time instead of gamera time units

View File

@@ -64,7 +64,7 @@ module voltCplHelper
call CleanLine(magLine)
!Note: Not using volt time b/c chimp wants time in its units
call genLine(ebApp%ebModel,ebApp%ebState,xyz0,ebApp%ebState%eb1%time, magLine,&
doShueO=.false.,doNHO=doNH,doSHO=doSH)
doNHO=doNH,doSHO=doSH)
call Line2Tube(ebApp,vApp%planet,magLine,vApp%State%ijTubes(i,j))
endif

View File

@@ -719,7 +719,8 @@ module voltapp
call inpXML%Set_Val(Model%epsds,'tracer/epsds',1.0e-2)
call setBackground(Model,inpXML)
call inpXML%Set_Val(Model%doDip,'tracer/doDip',.false.)
call setStreamline(Model,inpXML)
!Initialize ebState
if (gApp%Model%doMultiF) then
write(*,*) "Initializing MF-Chimp ..."
@@ -736,7 +737,8 @@ module voltapp
!Initialize squish indices
allocate(vApp%ebTrcApp%ebSquish%blockStartIndices(vApp%ebTrcApp%ebSquish%numSquishBlocks))
do b=1,vApp%ebTrcApp%ebSquish%numSquishBlocks
vApp%ebTrcApp%ebSquish%blockStartIndices(b) = ebGr%ks + ((b-1)*(ebGr%ke+1))/vApp%ebTrcApp%ebSquish%numSquishBlocks
vApp%ebTrcApp%ebSquish%blockStartIndices(b) = &
GetAdjustedSquishStart(vApp,((b-1)*(ebGr%ke+1))/vApp%ebTrcApp%ebSquish%numSquishBlocks)
enddo
!Do simple test to make sure locator is reasonable

View File

@@ -19,23 +19,29 @@ module load {{ module }}
module list
echo 'Loading python environment.'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
if [ -d "${mage_test_root}/miniconda3" ]; then
echo 'Loading local miniconda3'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
export PATH="$mage_miniconda3/bin:$PATH"
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
else
export PATH="$mage_miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
else
echo 'Loading conda module'
module load conda
fi
unset __conda_setup
conda activate kaiju-3.8-testing
conda activate {{ conda_environment }}
echo 'Setting up MAGE environment.'
source {{ kaijuhome }}/scripts/setupEnvironment.sh

View File

@@ -81,7 +81,6 @@ BUILD_BIN_DIR = "bin"
# Data and configuration files used by the Intel Inspector tests.
TEST_INPUT_FILES = [
"tinyCase.xml",
"bcwind.h5",
"memSuppress.sup",
"threadSuppress.sup",
]
@@ -302,7 +301,27 @@ def intelChecks(args: dict):
from_path = os.path.join(TEST_SCRIPTS_DIRECTORY, filename)
to_path = os.path.join(".", filename)
shutil.copyfile(from_path, to_path)
# Generate bcwind data file.
if verbose:
print("Creating bcwind data file.")
cmd = "cda2wind.py -t0 2016-08-09T09:00:00 -t1 2016-08-09T11:00:00"
if debug:
print(f"cmd = {cmd}")
try:
cproc = subprocess.run(cmd, shell=True, check=True)
except subprocess.CalledProcessError as e:
print("ERROR: Unable to create bcwind data file for module set "
f"{module_set_name}.\n"
f"e.cmd = {e.cmd}\n"
f"e.returncode = {e.returncode}\n"
"See testing log for output from cda2wind.py.\n"
"Skipping remaining steps for module set"
f"{module_set_name}\n")
continue
if debug:
print(f"cproc = {cproc}")
# Generate the LFM grid file.
if verbose:
print("Creating LFM grid file.")
@@ -323,20 +342,20 @@ def intelChecks(args: dict):
if debug:
print(f"cproc = {cproc}")
# Generate the RCM configuration file.
# Generate the Raiju configuration file.
if verbose:
print("Creating RCM configuration file.")
cmd = "genRCM.py"
print("Creating Raiju configuration file.")
cmd = "genRAIJU.py"
if debug:
print(f"cmd = {cmd}")
try:
cproc = subprocess.run(cmd, shell=True, check=True)
except subprocess.CalledProcessError as e:
print("ERROR: Unable to create RCM configuration file"
print("ERROR: Unable to create Raiju configuration file"
f" for module set {module_set_name}.\n"
f"e.cmd = {e.cmd}\n"
f"e.returncode = {e.returncode}\n"
"See testing log for output from genRCM.py.\n"
"See testing log for output from genRAIJU.py.\n"
"Skipping remaining steps for module set "
f"{module_set_name}\n")
continue

View File

@@ -12,23 +12,29 @@
echo "Job $PBS_JOBID started at `date` on `hostname` in directory `pwd`."
echo 'Loading python environment.'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
if [ -d "${mage_test_root}/miniconda3" ]; then
echo 'Loading local miniconda3'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
export PATH="$mage_miniconda3/bin:$PATH"
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
else
export PATH="$mage_miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
else
echo 'Loading conda module'
module load conda
fi
unset __conda_setup
conda activate kaiju-3.8-testing
conda activate {{ conda_environment }}
#echo 'Setting up MAGE environment.'
source {{ kaijuhome }}/scripts/setupEnvironment.sh

View File

@@ -12,23 +12,29 @@
echo "Job $PBS_JOBID started at `date` on `hostname` in directory `pwd`."
echo 'Loading python environment.'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
if [ -d "${mage_test_root}/miniconda3" ]; then
echo 'Loading local miniconda3'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
export PATH="$mage_miniconda3/bin:$PATH"
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
else
export PATH="$mage_miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
else
echo 'Loading conda module'
module load conda
fi
unset __conda_setup
conda activate kaiju-3.8-testing
conda activate {{ conda_environment }}
#echo 'Setting up MAGE environment.'
source {{ kaijuhome }}/scripts/setupEnvironment.sh

View File

@@ -23,23 +23,29 @@ module load {{ module }}
module list
echo 'Loading python environment.'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
if [ -d "${mage_test_root}/miniconda3" ]; then
echo 'Loading local miniconda3'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
export PATH="$mage_miniconda3/bin:$PATH"
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
else
export PATH="$mage_miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
else
echo 'Loading conda module'
module load conda
fi
unset __conda_setup
conda activate kaiju-3.8-testing
conda activate {{ conda_environment }}
echo 'Setting up MAGE environment.'
source {{ kaijuhome }}/scripts/setupEnvironment.sh

View File

@@ -5,7 +5,7 @@
<time tFin="7201.0"/>
<spinup doSpin="T" tSpin="3600.0"/>
<output dtOut="60.0" tsOut="100"/>
<coupling dtCouple="5.0" imType="RCM" doQkSquish="F" qkSquishStride="2" doAsyncCoupling="F" doSerial="{{ serial_coupling }}"/>
<coupling dtCouple="5.0" imType="RAIJU" doQkSquish="F" qkSquishStride="2" doAsyncCoupling="F" doSerial="{{ serial_coupling }}"/>
<restart dtRes="3600.0"/>
<imag doInit="T"/>
<threading NumTh="128"/>
@@ -37,10 +37,15 @@
<conductance doStarlight="T" doRamp="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<rcmdomain domType="ELLIPSE"/>
<ellipse xSun="12.5" yDD="15.0" xTail="-20.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="2" doRefill="T" tAvg="600.0"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -160,7 +160,7 @@ def generateAndRunCase(caseName,pbsTemplate,pbs_options,xmlTemplate,xml_options,
shutil.copy2('../voltron.x', './voltron.x')
shutil.copy2('../voltron_mpi.x', './voltron_mpi.x')
shutil.copy2('../lfmD.h5', './lfmD.h5')
shutil.copy2('../rcmconfig.h5', './rcmconfig.h5')
shutil.copy2('../raijuconfig.h5', './raijuconfig.h5')
shutil.copy2('../bcwind.h5', './bcwind.h5')
# Submit the job
if verbose:
@@ -643,16 +643,16 @@ def main():
f"{module_set_name}\n")
continue
# Generate the RCM configuration file.
# Generate the Raiju configuration file.
if verbose:
print('Creating RCM configuration file.')
cmd = 'genRCM.py'
print('Creating Raiju configuration file.')
cmd = 'genRAIJU.py'
if debug:
print(f"cmd = {cmd}")
try:
_ = subprocess.run(cmd, shell=True, check=True)
except subprocess.CalledProcessError as e:
print('ERROR: Unable to create RCM configuration file'
print('ERROR: Unable to create Raiju configuration file'
f" for module set {module_set_name}.\n"
f"e.cmd = {e.cmd}\n"
f"e.returncode = {e.returncode}\n"
@@ -674,6 +674,7 @@ def main():
base_pbs_options['mage_test_root'] = os.environ['MAGE_TEST_ROOT']
base_pbs_options['mage_test_set_root'] = os.environ['MAGE_TEST_SET_ROOT']
base_pbs_options['branch_or_commit'] = os.environ['BRANCH_OR_COMMIT']
base_pbs_options["conda_environment"] = os.environ["CONDA_ENVIRONMENT"]
base_pbs_options['report_options'] = ''
if debug:
base_pbs_options['report_options'] += ' -d'

160
testingScripts/runLocalTests.py Executable file
View File

@@ -0,0 +1,160 @@
#!/usr/bin/env python
import argparse
import os
import subprocess
import pathlib
import datetime
def create_command_line_parser():
"""Create the command-line argument parser.
Create the parser for command-line arguments.
Returns
-------
parser : argparse.ArgumentParser
Command-line argument parser for this script.
"""
parser = argparse.ArgumentParser(description="Script to help setup automated tests within a kaiju repo")
parser.add_argument(
"-A", required=True,
help="Charge code to use when running tests."
)
parser.add_argument(
"-ce", required=True,
help="Conda environment name to load with conda module"
)
parser.add_argument(
"-p", default="economy",
help="Job priority to use when running tests (default: %(default)s)."
)
parser.add_argument(
"--unitTests", action='store_true',default=False,
help="Run unit tests (default: %(default)s)."
)
parser.add_argument(
"--weeklyDash", action='store_true',default=False,
help="Run weekly dash (default: %(default)s)."
)
parser.add_argument(
"--compTests", action='store_true',default=False,
help="Run default subset of comparative tests (default: %(default)s)."
)
parser.add_argument(
"--compTestsFull", action='store_true',default=False,
help="Run full suite of comparative tests (over-rides --compTests) (default: %(default)s)."
)
parser.add_argument(
"--buildTests", action='store_true',default=False,
help="Run build tests (default: %(default)s)."
)
parser.add_argument(
"--icTests", action='store_true',default=False,
help="Run tests to build Initial Condition files (default: %(default)s)."
)
parser.add_argument(
"--intelChecks", action='store_true',default=False,
help="Run Intel Inspector memory and thread check tests (default: %(default)s)."
)
parser.add_argument(
"--all", action='store_true',default=False,
help="Run all tests (default: %(default)s)."
)
return parser
def main():
"""Helper script to run automated tests locally inside a kaiju repository
"""
# Set up the command-line parser.
parser = create_command_line_parser()
# Parse the command-line arguments.
args = parser.parse_args()
# find repo home directory
called_from = os.path.dirname(os.path.abspath(__file__))
os.chdir(called_from)
os.chdir('..')
homeDir = os.getcwd()
# Check for necessary environment variables
if 'KAIJUHOME' not in os.environ:
print("The setupEnvironment.sh script must be sourced for the repo this script resides in before calling it.")
exit()
if pathlib.Path(homeDir).resolve() != pathlib.Path(os.environ['KAIJUHOME']).resolve():
print("The setupEnvironment.sh script must be sourced for the repo this script resides in before calling it.")
exit()
if 'KAIPYHOME' not in os.environ:
print("The setupEnvironment.sh script for ANY kaipy repo must be sourced before calling this.")
exit()
# Set environment variables
os.environ['MAGE_TEST_ROOT'] = homeDir
os.environ['MAGE_TEST_RUNS_ROOT']=os.path.join(os.environ['MAGE_TEST_ROOT'],"test_runs")
os.environ['DERECHO_TESTING_ACCOUNT'] = args.A
os.environ['DERECHO_TESTING_QUEUE'] = 'main'
os.environ['DERECHO_TESTING_PRIORITY'] = args.p
os.environ['SLACK_BOT_TOKEN'] = '' # help ensure no accidental reporting to slack
os.environ['PYTHONUNBUFFERED']='TRUE'
os.environ['CONDA_ENVIRONMENT']=args.ce
gitBranch = subprocess.run(['git','branch','--show-current'], stdout=subprocess.PIPE).stdout.decode('utf-8')
if 'not a git repository' in gitBranch:
print("This script must be executed inside a kaiju git repository")
exit()
gitBranch = gitBranch.strip()
os.environ['BRANCH_OR_COMMIT'] = gitBranch
currenttime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
test_set_dir = f"{currenttime}-{gitBranch}"
os.environ['MAGE_TEST_SET_ROOT'] = os.path.join(os.environ['MAGE_TEST_RUNS_ROOT'],test_set_dir)
os.makedirs(os.environ['MAGE_TEST_SET_ROOT'], exist_ok=True)
os.chdir(os.environ['MAGE_TEST_SET_ROOT'])
print(f"Running tests on branch {gitBranch}")
print(f"Using charge code {args.A} with priority {args.p}")
print(f"Running in folder {test_set_dir}")
# Adjust test options
if args.all:
args.unitTests = True
args.weeklyDash = True
args.compTests = True
args.compTestsFull = True
args.buildTests = True
args.icTests = True
args.intelChecks = True
if args.compTestsFull:
args.compTests = False
# Run Tests
if args.unitTests:
print("Running unit tests")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','unitTest.py'),'-tv'])
if args.weeklyDash:
print("Running weekly dash")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','weeklyDash.py'),'-tv'])
if args.compTests:
print("Running default comparative tests subset")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','relativeTests.py'),'-tv'])
if args.compTestsFull:
print("Running full comparative tests")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','relativeTests.py'),'-tva'])
if args.buildTests:
print("Running build tests")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','buildTest.py'),'-tv'])
if args.icTests:
print("Running Initial Condition tests")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','ICtest.py'),'-tv'])
if args.intelChecks:
print("Running memory and thread tests")
subprocess.call(['python', os.path.join(os.environ['MAGE_TEST_ROOT'],'testingScripts','intelChecks.py'),'-tv'])
if __name__ == "__main__":
main()

View File

@@ -5,7 +5,7 @@
<time tFin="11.5"/>
<spinup doSpin="T" tSpin="5.0"/>
<output dtOut="300.0" tsOut="100"/>
<coupling dtCouple="5.0" imType="RCM" doQkSquish="T" qkSquishStride="2" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" imType="RAIJU" doQkSquish="T" qkSquishStride="2" doAsyncCoupling="F"/>
<restart dtRes="10800.0"/>
<imag doInit="T"/>
<threading NumTh="128"/>
@@ -36,11 +36,16 @@
<conductance doStarlight="T" doRamp="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<rcmdomain domType="ELLIPSE"/>
<ellipse xSun="12.5" yDD="15.0" xTail="-20.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="2" doRefill="T" tAvg="600.0"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -212,11 +212,15 @@ def main():
if verbose:
print('Copying compiled pFUnit binaries.')
for directory in PFUNIT_BINARY_DIRECTORIES:
from_path = os.path.join(PFUNIT_HOME, directory)
to_path = os.path.join(KAIJU_EXTERNAL_DIRECTORY, directory)
if debug:
print(f"Copying {from_path} to {to_path}.")
shutil.copytree(from_path, to_path)
if not os.path.exists(os.path.join(KAIJU_EXTERNAL_DIRECTORY, directory)):
from_path = os.path.join(PFUNIT_HOME, directory)
to_path = os.path.join(KAIJU_EXTERNAL_DIRECTORY, directory)
if debug:
print(f"Copying {from_path} to {to_path}.")
shutil.copytree(from_path, to_path)
else:
if debug:
print(f"pFUnit directory {directory} already exists.")
# ------------------------------------------------------------------------
@@ -403,6 +407,7 @@ def main():
pbs_options['modules'] = module_names
pbs_options['kaijuhome'] = KAIJUHOME
pbs_options['branch_or_commit'] = BRANCH_OR_COMMIT
pbs_options["conda_environment"] = os.environ["CONDA_ENVIRONMENT"]
# Go to the bin directory for testing.
os.chdir(BUILD_BIN_DIR)
@@ -410,14 +415,31 @@ def main():
# --------------------------------------------------------------------
# Copy in inputs for unit test data generation.
for filename in UNIT_TEST_DATA_INPUT_FILES:
from_path = os.path.join(
UNIT_TEST_DATA_INPUT_DIRECTORY, filename
)
to_path = os.path.join('.', filename)
if os.path.exists(UNIT_TEST_DATA_INPUT_DIRECTORY):
for filename in UNIT_TEST_DATA_INPUT_FILES:
from_path = os.path.join(
UNIT_TEST_DATA_INPUT_DIRECTORY, filename
)
to_path = os.path.join('.', filename)
if debug:
print(f"Copying {from_path} to {to_path}.")
shutil.copyfile(from_path, to_path)
else:
cmd = "cda2wind.py -t0 2016-08-09T09:00:00 -t1 2016-08-09T11:00:00"
if debug:
print(f"Copying {from_path} to {to_path}.")
shutil.copyfile(from_path, to_path)
print(f"cmd = {cmd}")
cproc = subprocess.run(cmd, shell=True, check=True,
text=True, capture_output=True)
cmd = "genLFM.py"
if debug:
print(f"cmd = {cmd}")
cproc = subprocess.run(cmd, shell=True, check=True,
text=True, capture_output=True)
cmd = "genRAIJU.py"
if debug:
print(f"cmd = {cmd}")
cproc = subprocess.run(cmd, shell=True, check=True,
text=True, capture_output=True)
# Set options specific to the data generation job, then render the
# template.
@@ -492,7 +514,7 @@ def main():
# Set options specific to the 1st non-case tests job, then render the
# template.
pbs_options['job_name'] = 'runNonCaseTests1'
pbs_options['walltime'] = '00:05:00'
pbs_options['walltime'] = '01:00:00'
if verbose:
print(f"Creating {RUN_NON_CASE_TESTS_1_PBS_SCRIPT}.")
pbs_content = run_non_case_tests_1_pbs_template.render(pbs_options)

View File

@@ -5,7 +5,7 @@
<time tFin="32407.0"/>
<spinup doSpin="T" tSpin="7200.0"/>
<output dtOut="300.0" tsOut="100"/>
<coupling dtCouple="5.0" imType="RCM" doQkSquish="T" qkSquishStride="2" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" imType="RAIJU" doQkSquish="T" qkSquishStride="2" doAsyncCoupling="F"/>
<restart dtRes="10800.0"/>
<imag doInit="T"/>
<threading NumTh="64"/>
@@ -38,10 +38,15 @@
<conductance doStarlight="T" doRamp="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<rcmdomain domType="ELLIPSE"/>
<ellipse xSun="12.5" yDD="15.0" xTail="-20.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="2" doRefill="T" tAvg="600.0"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -7,7 +7,7 @@
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<output dtOut="60.0" tsOut="100" doTimer="F"/>
<restart dtRes="1800.0"/>
<coupling dtCouple="5.0" rDeep="8.0" imType="RCM"/>
<coupling dtCouple="5.0" rDeep="8.0" imType="RAIJU"/>
</VOLTRON>
<Gamera>
<sim runid="msphere" doH5g="T" H5Grid="lfmD.h5" icType="user" pdmb="1.0" pFloor="1.0e-8" dFloor="1.0e-6" rmeth="7UP"/>
@@ -29,4 +29,15 @@
<fields grType="LFM"/>
<domain dtype="SPH" rmin="2.0" rmax="25.0"/>
</CHIMP>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -19,23 +19,29 @@ module load {{ module }}
module list
echo 'Loading python environment.'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
if [ -d "${mage_test_root}/miniconda3" ]; then
echo 'Loading local miniconda3'
mage_test_root='{{ mage_test_root }}'
export CONDARC="${mage_test_root}/.condarc"
export CONDA_ENVS_PATH="${mage_test_root}/.conda"
mage_miniconda3="${mage_test_root}/miniconda3"
mage_conda="${mage_miniconda3}/bin/conda"
__conda_setup="$($mage_conda 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
export PATH="$mage_miniconda3/bin:$PATH"
if [ -f "$mage_miniconda3/etc/profile.d/conda.sh" ]; then
. "$mage_miniconda3/etc/profile.d/conda.sh"
else
export PATH="$mage_miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
else
echo 'Loading conda module'
module load conda
fi
unset __conda_setup
conda activate kaiju-3.8-testing
conda activate {{ conda_environment }}
echo 'Setting up MAGE environment.'
source {{ kaijuhome }}/scripts/setupEnvironment.sh

View File

@@ -4,7 +4,7 @@
<time tFin="108000.2"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0" doSeq="F"/>
<output dtOut="30.0" tsOut="100"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -33,12 +33,15 @@
<conductance doStarlight="T" doRamp="F" doMR="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<ellipse xSun="12.5" yDD="15.0" xTail="-15.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<torcm doFluidSplit="F"/>
<tomhd doAvg2MHD="T"/>
<plasmasphere isDynamic="T" initKp="3" doRefill="T" DenPP0="1.0" staticR="2" tAvg="300.0"/>
<loss doRelax="F" doNewCX="T"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<time tFin="108000.2"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0" doSeq="F"/>
<output dtOut="30.0" tsOut="100"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -33,12 +33,15 @@
<conductance doStarlight="T" doRamp="F" doMR="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<ellipse xSun="12.5" yDD="15.0" xTail="-15.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<torcm doFluidSplit="F"/>
<tomhd doAvg2MHD="T"/>
<plasmasphere isDynamic="T" initKp="3" doRefill="T" DenPP0="1.0" staticR="2" tAvg="300.0"/>
<loss doRelax="F" doNewCX="T"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<time tFin="108000.2"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0" doSeq="F"/>
<output dtOut="30.0" tsOut="100"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="F" qkSquishStride="2"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -33,12 +33,15 @@
<conductance doStarlight="T" doRamp="F" doMR="F"/>
<precipitation aurora_model_type="LINMRG" alpha="0.2" beta="0.4" doAuroralSmooth="F"/>
</REMIX>
<RCM>
<ellipse xSun="12.5" yDD="15.0" xTail="-15.0" isDynamic="T"/>
<grid LowLat="30.0" HiLat="75.0" doLatStretch="F"/>
<torcm doFluidSplit="F"/>
<tomhd doAvg2MHD="T"/>
<plasmasphere isDynamic="T" initKp="3" doRefill="T" DenPP0="1.0" staticR="2" tAvg="300.0"/>
<loss doRelax="F" doNewCX="T"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -16,7 +16,8 @@ contains
subroutine lastSerial()
end subroutine lastSerial
@test
! no more rcm, no more rcm test
!@test
subroutine testRcmFakeTubes()
! testing that rcm produces expected output when debug tubes is enabled
type(voltApp_T) :: voltronApp

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -37,11 +37,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="601.0"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="60.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="677.115987461"/>
<spinup doSpin="T" tSpin="60.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="T" doDynDT="T" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -38,11 +38,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -1,10 +1,4 @@
<Kaiju>
<RCM>
<rcmdomain domType="ELLIPSE" />
<ellipse isDynamic="T" xSun="12.5" xTail="-20.0" yDD="15.0" />
<grid HiLat="75.0" LowLat="30.0" doLatStretch="F" />
<plasmasphere DenPP0="1.0e-2" doRefill="T" initKp="2" isDynamic="T" tAvg="600.0" />
</RCM>
<CHIMP>
<units uid="EARTHCODE" />
<fields grType="lfm" />
@@ -15,7 +9,7 @@
<time tFin="3600.0" />
<spinup doSpin="T" tSpin="3600.0" />
<output dtOut="900.0" tsOut="100" />
<coupling doQkSquish="T" dtCouple="5.0" imType="RCM" qkSquishStride="2" rTrc="40.0" doAsyncCoupling="F" />
<coupling doQkSquish="T" dtCouple="5.0" imType="RAIJU" qkSquishStride="2" rTrc="40.0" doAsyncCoupling="F" />
<restart dtRes="1800.0" />
<imag doInit="T" />
<ebsquish epsSquish="0.05" />
@@ -39,4 +33,15 @@
<conductance doRamp="F" doStarlight="T" />
<precipitation alpha="0.2" aurora_model_type="LINMRG" beta="0.4" />
</REMIX>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -39,26 +39,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<driver isSA="F"/>
<restart doRes="T" nRes="18"/>
<output doFat="F"/>
<debug isLoud="T" writeGhosts="F" debugOutput="T"/>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75" useVelLRs="T"/>
<activeShell doAS="F"/>
<config fname="raijuconfig.h5" ignoreMismatch="F"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T" eLossModel="WM" doOutput="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.00" bminThresh="1.0" Pstd="100.0" normAngThresh="180.0"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -4,7 +4,7 @@
<voltron>
<time tFin="21.0"/>
<spinup doSpin="T" tSpin="20.0" tIO="0.0"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RCM" doQkSquish="F" doDynDT="F" doAsyncCoupling="F"/>
<coupling dtCouple="5.0" rTrc="40.0" imType="RAIJU" doQkSquish="F" doDynDT="F" doAsyncCoupling="F"/>
<restart dtRes="1800.0"/>
<imag doInit="T"/>
<ebsquish epsSquish="0.05"/>
@@ -39,11 +39,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -39,26 +39,15 @@
<domain dtype="MAGE"/>
<tracer epsds="0.05"/>
</CHIMP>
<RCM>
<output debug="F" toRCM="F" toMHD="F"/>
<clawpack doKaiClaw="F" doOMPClaw="T"/>
<ellipse xSun="10.0" yDD="12.5" xTail="-15.0" isDynamic="F"/>
<grid LowLat="25.0" HiLat="75.0" doLatStretch="F"/>
<plasmasphere isDynamic="T" initKp="1"/>
</RCM>
<RAIJU>
<driver isSA="F"/>
<restart doRes="T" nRes="18"/>
<output doFat="F"/>
<debug isLoud="T" writeGhosts="F" debugOutput="T"/>
<RAIJU>
<output loudConsole="T" doFat="F" doLossExtras="F" doDebug="F" writeGhosts="F"/>
<grid gType="SHGRID" ThetaL="15" ThetaU="50"/>
<domain tail_buffer="15.0" sun_buffer="15.0" tail_active="12.0" sun_active="12.0"/>
<sim pdmb="0.75" useVelLRs="T"/>
<activeShell doAS="F"/>
<config fname="raijuconfig.h5" ignoreMismatch="F"/>
<sim pdmb="0.75"/>
<config fname="raijuconfig.h5"/>
<plasmasphere doPsphere="T" doExcessMap="T"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T" eLossModel="WM" doOutput="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.00" bminThresh="1.0" Pstd="100.0" normAngThresh="180.0"/>
<losses doLosses="T" doCX="T" doSS="T" doCC="T"/>
<cpl nFluidsIn="1" startupTscl="7200.0" vaFracThresh="0.60" bminThresh="5.0" Pstd="5.0" normAngThresh="180.0"/>
<fluidIn1 imhd="0" flav="2" excessToPsph="T"/>
</RAIJU>
</Kaiju>

View File

@@ -124,7 +124,8 @@ contains
end subroutine
@test(npes=[2,5,9])
! not supported without RCM
!@test(npes=[2,5,9])
subroutine VMPIsquishDipoleTest(this)
class (MpiTestMethod), intent(inout) :: this