Coder Social home page Coder Social logo

stevedoyle2 / pynastran Goto Github PK

View Code? Open in Web Editor NEW
374.0 374.0 145.0 136.57 MB

A Python-based interface tool for Nastran's file formats

License: Other

Python 87.92% Shell 0.01% C++ 0.02% MATLAB 0.01% Batchfile 0.01% Assembly 1.11% TeX 0.16% Perl 0.01% Gnuplot 6.36% Jupyter Notebook 1.76% GLSL 0.04% POV-Ray SDL 0.17% HTML 2.44% NASL 0.01%
fea nastran python

pynastran's People

Contributors

arne182 avatar benvb-97 avatar buran1988 avatar dependabot[bot] avatar fmamitrotta avatar gypaets avatar hurlei avatar josiahlund avatar jpdeslich avatar jtran10 avatar luzpaz avatar mjredmond avatar mredaero avatar msegade avatar nilswagner avatar saravananm21 avatar saullocastro avatar stevedoyle2 avatar timryanb avatar vsdsantos avatar watkinrt 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  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  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

pynastran's Issues

refactor BDF Card parsing

it is NOT as robust as it SHOULD be...
there are too many while try-except blocks...

also support include files while you're at it...

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 9:14

add spc/mpc object

What is the new feature/capability that you'd like?
spc/mpc (constraint) object similar to the case control object

Why is it useful?
spcs are required from a variety of sources

List a sample API for the new functionality:
spcs = mesh.getSPCs(spcID)  # gets all the SPCs referenced by the case control 
deck
mpcs = mesh.getMPCs(mpcID)  # gets all the MPCs referenced by the case control 
deck


Any other requirements on the functionality?
make an object that has all the constraints that are unreferenced

Original issue reported on code.google.com by mesheb82 on 24 Oct 2011 at 10:29

stress/strain is different depending on the sortCode

sortCode comes from the tableCode and can have 8 different values.

Assuming a CQUAD4, there are 8 different output variables that the element can 
have.  For example, von mises stress may be replaced with max shear.  The 
outputs could go into different objects, but that would get confusing and it'd 
be difficult to manage.  Come up with a better idea....

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:11

handle skipping GEOM1-type tables

skipping tables that are formatted like a GEOM1 table with buffers are 
problematic.  examples include GEOM1, GEOM2, DYNAMIC

Original issue reported on code.google.com by mesheb82 on 27 Nov 2011 at 11:15

skip the executive control or case control deck if they dont exist

What is the new feature/capability that you'd like?
read BDFs that dont have executive or case control decks without any special 
user input


Any other requirements on the functionality?
some cards are in the case control deck and the bulk data deck, so just using 
the name of the card isnt necessarily good enough
examples

SUPO/SUPORT/SUPORT1
SPC
LOAD
PARAM
MPC
SET
TSTEP
TSTEPNL
GUST
FREQ but not FREQUENCY

Original issue reported on code.google.com by mesheb82 on 21 Oct 2011 at 6:37

write an op2

a user requested this

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 6:23

CORD2R & CORD2S reading/writing

note that as the coord cards are required to support GRID cards, the ability to 
write a point (arbitrary) or GRID card in an alternate coordinate system *(any) 
must be supported.

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:28

multiline cards are processed improperly

FLFACT       751    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75

becomes

FLFACT       751     .75     .75     .75     .75     .75     .75     .75
             .75     .75     .75     .75     .75     .75    0.75     .75
             .75     .75     .75     .75    0.75     .75     .75     .75
             .75     .75    0.75     .75     .75     .75     .75     .75
            0.75     .75     .75     .75     .75     .75     .75     .75
             .75

it goes from 50 entries to 40 entries

when it gets saved, it also leaves behind (which would error the BDF):
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 9:01

support writing THRU syntax

the THRU syntax is used in nastran and patran.  the function should have inputs:
1.  list of node IDs (or other generic IDs)
2.  the maximum allowable dNode (node2-node1).  default=None (unbounded)

The default would be 1, but then it's a pain to use it with patran-style syntax.

Original issue reported on code.google.com by mesheb82 on 30 Oct 2011 at 2:06

verify little endian-ness for Linux/Mac machines

I thought the endian for Intel/AMD processors are only little endian < format 
and by default read little endian format.  The other assumption which may not 
be true is a file created on Linux may be read on Windows (e.g. the system has 
more memory), but does Nastran (or other solver) change the endian-ness 
depending on the OS?

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:03

op2 reading

What is the new feature/capability that you'd like?
Op2 reading

