libsurf
Programmer's Documentation

Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
NstRecord Class Reference

Detailed Description

A group of lines in a NASTRAN text file.

Each NstRecord represents a set of lines in a NASTRAN bulk data file, a output "print" file (.f06) or a "punch" file (.pch). These records are created by NstReader and NstRecord is responsible of parsing each of type and instantiate the corresponding objects, such as elements or data fields, inside a NstMesh object.

See Also
NstReader, Nstmesh

#include <nstrecord.h>

Public Member Functions

 NstRecord ()
 construct record with id and reader ref
 
void firstLine (uint i)
 set first line of record
 
void lastLine (uint i)
 add another line to record
 
void merge (const NstRecord &a)
 merge lines from another record
 
uint first () const
 index of the first line
 
uint last () const
 index of the last line
 
void id (NstRecordId i)
 access record id
 
NstRecordId id () const
 access record id
 
bool empty () const
 check if record is empty
 
uint size () const
 number of lines in this record
 
void clear ()
 clear lines and set id to undefined
 
void process (NstReader &rdr) const
 add elements to mesh, if any
 
bool mprocess (uint i, NstReader &rdr, bool ispunch) const
 add modeshape to mesh
 
void dprocess (NstReader &rdr, bool ispunch) const
 add displacement to mesh
 
void pkprocess (NstReader &rdr) const
 add flutter modes in modal subspace
 
void sigprocess (NstReader &rdr) const
 add stress results for supported element types
 
void readGrid (NstReader &rdr) const
 read grid point coordinates and gid
 
void dump (const NstReader &rdr, std::ostream &os) const
 

Static Public Member Functions

static bool gscan (const char *s)
 scan line for grid point
 
static NstRecordId toposcan (const char *s, bool ispunch=false)
 scan line for elements
 
static uint evscan (const char *s)
 scan for eigenvector header
 
static bool eigtablescan (const char *s)
 scan for eigenvector header
 
static bool pkzscan (const char *s)
 scan for flutter eigenvector header
 
static int subcasescan (const char *s)
 scan for subcase identifier
 
static double timescan (const char *s)
 scan for timestep identifier
 
static bool dspscan (const char *s, bool ispunch)
 scan for displacement header
 
static bool sigscan (const char *s, bool ispunch)
 scan for stress header
 

Private Member Functions

void readBeam (NstReader &rdr) const
 create CBEAM element
 
void readTria3 (NstReader &rdr) const
 create CTRIA3 element
 
void readTriaR (NstReader &rdr) const
 create CTRIAR element
 
void readTria6 (NstReader &rdr) const
 create CTRIA6 element
 
void readQuad4 (NstReader &rdr) const
 create CQUAD4 element
 
void readQuadR (NstReader &rdr) const
 create CQUADR element
 
void readQuad8 (NstReader &rdr) const
 create CQUAD8 element
 
void readHexa (NstReader &rdr) const
 create CHEXA element
 
void readTetra (NstReader &rdr) const
 create CTETRA element
 
void readConm2 (NstReader &rdr) const
 create CONM2 element
 
void readCmass2 (NstReader &rdr) const
 create CMASS2 element
 
void readCelas2 (NstReader &rdr) const
 create CELAS2 element
 
void readRbar (NstReader &rdr) const
 create RBAR element
 
void readRbe2 (NstReader &rdr) const
 create RBE2 element
 
void readCord2r (NstReader &rdr) const
 create new coordinate system
 
bool readPunchMode (uint mi, NstReader &rdr) const
 read eigenvector from punch file
 
bool readPrintMode (uint mi, NstReader &rdr) const
 read eigenvactor from .f06 file
 
void appendMode (Matrix &z, uint mi, NstReader &rdr, Real kg=0) const
 insert eigenmode into mesh
 

Private Attributes

NstRecordId rid
 typecode
 
uint lbegin
 line index : first and one-past last line
 
uint lend
 

The documentation for this class was generated from the following files:
Generated on Fri Dec 2 2022 03:03:16 for libsurf by   doxygen 1.8.5