NuMRI/kalman/run_forward.py

43 lines
1.2 KiB
Python

''' Run a forward simulation.
Detects FractionalStep and Hyperelasticity from input files.
'''
from dolfin import parameters
import ruamel.yaml as yaml
import argparse
import logging
logging.getLogger().setLevel(logging.INFO)
parameters['form_compiler']['optimize'] = True
parameters['form_compiler']['cpp_optimize'] = True
parameters['form_compiler']['cpp_optimize_flags'] = ('-O3 -ffast-math '
'-march=native')
def get_forward_solver(inputfile):
''' Get forward solver from input file '''
with open(inputfile, 'r') as f:
options = yaml.load(f)
if 'fluid' in options:
from navierstokes import solver
elif 'material' in options:
parameters['form_compiler']['quadrature_degree'] = 6
from hyperelasticity import solver
return solver
def get_parser():
parser = argparse.ArgumentParser(
description='Run forward simulation',
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('inputfile', type=str, help='path to YAML input file')
return parser
if __name__ == '__main__':
inputfile = get_parser().parse_args().inputfile
solver = get_forward_solver(inputfile)
sol = solver.init(inputfile)
sol.solve()