desired features (tables with desired data is indicated:
 - pshell stress - OES1X1
 - pshell strain - OSTR1X
 - pcomp stress - OES1C
 - pcomp strain - OSTR1C
 - displacement / temperature - OGPFB1, OQG1 (why are there 2 ???)
 - spc forces - OUGV1
 - heat flux / temperature gradient - OEF1X

Any other requirements on the functionality?
it *REQUIRES* little endian < format

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 7:27

document theory for solver

The documentation should be put on the wiki site. This will aide users when 
trying to learn about solving a FEM and the eventual person who implements the 
code for the mass & stiffness matricies. The first priority is to solve 
{F}=k{x} so only the stiffness matrix is currently required.

This can be put on the wiki pages under Theory_CARDNAME

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:23

Subversion can commit due to "Could not read response body: Secure connection truncated"

This is one of those project ending bugs...not being able to commit

Short Version:
You have too much shit in a sub-directory of the project (probably stuff that 
isn't/shouldn't be committed, so it takes too long and flips out.

Long Version:
http://subversion.apache.org/faq.html#secure-connection-truncated

Why am I getting an error saying "Could not read response body: Secure 
connection truncated" when doing a checkout from Apache?

In short, this error is representative of a class of problems which can occur 
when Apache erroneously believes that your Subversion client is no longer 
tending to the network connection it has made with Apache. Other error messages 
have been reported in similar circumstances, depending on whether or not SSL 
was in use for the connection, or when exactly Apache decided that the 
connection should be terminated.

The Subversion client tries to keep working copies in a sane state at all 
times. One way it does this during checkouts is by squirreling away the 
pristine versions of checked-out files until all the files and subdirectories 
for a given directory have been fetched. Once all the data for a directory has 
been downloaded, the client "finalizes" that directory, copying the pristine 
versions of files out into the working area, diddling administrative data, and 
so on. While this directory finalization is happening, the client is focused on 
that task and is not tending to the checkout network stream. Sometimes — 
typically in situations where a versioned directory contains an abnormally 
large number of files, or a bunch of abnormally large files — the client can 
spend so much time finalizing a directory (and ignoring the network stream) 
that Apache thinks the client has gone away for good, so Apache terminates the 
connection. When the client finally turns its attention back to the network 
stream, it finds that the server has given up on the connection, and it reports 
this as an error.

One workaround for this situation is to increase the amount of time Apache is 
willing to wait for a client to prove it is still listening to the network 
stream. You do this by adjusting upward the Apache Timeout configuration value. 
You are encouraged, however, to evaluate your data set. If having a huge number 
of files in a single directory is causing problems for you during checkouts, 
there is some chance that it will cause additional problems elsewhere, too. If 
it is possible for you to split your collection of files up into a few 
subdirectories with smaller file counts, this could prove universally 
beneficial.

Original issue reported on code.google.com by mesheb82 on 3 Nov 2011 at 6:29

parse the THRU-EXCLUDE syntax

this is on many cards including SET, SPOINT, etc.

1,THRU,10,EXCLUDE,5,6,11 = 1,2,3,4,7,8,9,10,11
so EXCLUDE works on all the nodes until one that's out of range of the THRU 
field

reading is definitely required, writing is less important, and *DOESNT* require 
THRU, and definitely not the EXCLUDE

Original issue reported on code.google.com by mesheb82 on 21 Oct 2011 at 7:46

PBEAM3 reading/writing

add card

Original issue reported on code.google.com by mesheb82 on 26 Oct 2011 at 6:06

CBEAM default on field 8

CBEAM field 8 lists 2 defaults
early in the QRG says bit=0.0 is the default, later it says offt='GGG' is...

Original issue reported on code.google.com by mesheb82 on 3 Nov 2011 at 7:00

improve makeDocumentation.py script

improve makeDocumentation.py script to:

1.  find out where python is installed and update the Doxygen file
2.  verify that doxygen is installed

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 7:07

add testing BDFs

the code needs testing

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:20

add CONROD to Op2

it goes in the OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:04

parse executive control deck into object

What is the new feature/capability that you'd like?
see summary

Why is it useful?
it tells you what solution you're running

List a sample API for the new functionality:
executiveDeck = mesh.getExecutiveDeck()

# assume solution 200 made up of sol 101 and sol 103
(200) = executiveDeck.getSolution()
(101,103) = executiveDeck.getSubcaseSolutions()

executiveDeck.setSolution(200)
executiveDeck.setSubcaseSolution(144,145)

executiveDeck.addLine('ALTER,1,2,3')

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 8:51

add CQUAD8 to OP2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:05

add CBEAM to Op2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:06

add CTRIA6 to OP2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:05

case control editing & accessing methods

What is the new feature/capability that you'd like?
(1) case control editing & (2) accessing methods

Why is it useful?
1.  so you can create a new case control deck (e.g. split/combine a solution 
200)
2.  so you can find out what the Global options are for use in Subcase 1, or 2, 
etc...

List a sample API for the new functionality:
mesh.AddParameterToGlobalSubcase('ECHO = OFF')
mesh.AddParameterToGlobalSubcase('STRESS(PLOT) = ALL')

# same result
mesh.AddParameterToLocalSubcase(subcase=1,'SET 1 = 1,2,3,4,4,5,6,\n20,30')
mesh.AddParameterToLocalSubcase(subcase=1,'SET 1 = 1,2,3,4,4,5,6,20,30')


set1    = mesh.GetSubcaseParameter(subcase=0,'SET',id=1)
stress1 = mesh.GetSubcaseParameter(subcase=1,'STRESS')

NOTE:
set1    = '1,2,3,4,4,5,6,20,30'
stress1 = (  ALL,[PLOT]  )

ALSO:
helps maintainability by not requiring someone to hack the case control to get 
it to handle a special case

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 8:45

Support Executive Control INCLUDE files

Include files can contain include files.  Also BOTH bulk data and case control 
decks (dunno about executive control, but probably), can contain include files.

Although not the same as Nastran, support both the Windows or Linux standard of 
line endings.

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 2:22

Add methods to echo BDF

What is the new feature/capability that you'd like?
(1) ability to echo deck 
(2) ability to "parse" all cards in the bdf without setting any defaults

Why is it useful?
developer testing

List a sample API for the new functionality:
feature 1 - removes comment lines, *WILL* work with include files
{{{
mesh = BDF(infileName)
mesh.echoDeck(outfileName)  # just set cardsToInclude to []
}}}

feature 2 - leaves the format of the card exactly the same as it came in 
(preferably)
{{{
# assume cardsToInclude = [GRID, CQUAD4] and all 3 cards are interspersed
#input
GRID,1
CQUAD4,2
NEWCARDX,3
GRID,4
CQUAD4,5
NEWCARDX,6
GRID,7
CQUAD4,8
NEWCARDX,9
}}}
mesh = BDF(infileName) # has GRIDs, CQUAD4s, NEWCARDX
mesh.writeSortedDeck(outfileName)  
{{{
# output
GRID,1
GRID,4
GRID,7
CQUAD4,2
CQUAD4,5
CQUAD4,8
$REJECTS
NEWCARDX,3
NEWCARDX,6
NEWCARDX,9
}}}

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 4:31

mesh.read() method should return data

What is the new feature/capability that you'd like?
the "knowledge" of what deck the reader just finished reading and it it found 
it's ending card

Why is it useful?
supporting include files

List a sample API for the new functionality:
mesh = BDF()
('ExecutiveDeck',isDone) = mesh.read(fileName1)
('CaseControlDeck',isDone) = mesh.read(fileName2)
('BulkDataDeck',isDone) = mesh.read(fileName3)


Any other requirements on the functionality?


Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 4:35

CONM2 cid=0 support

The CONM2 is a very common card when making a beam/shell model.

The card already exists, but is not fully supported.  Add all the fields of the 
card.

Note that it *CAN* reference a coordinate ID and node ID.

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 7:02

add method to split/combine properties and materials

for a first ply failure code, one property/material is "spilt" into a new one 
for each element for each new degredation.  This creates excessive 
properties/materials.  Come up with a better method to degrade 
properties/materials

Original issue reported on code.google.com by mesheb82 on 6 Dec 2011 at 7:41

Case Control Deck reading/​writing

it's in work, but case control decks are not the same going in as coming out...

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 6:54

refactor main BDF reading

the FEM_Mesh.py file is a reasonable name if bdf.py didnt exist. bdf.py 
performs mainly card field writing and a better name is probably 
fieldWriter.py. This would then allow FEM_Mesh.py to be replaced with bdf.py 
(rename it).

Futhermore, FEM_Mesh_helper.py is a bad name, and should be split into multiple 
files. Maybe (with the existing approach (FEM_Mesh_addMethods, 
FEM_Mesh_cardBuilder, etc.). This could also be changed to bdf_addMethods, etc.)

Summary:
bdf.py -> fieldWriter.py
FEM_Mesh.py -> bdf.py
FEM_Mesh_helper.py -> bdf_helper.py
bdf_helper.py -> bdf_addMethods.py, bdf_deleteMethods.py, bdf_writeMethods.py, 
cardObject.py

-----------------------------
done:
bdf.py -> fieldWriter.py
FEM_Mesh_helper.py -> bdf_helper.py
bdf_helper.py -> BDF_Card.py

more to come!

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:18

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.