Hi PFLOTRAN community,
I am currently working on an in-situ copper (Cu) leaching problem and trying to model it using PFLOTRAN. I would really appreciate some guidance on performance and optimization issues I’m facing.
I am using an unstructured grid, but the simulations are taking an extremely long time to run. Even after simplifying the system to include only two minerals (Quartz and K-feldspar), the runtime remains very high. In some cases, I am not getting meaningful or expected outputs. I am attaching my code file for you to review.
Any suggestions, best practices, or similar experiences would be extremely helpful.
Thank you in advance!
#--------------------------- Simulation --------------------------------------
SIMULATION
SIMULATION_TYPE SUBSURFACE
PROCESS_MODELS
SUBSURFACE_FLOW flow
MODE RICHARDS
# MODE GENERAL
# OPTIONS
# RESTRICT_STATE_CHANGE
# ISOTHERMAL
# /
/
SUBSURFACE_TRANSPORT transport
MODE GIRT
/
# SUBSURFACE_REACTION reaction
# CHEMISTRY chemistry
# /
/
END
SUBSURFACE
#=========================== numerical methods ================================
NUMERICAL_METHODS flow
#TIMESTEPPER
# INITIAL_TIMESTEP_SIZE 10.d0 d
# MINIIMUM_TIMESTEP_SIZE 10.d0 d
# MAXIMUM_TIMESTEP_SIZE 1.d0 y
#/
NEWTON_SOLVER
# USE_INFINITY_NORM_CONVERGENCE
NUMERICAL_JACOBIAN
MINIMUM_NEWTON_ITERATIONS 2
MAXIMUM_NUMBER_OF_ITERATIONS 10
# CENTRAL_DIFFERENCE_JACOBIAN
# CONVERGE_ON_WELL_RESIDUAL
RESIDUAL_SCALED_INF_TOL 1.d-10
ATOL 1.d-5
RTOL 1.d-5
STOL 1.d-5
/
END
NUMERICAL_METHODS TRANSPORT
# TIMESTEPPER
# INITIAL_TIMESTEP_SIZE 10.d0 d
# MINIIMUM_TIMESTEP_SIZE 10.d0 d
# MAXIMUM_TIMESTEP_SIZE 1.d0 y
#/
NEWTON_SOLVER
MINIMUM_NEWTON_ITERATIONS 2
MAXIMUM_NUMBER_OF_ITERATIONS 10
# RESIDUAL_SCALED_INF_TOL 1.d-4
ATOL 1.d-5
RTOL 1.d-5
STOL 1.d-5
/
END
#=========================== Reading external data =========================================
#DATASET Lithology
# FILENAME ./Kapunda.h5
# HDF5_DATASET_NAME Lithology
#/
DATASET calc
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Calcite
/
DATASET dolo
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Dolomite
/
DATASET poro
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Porosity
/
DATASET perm
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Permeability
/
DATASET qtz
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Quartz
/
DATASET alb
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Albite
/
DATASET kfel
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME K-Feldspar
/
DATASET musc
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Muscovite
/
DATASET chalc
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Chalcopyrite
/
DATASET pyr
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Pyrite
/
DATASET pyrrho
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Pyrrhotite
/
DATASET ani
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Biotite
/
DATASET phlo
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Phlogopitic_mica
/
DATASET chlo
FILENAME ./Kapunda.h5
HDF5_DATASET_NAME Chlorite
/
#--------------------------- Regions -----------------------------------------
REGION all
COORDINATES
1.8748d0 -1.0d0 25.4378d0
33.4511d0 0.0d0 33.3318d0
/
END
#REGION injwell
# COORDINATES
# 1.8748d0 -1.0d0 25.4378d0
# 1.8748d0 0.0d0 33.3318d0
# /
#END
#--------------------------- Grid --------------------------------------------
#GRID
# TYPE STRUCTURED
# NXYZ 47 1 611
# BOUNDS
# 1.8748d0 -1.0d0 25.4378d0
# 33.4511d0 0.0d0 33.3318d0
# /
#END
GRID
TYPE UNSTRUCTURED ./cell_data.txt
MAX_CELLS_SHARING_A_VERTEX 100
GRAVITY 0.d0 0.d0 -9.8d0
END
#--------------------------- Time --------------------------------------------
TIME
FINAL_TIME 100.d0 y
INITIAL_TIMESTEP_SIZE 10 s
# MINIMUM_TIMESTEP_SIZE 1.d-6 y
MAXIMUM_TIMESTEP_SIZE 1.d1 y
/
FLUID_PROPERTY
DIFFUSION_COEFFICIENT 1.d-9
/
#--------------------------- Materials ---------------------------------------
MATERIAL_PROPERTY litho
ID 1
POROSITY DATASET poro
CHARACTERISTIC_CURVES um1
ROCK_DENSITY 3.3d3
SPECIFIC_HEAT 1.d3
THERMAL_CONDUCTIVITY_DRY 2.5
THERMAL_CONDUCTIVITY_WET 2.5
PERMEABILITY
DATASET perm
#PERM_ISO 1.d-15
/
/
#--------------------------- Characteristic Curves ---------------------------
CHARACTERISTIC_CURVES um1
SATURATION_FUNCTION VAN_GENUCHTEN
LIQUID_RESIDUAL_SATURATION 0.3
M 0.7
ALPHA 1.d-5
MAX_CAPILLARY_PRESSURE 1.d6
/
PERMEABILITY_FUNCTION MUALEM_VG_LIQ
LIQUID_RESIDUAL_SATURATION 0.3
M 0.7
/
PERMEABILITY_FUNCTION MUALEM_VG_GAS
LIQUID_RESIDUAL_SATURATION 0.3
GAS_RESIDUAL_SATURATION 0.1
M 0.7
/
/
#--------------------------- Strata ------------------------------------------
STRATA
REGION all
MATERIAL litho
END
#--------------------------- Chemistry Database --------------------------------
CHEMISTRY
DATABASE /media/achyu/D/Sakshi/test/hanford.dat
LOG_FORMULATION
ACTIVITY_COEFFICIENTS TIMESTEP
#WATER_DENSITY 1000.d0
PRIMARY_SPECIES
H+
# HCO3-
# Mg++
# Fe++
# Fe+++
# Cu++
# Cl-
# H2O
# Na+
K+
# Ca++
Al+++
# SO4--
# HS-
SiO2(aq)
# O2(g)
/
SECONDARY_SPECIES
# OH-
# Fe(OH)2(aq)
# Fe(OH)3(aq) ##Fe+++
# FeCO3(aq)
# FeCO3+ ##Fe+++
# MgCO3(aq)
# MgHCO3+
# MgSO4(aq)
# MgOH+
# NaOH(aq)
# NaCO3-
# NaCl(aq) #infinite
# NaHCO3(aq) #infinite
# AlOH++
# Al(OH)2+
# Al(OH)3(aq)
# Al(OH)4-
# Al(SO4)2-
# AlSO4+
# CaCO3(aq)
# CaHCO3+
# # CaSO4(aq)
# # CaCl2(aq) #infinite
# Cu+ ##
# CuOH+
# CuO2--
# CuCl+
# CuCl2(aq)
# CuCl2- ##
# CuCl3-- ##
# CuCl4--
# CuSO4(aq)
# HSO4-
H3SiO4-
H2SiO4--
/
# /
MINERALS
Quartz
# Albite
K-Feldspar
# Calcite
# Dolomite
# Muscovite
# Chalcopyrite
# Pyrite
# Pyrrhotite
# Annite
# Phlogopite
# Chamosite-7A
/
MINERAL_KINETICS
Quartz
RATE_CONSTANT 3.98d-14 mol/m^2-s
ACTIVATION_ENERGY 90.9d0 kJ/mol
/
# Albite
# RATE_CONSTANT 6.92d-11 mol/m^2-s
# ACTIVATION_ENERGY 69.8d0 kJ/mol
# /
K-Feldspar
RATE_CONSTANT 8.71d-11 mol/m^2-s
ACTIVATION_ENERGY 51.7d0 kJ/mol
/
# Calcite
# RATE_CONSTANT 5.01d-01 mol/m^2-s
# ACTIVATION_ENERGY 14.4d0 kJ/mol
# /
# Dolomite
# RATE_CONSTANT 6.46d-04 mol/m^2-s
# ACTIVATION_ENERGY 36.1d0 kJ/mol
# /
# Muscovite
# RATE_CONSTANT 1.41d-12 mol/m^2-s
# ACTIVATION_ENERGY 22.0d0 kJ/mol
# /
# Chalcopyrite
# RATE_CONSTANT 1.d-10 mol/m^2-s
# ACTIVATION_ENERGY 88.d0 kJ/mol
# /
# Pyrite
# RATE_CONSTANT 3.02d-08 mol/m^2-s
# ACTIVATION_ENERGY 56.9d0 kJ/mol
# /
# Pyrrhotite
# RATE_CONSTANT 9.12d-09 mol/m^2-s
# ACTIVATION_ENERGY 50.8d0 kJ/mol
# /
# Annite
# RATE_CONSTANT 1.45d-10 mol/m^2-s
# ACTIVATION_ENERGY 22.d0 kJ/mol
# /
# Phlogopite
# RATE_CONSTANT 49.d-13 mol/m^2-s
# ACTIVATION_ENERGY 88.d0 kJ/mol
# /
# Chamosite-7A
# RATE_CONSTANT 7.76d-12 mol/m^2-s
# ACTIVATION_ENERGY 88.d0 kJ/mol
# /
/
# DECOUPLED_EQUILIBRIUM_REACTIONS
# # CO3--
# Fe+++
# HS-
# /
OUTPUT
PH
TOTAL
FREE_ION
ALL
MINERAL_VOLUME_FRACTION
MOLARITY
SECONDARY_SPECIES
/
END
#=========================== constraints ======================================
CONSTRAINT insitu
CONCENTRATIONS
H+ 1.d-8 F
# HCO3- 1.d-8 F
# Ca++ 1.d-8 F
# Mg++ 1.d-8 F
# Fe++ 1.d-8 F
# Fe+++ 1.d-10 F
K+ 1.d-8 F
# H2O 55.5 F
# Na+ 1.d-5 F
Al+++ 1.d-8 F
SiO2(aq) 1.d-8 F
# HS- 1.d-10 F
# SO4-- 1.d-10 F
# Cu++ 1.d-10 F
# Cl- 1.d-5 F
# O2(g) 1.d-10 F
/
# FREE_ION_GUESS
# H+ 1.d-8
# HCO3- 1.d-5
# CO3-- 2.d-5
# Ca++ 2.d-5
# Mg++ 3.d-5
# Fe++ 3.d-8
# K+ 1.d-8 F
# Fe+++ 1.d-6
# Cl- 1.d-5
# H2O 55.5
# Na+ 1.d-5
# Al+++ 1.d-8
# O2(g) 1.d-8
# O2(aq) 1.d-8
# SiO2(aq) 2.d-6
# H2(aq) 1.d-6
#/
# EQUILIBRATE_AT_EACH_CELL
MINERALS
Quartz DATASET qtz 1.d-4 cm^2/cm^3
K-Feldspar DATASET kfel 1.d-4 cm^2/cm^3
# Albite DATASET alb 1.d-4 cm^2/cm^3
# Dolomite DATASET dolo 1.d-4 cm^2/cm^3
# Pyrite DATASET pyr 1.d-4 cm^2/cm^3
# Calcite DATASET calc 1.d-4 cm^2/cm^3
# Muscovite DATASET musc 1.d-4 cm^2/cm^3
# Chalcopyrite DATASET chalc 1.d-4 cm^2/cm^3
# Pyrrhotite DATASET pyr 1.d-4 cm^2/cm^3
# Annite DATASET ani 1.d-4 cm^2/cm^3
# Phlogopite DATASET phlo 1.d-4 cm^2/cm^3
# Chamosite-7A DATASET chlo 1.d-4 cm^2/cm^3
/
END
#CONSTRAINT injected_water1
# CONCENTRATIONS
# H+ 1.d-3 F
# HCO3- 4.d-8 F
# CO3-- 1.d-8 F
# Ca++ 57.d-8 F
# Mg++ 98.d-8 F
# Fe++ 72.d-8 F
# K+ 1.d-8 F
# Fe+++ 1.d-10 F
# Cl- 11.d-3 F
# H2O 55.5 F
# Na+ 1.d-4 F
# Al+++ 1.d-10 F
# O2(g) 1.d-10 F
# O2(aq) 1.d-10 F
# SiO2(aq) 1.d-8 F
# H2(aq) 1.d-10 F
# /
#END
#CONSTRAINT injected_water2
# CONCENTRATIONS
# H+ 7.5 P
# HCO3- 1.d-5 T
# CO3-- 2.d-6 T
# Ca++ 2.d-5 T
# Mg++ 3.d-5 T
# Fe++ 3.d-8 T
# Fe+++ 1.d-9 T
# Cl- 1.d-6 Z
# H2O 55.5 T
# Na+ 1.d-3 T
# Al+++ 1.d-5 T
# O2(g) 1.d-3 T
# O2(aq) 1.d-4 T
# SiO2(aq) 2.d-4 T
# H2(aq) 1.d-8 T
# /
#END
#--------------------------- Transport Conditions ----------------
TRANSPORT_CONDITION insitu_trans
TYPE DIRICHLET
CONSTRAINT_LIST
0.d0 insitu
/
END
#TRANSPORT_CONDITION injected_trans1
# TYPE DIRICHLET_ZERO_GRADIENT
# CONSTRAINT_LIST
# 0.d0 injected_water1
# /
#END
#TRANSPORT_CONDITION injected_trans2
# TYPE DIRICHLET_ZERO_GRADIENT
# CONSTRAINT_LIST
# 0.d0 injected_water2
# /
#END
#--------------------------- Initial Chemistry --------------------------------
INITIAL_CONDITION initial_chem
FLOW_CONDITION initial
TRANSPORT_CONDITION insitu_trans
REGION all
END
#BOUNDARY_CONDITION top
# FLOW_CONDITION initial
# TRANSPORT_CONDITION insitu
# REGION top
#END
#--------------------------- Wells with Chemistry -----------------------------
#SOURCE_SINK src1
# FLOW_CONDITION inlet1
# TRANSPORT_CONDITION injected_trans1
# REGION injwell
# # REGION top
#END
#SOURCE_SINK src2
# FLOW_CONDITION inlet2
# TRANSPORT_CONDITION injected_water2
# REGION injwell
## REGION top
#END
#--------------------------- Strata ------------------------------------------
STRATA
REGION all
MATERIAL litho
END
#--------------------------- Flow Conditions ---------------------------------
FLOW_CONDITION initial
TYPE
# LIQUID_PRESSURE HYDROSTATIC
# LIQUID_PRESSURE SEEPAGE
LIQUID_PRESSURE DIRICHLET
# MOLE_FRACTION DIRICHLET
# TEMPERATURE DIRICHLET
/
# DATUM 0.d0 0.d0 -1000.d0
# LIQUID_PRESSURE 1.d7
LIQUID_PRESSURE 1.d6
# MOLE_FRACTION 1.d-10
# TEMPERATURE 30.d0
END
#FLOW_CONDITION inlet1
# TYPE
# # RATE MASS_RATE
# RATE SCALED_MASS_RATE VOLUME
# /
# #RATE 0.001 kg/s
# SYNC_TIMESTEP_WITH_UPDATE
# RATE LIST
# TIME_UNITS day
# DATA_UNITS kg/s kg/s MW
# 0. 0. 0. 1.d5
# 1. 1.d-3 0. 1.d5
# 60. 0. 0. 1.d5
# /
#END
#FLOW_CONDITION inlet2
# TYPE
# RATE SCALED_MASS_RATE VOLUME
# /
# # RATE 0.001 kg/s
# SYNC_TIMESTEP_WITH_UPDATE
# RATE LIST
# TIME_UNITS day
# DATA_UNITS kg/s
# 0. 0.
# 61. 2.d0
# 180. 0.
# /
#END
#--------------------------- Output ------------------------------------------
OUTPUT
FORMAT VTK
ACKNOWLEDGE_VTK_FLAW
PRINT_COLUMN_IDS
# VELOCITY_AT_CENTER
TIMES s 0.
TIMES d 1.
TIMES d 15.
TIMES mo 1.
TIMES mo 2.
TIMES mo 3.
TIMES mo 4.
TIMES mo 5.
TIMES mo 6.
TIMES mo 7.
TIMES mo 8.
TIMES mo 9.
TIMES mo 10.
TIMES mo 11.
TIMES mo 12.
TIMES y 2.
TIMES y 5.
TIMES y 10.
TIMES y 50.
TIMES y 100.
VARIABLES
LIQUID_PRESSURE
TEMPERATURE
# MINERAL_VOLUME_FRACTION
# MINERAL_RATE
# TOTAL_AQUEOUS_CONCENTRATIONS
PERMEABILITY
POROSITY
/
END
END_SUBSURFACE