Skip to main content
Ctrl+K

iVABS 0.8 documentation

Start

  • Download & Installation
    • Installation on Windows
    • Installation on Linux
    • Setup Python Environment
  • Quick Start
  • Tutorials
    • Carry out a single cross-sectional analysis
    • Optimization of spar web locations for desired properties
      • Running of The Tutorial
      • Problem Description
      • Cross-sectional Parameterization and Beam Properties
      • Optimization Formulation
      • Preparation of Input Files
        • Cross-section Main Input Template (uh60a_section.xml.tmp)
        • Material Database (material_database.xml)
        • Cross-section Airfoil Data (sc1095.dat)
        • Dakota Interface Scripts (interface.py)
        • Interface Arguments (interface_args.json)
        • Data Processing Functions (data_proc_funcs.py)
        • Dakota Input File (cs_tm_opt_soga.dakota)
    • Optimize the spar layup of a cross-section
    • Optimize the cross-section considering beam initial twist
    • Prepare a cross-sectional design template
  • Examples
    • Parameter study of a single cross-section
    • Single objective optimization of multiple cross-sections to match target beam properties
    • Multiple objective optimization of multiple cross-sections to match target beam properties

Guide

  • Guide to Main Input File
    • A Brief Introduction to YAML
    • Structural Design
    • Analysis Steps
    • Design Study
  • Parameterization of Composite Slender Structures
  • Custom script analysis step
  • Extensions
    • Link to Galaxy/RCAS

Reference

  • Cross-sectional Design Templates
    • Airfoil Box-spar Uniform
  • Beam Properties
  • Main Input Keywords
  • PreVABS Documentation
    • Download and Installation
    • How to Run PreVABS
    • Tutorial
    • Guide for Preparing Input Files
      • Coordinate systems
      • Geometry and shapes
      • Materials and layups
      • Components
      • Specifications for recovery
      • Other input settings
    • Examples
      • Box beam
      • Pipe
      • Circular tube
      • Channel
      • Airfoil (MH-104)
      • Airfoil (Recover)
      • UH-60A (Initial Failure Analysis)
    • Change log
    • Introduction to XML
    • References
  • .rst

Link to Galaxy/RCAS

Contents

  • Read the OML data (readRcasOml)
  • Read the property data (readRcasProp)
  • Read the load data (readRcasLoad)

Link to Galaxy/RCAS#

All functions below are in the module msgd.ms.rcas.

Read the OML data (readRcasOml)#

import msgd.ms.rcas as mmr
oml = mmr.readRcasOml('oml.dat')

Returned value of this function is a Python dictionary having the following data layout.

oml = {
    'fenode': fe_nodes,
    'aeronode': aero_nodes,
    'aeroseg': aero_segs,
    'airfoilinterp': airfoil_interp
}
oml['fenode']

Data block “FENODE”. A dictionary of structural nodal ID and coordinates: {id1: [x1, y1, z1], id2: [x2, y2, z2], ...}.

oml['aeronode']

Data block “AERONODE”. A dictionary of aerodynamic nodal ID and coordinates: {id1: [x1, y1, z1], id2: [x2, y2, z2], ...}.

oml['aeroseg']

Data block “AEROSEG”. A dictionary of aerodynamic segments.

{
    seg1_id: {
        'aero_nodes': [pnode_id, cnode_id],
        'chord': c,
        'airfoil': 'airfoil_name',
        'twist': t,
        'shear': s
    },
    seg2_id: {...},
    ...
}
oml['airfoilinterp']

Data block “AIRFOILINTERP”. A dictionary of radial location and airfoil name: {'r': [r1, r2, ...], 'airfoil': ['name1', 'name2', ...]}.

Read the property data (readRcasProp)#

import msgd.ms.rcas as mmr
prop = mmr.readRcasProp('prop.dat')

Returned value of this function is a Python dictionary having the following data layout.

prop = {
    'prop1_name': value,
    'prop2_name': {'x': [], 'y': []},
    'prop3_name': [],
    ...
}

Each key in this dictionary is the property name in the file (without the leading “!M “ characters), such as “BEA”, “BGJ”, etc. For the values, there are three types:

Scalar (prop['prop1_name']). There is only a single value corresponding to the property, such as ‘REFLENGTH’.

Mapping list (prop['prop2_name']). Most properties belong to this type. There are two columns in the data file. Key x stores the list of spanwise locations (first column), while y stores the list of property values (second column).

Others (prop['prop3_name']). The rest data blocks that do not belong to the previous two types, such as ‘BMISC’.

Read the load data (readRcasLoad)#

import msgd.ms.rcas as mmr
force, moment = mmr.readRcasLoad('force.csv', 'moment.csv')

Returned values of this function are Python dictionaries having the following data layout.

Note

force and moment have the same layout.

force = {
    'node_id': [],
    'case_1': {
        'x': [
            [a1, xn1, xn2, xn3, ...],
            [a2, xn1, xn2, xn3, ...],
            ...
        ],
        'y': [],
        'z': []
    },
    'case_2': {...},
    ...
}
node_id

This is a list of nodal IDs. They are parsed from the header of the file. ID is the number after the keyword ‘NODE’.

case_1, case_2, …

Case ID (first column) in the file.

x, y, z

Component (second column in the file) of the load. Each of them is a list of loads for all nodes but one azimuth angle. In other words, each item in the list corresponds to a row in the file.

For example, force['case_1']['x'][0] is [a1, xn1, xn2, xn3, ...], which means Fx at node 1 (xn), node 2 (xn2), node 3 (xn3) and so on for the first azimuth angle (a1), say 15 degrees.

previous

Extensions

next

Cross-sectional Design Templates

Contents
  • Read the OML data (readRcasOml)
  • Read the property data (readRcasProp)
  • Read the load data (readRcasLoad)

By Su Tian, Haodong Du, Fei Tao and Wenbin Yu

© Copyright 2022, Multiscale Structural Mechanics Group, Purdue University.