[FLASH-USERS] Trying to use viscosity
Maximus Allfree
mall7710 at uni.sydney.edu.au
Sun Oct 8 01:19:55 EDT 2023
Thank you both for your help, and the paper. I really appreciate it.
I have tried to implement the unsplit hydro and unsplit diffusion as suggested. However I keep running into issues with adding the unsplit diffusion requirement as it needs HYPRE which clashed with MPICH. I have tried to fix this by installing Open-MPI and HYPRE instead of MPICH. I then had to change the default darwin makefile to add the HYPRE paths and the HYPRE include directory for FFLAGS and CFLAGS as it couldn't find a bunch of files:
MPI_PATH = /opt/homebrew/Cellar/open-mpi/4.1.5
FCOMP = $(MPI_PATH)/bin/mpifort
CCOMP = $(MPI_PATH)/bin/mpicc
CPPCOMP = $(MPI_PATH)/bin/mpiCC
LINK = $(MPI_PATH)/bin/mpifort
LIB_MPI =
HYPRE_PATH = /opt/homebrew/Cellar/hypre/2.29.0
FFLAGS_HYPRE = -I${HYPRE_PATH}/include
CFLAGS_HYPRE = -I${HYPRE_PATH}/include
LIB_HYPRE = -L${HYPRE_PATH}/lib -lHYPRE
Currently, my config file has this:
REQUIRES Driver
REQUIRES physics/Hydro/HydroMain/unsplit
REQUIRES physics/Diffuse/DiffuseMain/Unsplit
REQUIRES Multispecies/MultispeciesMain
REQUIRES physics/Eos/EosMain/Multigamma
# REQUIRES Grid/GridSolvers/HYPRE
REQUIRES physics/materialProperties/Conductivity
REQUIRES physics/materialProperties/Viscosity
My flash.par file has this:
#--------------------------------------------------------------------
# Diffusive parameters:
# useDiffuse flags whether the Diffuse unit is being used at all
useDiffuse = .true.
dt_diff_factor = 0.8
#--------------------------------------------------------------------
# Viscous parameters:
# useViscosity flags whether the viscosity material property is being used
useViscosity = .true.
diff_visc_mu = 0.1560365234
visc_whichCoefficientIsConst = 1
#--------------------------------------------------------------------
# Conductive parameters:
useConductivity = .true.
diff_constant = 1.0
With these parameters the code:
> generates the makefile successfully,
> runs the makefile process successfully (I had to use this flag to downgrade the implicit errors to warnings):
-Wno-implicit-function-declaration
But it then has an issue before it starts the simulation. Any clue what this error may mean? When I run without the diffuse/unsplit line in config it works fine, so seems to be a problem with HYPRE and how I have set it up but I could be wrong.
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
Could not print backtrace: executable file is not an executable
Also the FLASH documentation 8.10.4.1 claims there is a bug with HYPRE and using multiple procs when using HYPRE based solvers, should I be concerned about this or is that fine?
Again, really stuck here if anyone has any advice I would love to hear it. I have been through the documentation all day and haven't been able to fix this, but I don't really understand the FLASH architecture very well so I imagine there is some oversight here.
Kind regards,
Max
________________________________
From: Hansen, Eddie <ehansen at pas.rochester.edu>
Sent: Saturday, 7 October 2023 10:29 PM
To: Reyes, Adam <adam.reyes at rochester.edu>; Maximus Allfree <mall7710 at uni.sydney.edu.au>
Cc: flash-users at flash.rochester.edu <flash-users at flash.rochester.edu>
Subject: Re: [FLASH-USERS] Trying to use viscosity
Max,
I would also add that you probably want this line in your Config if you need heat conduction:
REQUESTS physics/Diffuse/DiffuseMain/Unsplit
This will let you use the unsplit implicit diffusion solvers, one of which is for thermal conduction. See user guide Sec. 18.1.4 on how to use isotropic thermal diffusion. Also check out Sec. 22.1 for different conductivity coefficient implementations.
--
Eddie Hansen
Applications Group Leader
Flash Center for Computational Science
From: flash-users <flash-users-bounces at flash.rochester.edu> on behalf of Reyes, Adam <adam.reyes at rochester.edu>
Date: Saturday, October 7, 2023 at 6:58 AM
To: Maximus Allfree <mall7710 at uni.sydney.edu.au>
Cc: flash-users at flash.rochester.edu <flash-users at flash.rochester.edu>
Subject: Re: [FLASH-USERS] Trying to use viscosity
Hi Max,
Yes you’re right those should be commas.
I would recommend against using those combinations of solvers. The unspilt hydro solver, which has its' own implementation of flux-based diffusion solvers is in general better for multidimensional flows. It is also better maintained than the split solvers. You could have in you Config this instead:
REQUIRES Driver
REQUIRES physics/Hydro/HydroMain/unsplit
REQUIRES Multispecies/MultispeciesMain
REQUIRES physics/Eos/EosMain/Multigamma
this<https://protect-au.mimecast.com/s/iAD9CBNqjlCDXgAOJSz3klR?domain=doi.org> paper on the CASTRO code has some pretty striking figures showing the advantages of using an unspilt hydro solver.
You shouldn’t need to add those parameters to your own simulation Config. They exist elsewhere in the source code and make them available to be set from you flash.par at runtime.
Thanks for reporting the bug!
*********************************************
Adam Reyes
[cid:EA5A7E59-94B9-4162-879C-B52E774AEA24]
Code Group Leader, Flash Center for Computational Science
Research Scientist, Dept. of Physics and Astronomy
University of Rochester
River Campus: Bausch and Lomb Hall, 369
500 Wilson Blvd. PO Box 270171, Rochester, NY 14627
Email adam.reyes at rochester.edu
Web https://flash.rochester.edu<https://protect-au.mimecast.com/s/CMSDCD1vlpToLRMkrF5pP8X?domain=flash.rochester.edu>
(he / him / his)
[cid:CE45460D-2261-4A69-865C-5CF7BEACF620]
*********************************************
On Oct 7, 2023, at 8:21 AM, Maximus Allfree <mall7710 at uni.sydney.edu.au> wrote:
Hey FLASH Users,
I am having some problems with diffusion and viscosity. I am trying to run RMI simulations and have required these in the config file:
REQUIRES Driver
REQUIRES physics/Hydro/HydroMain/split/PPM
REQUIRES Multispecies/MultispeciesMain
REQUIRES physics/Eos/EosMain/Multigamma
REQUIRES physics/Diffuse/DiffuseFluxBased
In the flash user documentation it mentioned that HYDRO PPM was needed for diffusive effects, so I am using that. Before I was just using physics/Hydro. I also am using DiffuseFluxBased so I can use heat conduction and viscosity.
I have the following parameters in the config file to set the required runtime variables. I have also set these in the flash.par file, but they don't seem to do anything? They aren't overriding the config file default values. Not sure if I have done something wrong here, or if they're not meant to be used in the flash.par file:
# Diffusive parameters:
D useDiffuse flags whether the Diffuse unit is being used at all
PARAMETER useDiffuse BOOLEAN true
D useDiffuseTherm flags whether Diffuse_therm should contribute to fluxes
PARAMETER useDiffuseTherm BOOLEAN true
D useDiffuseVisc flags whether Diffuse_visc should contribute to fluxes
PARAMETER useDiffuseVisc BOOLEAN true
D useViscosity flags whether the viscosity material property is being used
PARAMETER useViscosity BOOLEAN true
D diff_visc_mu constant dynamic viscosity
PARAMETER diff_visc_mu REAL 0.1 [ to ]
D diff_visc_nu constant kinematic viscosity
PARAMETER diff_visc_nu REAL 0.1 [ to ]
D visc_whichCoefficientIsConst which is constant: (1 for dynamic, 2 for kinematic)
PARAMETER visc_whichCoefficientIsConst INTEGER 1 [1 to 2]
Anyway, when I try to make the code, I am getting this error:
/opt/homebrew/Cellar/mpich/4.1.2/bin/mpif90 -ggdb -c -O2 -fdefault-real-8 -fdefault-double-8 -Wuninitialized -fallow-argument-mismatch -ffree-line-length-none -DMAXBLOCKS=1 -DNXB=45 -DNYB=32 -DNZB=1 -DN_DIM=2 Diffuse_visc.F90
Diffuse_visc.F90:225:59:
225 | call Viscosity(U(:,i,j,k),viscDynamic(i,j,k).viscUnusedHere(i,j,k), component=1)
| 1
Error: Syntax error in argument list at (1)
Diffuse_visc.F90:327:52:
327 | call Viscosity(U(:,i,j,k),viscDynamic(i,j,k).viscUnusedHere(i,j,k), component=1)
| 1
Error: Syntax error in argument list at (1)
Diffuse_visc.F90:411:52:
411 | call Viscosity(U(:,i,j,k),viscDynamic(i,j,k).viscUnusedHere(i,j,k), component=1)
| 1
Error: Syntax error in argument list at (1)
make: *** [Diffuse_visc.o] Error 1
I looked into the Diffuse_visc.F90 file, and I was wondering whether the full stops are meant to be commas? It feels unlikely that this would be a FLASH error and far more likely I have done something wrong with implementing diffusion / viscosity as I am new to FLASH but I figured I would ask if anyone else has had problems with this.
Cheers for reading. Any advice would be greatly appreciated.
Kind regards,
Max
_______________________________________________
flash-users mailing list
flash-users at flash.rochester.edu<mailto:flash-users at flash.rochester.edu>
For list info, including unsubscribe:
https://flash.rochester.edu/mailman/listinfo/flash-users<https://protect-au.mimecast.com/s/JnnWCE8wmrtl8QnNosphxJE?domain=flash.rochester.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20231008/9c500abe/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FLASH.jpg
Type: image/jpeg
Size: 23876 bytes
Desc: FLASH.jpg
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20231008/9c500abe/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FLASH-pride-sml.png
Type: image/png
Size: 12732 bytes
Desc: FLASH-pride-sml.png
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20231008/9c500abe/attachment-0001.png>
More information about the flash-users
mailing list