2022-04-13 14:08:55 +02:00
import argparse
2022-04-14 12:37:42 +02:00
import gzip
2022-04-13 14:08:55 +02:00
import logging
import pathlib
import pickle
2022-04-14 12:37:42 +02:00
from time import time
2022-04-13 14:08:55 +02:00
import matplotlib . pyplot as plt
import numpy as np
from scipy import interpolate
from . olaflow import OFModel
parser = argparse . ArgumentParser ( description = " Post-process olaflow results " )
parser . add_argument ( " -v " , " --verbose " , action = " count " , default = 0 )
2022-05-03 11:13:27 +02:00
parser . add_argument (
" -i " , " --input " , type = pathlib . Path , help = " Olaflow output directory " , required = True
)
parser . add_argument (
" -o " ,
" --output " ,
type = pathlib . Path ,
help = " Output directory for pickled data " ,
required = True ,
)
parser . add_argument (
" -z " , " --compress " , action = " store_true " , help = " Enable gzip compression "
)
2022-04-13 14:08:55 +02:00
args = parser . parse_args ( )
logging . basicConfig ( level = max ( ( 10 , 20 - 10 * args . verbose ) ) )
log = logging . getLogger ( " ola_post " )
log . info ( " Starting sws -> olaFlow converter " )
2022-05-03 11:13:27 +02:00
out = args . output
2022-04-14 12:37:42 +02:00
out . mkdir ( parents = True , exist_ok = True )
2022-04-13 14:08:55 +02:00
2022-05-03 11:13:27 +02:00
olaflow_root = args . input
2022-04-13 14:08:55 +02:00
model = OFModel ( olaflow_root )
model . read_mesh ( )
model . read_time ( )
2022-05-03 10:46:06 +02:00
2022-04-13 14:08:55 +02:00
model . read_field_all ( " alpha.water " )
model . read_field_all ( " porosity " )
model . read_field_all ( " p " )
model . read_field_all ( " p_rgh " )
model . read_field_all ( " U " )
2022-05-03 10:46:06 +02:00
model . read_post ( " graphUniform " , " alpha.water " )
2022-05-03 11:13:27 +02:00
with (
gzip . open ( out . joinpath ( " pickle.gz " ) , " wb " )
if args . compress
else out . joinpath ( " pickle " ) . open ( " wb " )
) as f :
2022-04-13 14:08:55 +02:00
pickle . dump ( model , f )