Skip to content

theScriptingEngineer/Buckling

Repository files navigation

Buckling for FEA

app_async3

This script prepares all requests first and then call them all async.

pyuff

Python package to read and write universal files

Steps:

  1. Read universal file
  • This universal file contains element-nodal stress results for each subcase
  • This universal file contains an elemental thickness result for each shell element
  • Starting from pyUFF and adding functionality to
    • 2429 groups to select the elements to be analyzed
    • 2414(results) to read stress and thickness
  1. Read the buckling definitions
  • Format of the file is JSON. Should remain in line with bucklingAPI
  • Contains extra entries:
    • Group name or number, preferrably name, but exit if multiple groups with the same name exist
    • Array of loadcases to be analyzed, using name, but exit if multiple results with the same name exist
    • Longitudinal direction vector in global coordinate system
    • Transverse direction vector in global coordinate system, needs to be orthoginal to longitudinal
  1. For each buckling definition
  • Check if group is present in universal file
  • Check if transverse direction is orthogonal to longitudinal, if not within limits exit.
  • Check if results for the loadcases are present
  • Check if thickness is present as a result
  • Loop over the load cases
    • Loop over the elements in the group
      • Get the element thickness
      • Get the stress of the element
      • Loop over the nodes
        • Get the average of top and bottom (ok for buckling)
        • Transform stress along a longitudinal and a transverse
        • Perform buckling calculation
        • Keep largest unity checks
        • Modified puyff to also handle FEA universal files where analysis_type is 1: static Implemented Data at nodes, data on elements and data at nodes on elements the in-development version can be used via pip3 install -e ../pyuff/. Make sure you are in .venv!
      • Write to result as elemental 6-dof (plate check, stiffener check, local buckling check)
  • Each loadcase in each buckling definition creates a result, because you can run the same group with different stiffeners to test or different factors

Things to know

  • Use SI units
  • Stresses in the universal file are supposed to be in Pa
  • Element thickness as a result needs to be in meter
  • Inputs in the buckling input file are in meter and Pa
  • To only check plate: define stiffener as "None" (maybe good practice to also set all properties to 0, but not required)

TODO

  • Implement name for the buckling check, which is then returned in the result
  • Add a check to see if api is responding
  • Add option for different pressure on stiffener and plate side.

Validation

  • Plate buckling has been checked with stresses in xx, yy, xy where the orientation is such that xx is long and yy is transverse
  • Plate buckling has been checked with stresses in zz where the orientation is such that zz is long
  • Plate buckling has been checked with stresses in xz where the orientation is such that zz is long and xx is transverse (thus pure shear)
  • Plate buckling has been checked with stresses in yz where the orientation is such that zz is long and yy is transverse (thus pure shear)

exe

Create exe with pyinstaller and using the spec file iso adding all options on the command line. Specifics are

  • The inclusion of helper_classes.py, universalFile.py, assemble_result.py
  • The import of pydantic, pyjwt, keyring Special attention to jwt!! It is pip install pyjwt, but uses "import jwt" in the code. Therefore need 'jwt' in the spec file. but cannot have JWT installed, because we are usin pyjwt!!!!
pip install pyinstaller
pyinstaller buckling.spec

protobuf

downloaded release from github (zip) and extracted in /home/frederik/.local the run via: /home/frederik/.local/bin/protoc --proto_path=. --python_out=. ./buckling_input.proto

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors