Regular Expressions 101

Community Patterns

Extract Abaqus file/ Nastran file node number and mapped temperature or pressure value

0

Regular Expression
Python

r"
[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?
"
gm

Description

Process:

  1. Temperature/ pressure data generated by CFD software StarCCM+
  2. Temperature/ pressure data extracted during runtime by StarCCM+ in form of *.csv files
  3. Data extracted every x timesteps (x = integer value >= 1)
  4. Data mapping performed using "tabular data mapper" tool in StarCCM+. Algorithm used = least squares. This step is automated by using java. Care must be taken to select correct X, Y, Z label (use "SavedCoord [X]", "SavedCoord [Y]", "SavedCoord [Z]" if CFD simulation is transient AND has rotation/ translation/ morphing. Use "X", "Y", "Z" label otherwise)
  5. Mapping produces .png file and depending on input file extension (.inp/ *.dat/ *.nas/ *.bdf) produces data in corresponding output file extension. File name of mapped data is same as the input file name (with extension *.inp/ *.dat/ *.nas/ *.bdf) used for mapping - word MAPPED and file name of *.csv file used to map data is appended to the file name of the mapped data file.

Input file name = FOR_MAPPING_PRESSURE_toWettedTankSurface_shellElements_NASTRAN_noRenumberingPerformed.dat MAPPED file name = MAPPED_FOR_MAPPING_PRESSURE_toWettedTankSurface_shellElements_NASTRAN_noRenumberingPerformed_using_tankSloshing_forNVH_xyzInternal_Table_2.400000e-01.dat

Temperature mapping using *.inp file and *.csv file produces data whose format looks like 8243965,81.8897 8243965,-18.2857

Pressure mapping using *.inp file and *.csv file produces data whose format looks like 177842,P,-100588 177842,P,912598

Pressure mapping using *.dat/ *.nas/ *.bdf file and *.csv file produces data whose format looks like PLOAD4,105,5686,1.091300E+05,,,,, PLOAD4,105,5686,-1.912900E+05,,,,,

Keywords like "*DLOAD" and "TEMPERATURE" are ignored. This regular expression is able to extract the nodal number and the data (temperature/ pressure) value (positive or negative): [-+]?(\d+(.\d)?|.\d+)([eE][-+]?\d+)?

Submitted by anonymous - 5 years ago