! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Density estimation
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
# Number of repetitions for the probability map estimation (keep at 2)
num_pdf_iter : 2
pdf_method : NormalizingFlow


! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Density estimation training
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

# Number of epochs for each normalizing flow training
nEpochs :			30 30
# Batch size for normalizing flow training
batch_size_train :		2048 2048
# Subset of data on which training is done
nWorkingData : 			1e5 1e5
# Subset of data used to adjust the sampling probability to the desired number of samples
# If nWorkingDataAdjustment < 0, all data with the prescribed frequency is used
nWorkingDataAdjustment :        -1
data_freq_adjustment :          1
# Learning rate during normalizing flow training
learning_rate : 		2e-4 2e-4
# Use GPU
use_gpu :                       True

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Normalizing flow architecture
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

nCouplingLayer :		 2  2  
num_bins : 			 4  8
hidden_features :		12 12 
num_blocks :			 3  3

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Density evaluation
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

# Batch size for evaluation of density
batch_size_eval :		2.5e4

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Reproducibility
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

seed :				42

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Timer
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

printTiming :			False

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Data
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

dataFile :			data/combustion2DToDownsampleSmall.npy
preShuffled :			True
scalerFile :			scaler.npz

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !
! ~~~~ Downsampling
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !

# List of desired number of samples
nSamples : 			1e3 1e4 1e5
# Compute criterion (expensive for large number of downsampled data)
computeDistanceCriterion : 	True
# Prefix of the NPZ file containing the downsampled data
prefixDownsampledData : 	downSampledData 


