Source code for capytaine.ui.cli

#!/usr/bin/env python
# coding: utf-8
"""Experimental command-line interface for Capytaine."""
# Copyright (C) 2017-2019 Matthieu Ancellin
# See LICENSE file at <https://github.com/mancellin/capytaine>

import argparse
import logging
import os

from capytaine.io.legacy import import_cal_file, write_dataset_as_tecplot_files
from capytaine.io.xarray import assemble_dataset
from capytaine.bem.solver import BEMSolver

logging.basicConfig(level=logging.INFO,
                    format="%(levelname)s:\t%(message)s")

LOG = logging.getLogger(__name__)

parser = argparse.ArgumentParser(description="Command-line interface for the BEM solver Nemoh.")
parser.add_argument('paramfiles',
                    default=['./Nemoh.cal'],
                    nargs='*',
                    help='path of parameters files (default: ./Nemoh.cal)')


[docs]def main(): args = parser.parse_args() for paramfile in args.paramfiles: problems = import_cal_file(paramfile) solver = BEMSolver() results = [solver.solve(pb) for pb in problems] data = assemble_dataset(results) print(data) results_directory = os.path.join(os.path.dirname(paramfile), 'results') try: os.mkdir(results_directory) except FileExistsError: LOG.warning("The 'results' directory already exists. You might be overwriting existing data.") LOG.info("Write results in legacy tecplot format.") write_dataset_as_tecplot_files(results_directory, data)
if __name__ == '__main__': main()