Source code for pyNastran.converters.abaqus.rpy_writer

import os

#from ??? import write_include

[docs] def write_rpy_file(fname_model, jobname, fname_user_subroutine=None, include=None): if fname_user_subroutine is None: fname_user_subroutine = '' model_name = os.path.basename(fname_model).rsplit('.', 1)[0] nprocessors = 1 lines = ['from abaqus import *\n', 'from abaqusConstants import *\n', 'session.Viewport(name="Viewport: 1", origin=(0.0, 0.0), width=300.0, height=100.0)\n' 'from caeModules import *\n', 'from driverUtils import executeOnCaeStartup\n', 'executeOnCaeStartup()\n', 'Mdb()\n', 'mdb.Model(name="%s",modelType=STANDARD_EXPLICIT)\n' % (model_name), 'a = mdb.models["%s"].rootAssembly\n' % (model_name), 'mdb.models["%s"].setValues(noPartsInputFile=ON)\n' % (model_name), 'import job\n', 'mdb.models["%s"].keywordBlock.synchVersions(storeNodesAndElements=False)\n' % (model_name)] if include is not None: include_lines = 'r"""\n' #for fname in include: #include_lines += write_include(fname) include_lines += '"""' lines.append('mdb.models["%s"].keywordBlock.insert(0, %s)\n' % (model_name, include_lines)) indent = ' ' lines.extend(['mdb.Job(name="%s", model="%s",\n' % (jobname, model_name), '%sdescription="", type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0,\n' % (indent), '%squeue=None, memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,\n' % (indent), '%sexplicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=ON,\n' % (indent), '%smodelPrint=ON, contactPrint=ON, historyPrint=ON,\n' % (indent), '%suserSubroutine=r"%s",\n' % (indent, fname_user_subroutine), '%sscratch="", resultsFormat=ODB, parallelizationMethodExplicit=DOMAIN,\n' % (indent), '%snumDomains=1, activateLoadBalancing=False, multiprocessingMode=DEFAULT,\n' % (indent), '%snumCpus=%i)\n' % (indent, nprocessors), 'mdb.jobs["%s"].submit(consistencyChecking=OFF)\n' % (jobname), 'import sys\n', 'sys.exit()\n']) return lines
[docs] def cmd_line(): from docopt import docopt msg = 'Usage:\n' msg += 'spawn_abaqus MODEL_INP JOBNAME [--rpy RPY_FILENAME] [--user USER]\n' #msg += 'spawn_abaqus MODEL_INP JOBNAME [--rpy RPY_FILENAME] [--user USER] [--include INC]...\n' msg += '\n' msg += 'Positonal Arguments:\n' msg += ' MODEL_INP the abaqus.inp file\n' msg += ' JOBNAME the job name\n' msg += '\n' msg += 'Options:\n' msg += ' --user USER defines a user subroutine\n' msg += ' --rpy RPY_FILENAME defines the rpy file to write\n' from pyNastran import version data = docopt(msg, version=version) model = data['MODEL_INP'] jobname = data['JOBNAME'] user = data['--user'] rpy_filename = data['--rpy'] if rpy_filename is None: rpy_filename = jobname + '.rpy' lines = write_rpy_file(model, jobname, fname_user_subroutine=None, include=None) with open(rpy_filename, 'w') as rpy: rpy.writelines(lines) print('rpy_filename =', rpy_filename)
if __name__ == '__main__': #pragma: no cover cmd_line()