Coder Social home page Coder Social logo

nastran_cofe's Introduction

Nastran Compatible Finite Elements (CoFE)

Nastran Compatible Finite Elements (CoFE) is a finite element solver for structural analysis and optimization. CoFE is an open-source program implemented using object-oriented MATLAB.

How CoFE Works

The process flow is illustrated below. CoFE reads inputs from a Nastran-format input file, solves the specified analysis cases, creates a MATLAB workspace variable containing model and solution data, writes a human-readable text output file, and optionally writes an MSC Nastran-format HDF5 output file.

CoFE is NOT a wrapper for Nastran. It is an independent solver that clones a subset of commercial-Nastran capabilities.

Documentation

See CoFE's Getting Started page to get going. CoFE's documentation website is automatically generated from source files in the /docs directory. All CoFE input entry formats are documented in the Quick Reference Guide section of the website. CoFE supports a subset of commercial-Nastran input data, and some CoFE-supported input entries have reduced functionality. Users who are unfamiliar with finite element analysis or Nastran can review a commercial-Nastran Getting Started User's Guide.

Pre/Post Processing

Because the input format is Nastran-compatible, preprocessors intended for Nastran can be used to prepare CoFE models. There are too many preprocessor options to list them all, but examples include PATRAN, Femap, and Gmsh. CoFE writes MSC Nastran-format HDF5 output files (other commercial Nastran versions have independent HDF5 output formats with incompatible schemas). MSC HDF5 format can be postprocessed using PATRAN. Femap support for MSC HDF5 format is in-work according to developers.

nastran_cofe's People

Contributors

vtpasquale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nastran_cofe's Issues

Enforced displacements modification

Change the system for enforced displacements so that any nonzero enforced displacements must be specified using an SPCD bulk data entry. This will link the enforced displacement ID number to the load set ID and not the constraint set ID. Nonzero enforced displacements will be disallowed on SPC entries. This will simplify things now and will be a better approach when expanding to dynamic analysis in the future.

CoFE Output/Input Data Files in HDF5 format

This will be a longer-term enhancement. I don't have immediate plans to implement this. HDF5 is a binary format that is easily writable, readable, and digestible using Matlab built-in tools.

Recent versions of both MSC and NX Nastran support HDF5 formatted output (I expect they use different formatting rules). Patran 2017+ can read HDF5 formatted MSC Nastran output. Femap does not yet read HDF5 formatted output, but it's seems like it may a likely possibility for the future.

Open questions:

  • How different are the MSC and NX Nastran HDF5 formatting rules?
  • Can MSC Patran can read NX Nastran generated HDF5 output? This seems very unlikely to me. FYI I'm primarily a Femap/NX Nastran user.
  • Does anyone know if/when Femap will support HDF5 output?

Obsolete syntax used for defining class property types.

Most of the source was developed in MATLAB 2016b. Obsolete syntax is used for defining class property types. The syntax is disallowed after MATLAB 2021. The code needs to be updated to the new property validation syntax to work in new MATLAB versions – this will break the code in older MATLAB versions.

Implement single-level PART superelements

Using residual flexibility mixedboundary (RFMB) method, which is a generalization of both the Hurty/Craig–Bampton method and Rubin method.

Minimal support as a building block for .op4-style external superelements.

Supported entries:
SEBULK
SECONCT

Implement .op4-style external supplements

Building on part superelements. Allow for external superelements generated by commercial Nastran.

Requires:
File management entries: Assign Output4, Assign Input4
Case entry: EXTSEOUT
Bulk entry: EXTRN (Part superelement section)

Issue with non rectangular CQUAD4

Dear Anthony,

It seems to me that there might be an issue (or limitation) with the stiffness matrix of the cquad4 element. I have tested a case with structured rectangular matrix and results are ok compared to MSC Nastran. However, I have tested more distorted meshes and results become singular. Find attached a simple example.

Thanks for your work,
Issue_CQUAD4.txt
.

Determine feasibility of using MSC Patran for creating v5 system level test cases.

v5 isn't ready for system level testing. I'm still expecting major changes to the codebase. However, it would be useful to determine if MSC Patran can be used to generate some of the system level verification tests. I'm primarily a Femap user, so it would be useful to work with collaborators with better Patran skills.

The closest thing I have to system level tests scripts are the unit tests set up to check the new coordinate system functionality. Start by cloning the version5 branch of the repository. Run the suite of coordinate system unit tests by executing /unit_testing/coordinate_systems/run_test_cases.m, and confirm the tests are successful.

Take a look at the version5/unit_testing/coordinate_systems/test_displacements.m test script and get a feel for it. It is checking that nodal displacements expressed in both the basic (or 0) coordinate system and nodal displacement coordinate system (global or g, which can vary by node) match the Femap/NX Nastran results. In this case, I wrote two .csv files directly from Femap, which are then easily read using Matlab built-in functions.

Often times it might make sense to parse Nastran output files (such as .pch) directly. In other cases it makes sense to use the commercial postprocessor as an intermediary. I'm interested to see if the Patran Report format (RPT) or some other Patran export format can be use to create files that are easily readable using Matlab. Ultimately both node and element quantities will be required, so that will complicate things.

One starting point could be to simply reproduce the version5/unit_testing/coordinate_systems/test_displacements.m test case using Patran. Import truss_rand_coords.dat, solve using MSC Nastran, and see what useful export formats are available in Patran. Then add a test case that uses those files.

GRDSET enhancements

  • Check that at least one of the fields CP, CD, PS is specified.
  • Make sure useful errors are provided when a nonexistent coordinate system is specified for CP and CD.

Undocumented element energy HDF5 metadata

MSC includes undocumented metadata their element energy (strain/kinetic) HDF5 output. CoFE HDF5 output omits the undocumented metadata, and I believe Patran uses it, so this may lead to issues postprocessing element energy results in Patran. It may make sense to reverse engineer and include the undocumented metadata in CoFE HDF5 output.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.