Source code for model_package.DNS_Abaqus.modify_input

import numpy as np
import os
import sys
import argparse
import inspect


[docs] def modify_input(input_file, output_file): '''Modify Abaqus input file to output 'COORD' at integration points :param str input_file: Relative or absolute path to Abaqus input (.inp) file. :param str output_file: Relative or absolute path to modified Abaqus input (.inp) file. ''' # read in data from original input file, replace relevant lines data = [] with open(input_file) as file: for line in file: if 'COORD, U' in line: new_line = line.replace('COORD, ', '') data.append(new_line) elif ('EVOL, IVOL, S' in line) and ('COORD' not in line): new_line = line + ', COORD\n' data.append(new_line) else: data.append(line) # Write newly formatted input file fin = open(output_file, 'wt') for line in data: fin.write(line) fin.close() return 0
def get_parser(): filename = inspect.getfile(lambda: None) basename = os.path.basename(filename) basename_without_extension, extension = os.path.splitext(basename) cli_description = "Modify Abaqus input file to output 'COORD' at integration points" parser = argparse.ArgumentParser(description=cli_description, prog=os.path.basename(filename)) parser.add_argument('-i', '--input-file', type=str, help="The Abaqus input file created by ``build_model.py``. ") parser.add_argument('-o', '--output-file', type=str, help="The modified Abaqus input file") return parser if __name__ == '__main__': parser = get_parser() args, unknown = parser.parse_known_args() sys.exit(modify_input(input_file=args.input_file, output_file=args.output_file))