A surface writer for the Nastran file format - both surface mesh and fields. More...
Public Types | |
using | fieldFormat = Foam::fileFormats::NASCore::fieldFormat |
File field formats. More... | |
using | loadFormat = Foam::fileFormats::NASCore::loadFormat |
Output load format. More... | |
Public Member Functions | |
TypeNameNoDebug ("nastran") | |
Declare type-name, virtual type (with debug switch) More... | |
nastranWriter () | |
Default construct. Default SHORT format. More... | |
nastranWriter (const dictionary &options) | |
Construct with some output options. Default LONG format. More... | |
nastranWriter (const meshedSurf &surf, const fileName &outputPath, bool parallel=Pstream::parRun(), const dictionary &options=dictionary()) | |
Construct from components. More... | |
nastranWriter (const pointField &points, const faceList &faces, const fileName &outputPath, bool parallel=Pstream::parRun(), const dictionary &options=dictionary()) | |
Construct from components. More... | |
virtual | ~nastranWriter ()=default |
Destructor. More... | |
virtual bool | usesFaceIds () const |
Format uses faceIds as part of its output. More... | |
virtual fileName | write () |
Write surface geometry to file. More... | |
declareSurfaceWriterWriteMethod (label) | |
declareSurfaceWriterWriteMethod (scalar) | |
declareSurfaceWriterWriteMethod (vector) | |
declareSurfaceWriterWriteMethod (sphericalTensor) | |
declareSurfaceWriterWriteMethod (symmTensor) | |
declareSurfaceWriterWriteMethod (tensor) | |
template<class Type > | |
Foam::Ostream & | writeValue (Ostream &os, const Type &value) const |
template<class Type > | |
Foam::Ostream & | writeFaceValue (Ostream &os, const loadFormat format, const Type &value, const label elemId) const |
template<class Type > | |
Foam::fileName | writeTemplate (const word &fieldName, const Field< Type > &localValues) |
![]() | |
TypeName ("surfaceWriter") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, surfaceWriter, word,(),()) | |
declareRunTimeSelectionTable (autoPtr, surfaceWriter, wordDict,(const dictionary &writeOpts),(writeOpts)) | |
surfaceWriter () | |
Default construct. More... | |
surfaceWriter (const dictionary &options) | |
Default construct with specified options. More... | |
surfaceWriter (const meshedSurf &surf, bool parallel=Pstream::parRun(), const dictionary &options=dictionary()) | |
Construct from components. More... | |
surfaceWriter (const pointField &points, const faceList &faces, bool parallel=Pstream::parRun(), const dictionary &options=dictionary()) | |
Construct from components. More... | |
virtual | ~surfaceWriter () |
Destructor. Calls close() More... | |
virtual bool | enabled () const |
virtual bool | separateGeometry () const |
True if the surface format requires geometry in a separate file. More... | |
virtual bool | needsUpdate () const |
Does the writer need an update (eg, lagging behind surface changes) More... | |
virtual bool | wroteData () const |
Geometry or fields written since the last open? More... | |
virtual bool | expire () |
virtual void | clear () |
virtual void | setSurface (const meshedSurf &surf, bool parallel) |
virtual void | setSurface (const pointField &points, const faceList &faces, bool parallel) |
virtual void | setSurface (const meshedSurf &surf) |
virtual void | setSurface (const pointField &points, const faceList &faces) |
bool | hasSurface () const |
Writer is associated with a surface. More... | |
bool | empty () const |
The surface to write is empty if the global number of faces is zero. More... | |
label | size () const |
The global number of faces for the associated surface. More... | |
label | nFields () const |
The number of expected output fields. More... | |
label | nFields (const label n) |
Set the number of expected output fields. More... | |
bool | isPointData () const |
Are the field data to be treated as point data? More... | |
bool | isPointData (const bool on) |
Set handling of field data to face/point data. More... | |
bool | useTimeDir () const |
Should a time directory be spliced into the output path? More... | |
bool | useTimeDir (const bool on) |
Enable/disable use of spliced output path. More... | |
bool | verbose () const |
Get output verbosity. More... | |
bool | verbose (const bool on) |
Enable/disable verbose output. More... | |
scalar | mergeDim () const |
The current value of the point merge dimension (metre) More... | |
scalar | mergeDim (const scalar dist) |
Change the point merge dimension (metre) More... | |
bool | hasTime () const |
True if there is a known time. More... | |
const word & | timeName () const |
The current time value/name. More... | |
scalar | timeValue () const |
The current time value/name. More... | |
void | setTime (const instant &inst) |
Set the current time. More... | |
void | setTime (scalar timeValue) |
Set current time from timeValue, auto generating the name. More... | |
void | setTime (scalar timeValue, const word &timeName) |
Set current time from timeValue and timeName. More... | |
void | unsetTime () |
Clear the current time. More... | |
virtual void | beginTime (const Time &t) |
Begin a time-step. More... | |
virtual void | beginTime (const instant &inst) |
Begin a time-step. More... | |
virtual void | endTime () |
End a time-step. More... | |
virtual void | open (const fileName &outputPath) |
Open for output on specified path, using existing surface. More... | |
virtual void | open (const pointField &points, const faceList &faces, const fileName &outputPath, bool parallel) |
Open from components. More... | |
virtual void | open (const meshedSurf &surf, const fileName &outputPath, bool parallel) |
Open from components. More... | |
virtual void | open (const pointField &points, const faceList &faces, const fileName &outputPath) |
Open from components, with the current parallel/serial treatment. More... | |
virtual void | open (const meshedSurf &surf, const fileName &outputPath) |
Open from components, with the current parallel/serial treatment. More... | |
virtual void | close () |
Finish output, performing any necessary cleanup. More... | |
virtual fileName | write (const word &fieldName, const Field< label > &values)=0 |
Write field of label (per face or vertex) More... | |
virtual fileName | write (const word &fieldName, const Field< scalar > &values)=0 |
Write field of scalar (per face or vertex) More... | |
virtual fileName | write (const word &fieldName, const Field< vector > &values)=0 |
Write field of vector (per face or vertex) More... | |
virtual fileName | write (const word &fieldName, const Field< sphericalTensor > &values)=0 |
Write field of sphericalTensor (per face or vertex) More... | |
virtual fileName | write (const word &fieldName, const Field< symmTensor > &values)=0 |
Write field of symmTensor (per face or vertex) More... | |
virtual fileName | write (const word &fieldName, const Field< tensor > &values)=0 |
Write field of tensor (per face or vertex) More... | |
virtual InfoProxy< surfaceWriter > | info () const |
Return info proxy. More... | |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | mergeFieldTemplate (const Field< Type > &fld) const |
Additional Inherited Members | |
![]() | |
static bool | supportedType (const word &writeType) |
True if New is likely to succeed for this writeType. More... | |
static autoPtr< surfaceWriter > | New (const word &writeType) |
Return a reference to the selected surfaceWriter. More... | |
static autoPtr< surfaceWriter > | New (const word &writeType, const dictionary &writeOptions) |
Return a reference to the selected surfaceWriter. More... | |
![]() | |
static scalar | defaultMergeDim = 1e-8 |
The default merge dimension (1e-8) More... | |
![]() | |
bool | checkOpen () const |
Verify that the outputPath_ has been set or FatalError. More... | |
virtual bool | merge () const |
const meshedSurf & | surface () const |
template<class Type > | |
tmp< Field< Type > > | mergeFieldTemplate (const Field< Type > &fld) const |
Gather (merge) fields with renumbering and shrinking for point data. More... | |
tmp< Field< label > > | mergeField (const Field< label > &fld) const |
tmp< Field< scalar > > | mergeField (const Field< scalar > &fld) const |
tmp< Field< vector > > | mergeField (const Field< vector > &fld) const |
tmp< Field< sphericalTensor > > | mergeField (const Field< sphericalTensor > &fld) const |
tmp< Field< symmTensor > > | mergeField (const Field< symmTensor > &fld) const |
tmp< Field< tensor > > | mergeField (const Field< tensor > &fld) const |
template<class Type > | |
fileName | writeTemplate (const word &fieldName, const Field< Type > &localValues) |
Dummy templated write operation. More... | |
![]() | |
std::reference_wrapper< const meshedSurf > | surf_ |
Reference to a surface. More... | |
meshedSurfRef | surfComp_ |
Reference to raw surface components. More... | |
bool | useComponents_ |
Use raw surface components instead of surface reference. More... | |
bool | upToDate_ |
The topology/surface is up-to-date? More... | |
bool | wroteGeom_ |
Track if geometry has been written since the last open. More... | |
bool | parallel_ |
Writing in parallel (via master) More... | |
bool | useTimeDir_ |
Insert additional time sub-directory in the output path. More... | |
bool | isPointData_ |
Is point vs cell data. More... | |
bool | verbose_ |
Additional output verbosity. More... | |
label | nFields_ |
The number of fields. More... | |
scalar | mergeDim_ |
Dimension for merging. More... | |
mergedSurf | merged_ |
Merging information and the resulting merged surface (parallel) More... | |
instant | currTime_ |
The current time value/name. More... | |
fileName | outputPath_ |
The full output directory and file (surface) name. More... | |
![]() | |
static const meshedSurf::emptySurface | emptySurface_ |
Placeholder. More... | |
A surface writer for the Nastran file format - both surface mesh and fields.
The formatOptions for nastran:
Property | Description | Required | Default |
---|---|---|---|
fields | field pairs for PLOAD2/PLOAD4 | yes | |
format | short / long / free | no | long |
scale | output geometry scaling | no | 1 |
fieldScale | output field scaling (dictionary) | no | empty |
commonGeometry | use separate geometry files | no | false |
For example,
formatOptions { nastran { // OpenFOAM field name to NASTRAN load types fields ( (pMean PLOAD2) (p PLOAD4) ); format free; // format type scale 1000; // [m] -> [mm] fieldScale { "p.*" 0.01; // [Pa] -> [mbar] } } }
The rootdir
normally corresponds to something like postProcessing/<name>
rootdir `-- <time> |-- surfaceName0.{nas} `-- surfaceName1.{nas}
rootdir `-- <time> `-- field0 | |-- surfaceName0.{bdf} | `-- surfaceName1.{bdf} `-- field1 |-- surfaceName0.{bdf} `-- surfaceName1.{bdf}
Definition at line 149 of file nastranSurfaceWriter.H.
File field formats.
Definition at line 156 of file nastranSurfaceWriter.H.
Output load format.
Definition at line 159 of file nastranSurfaceWriter.H.
nastranWriter | ( | ) |
Default construct. Default SHORT format.
Definition at line 354 of file nastranSurfaceWriter.C.
|
explicit |
Construct with some output options. Default LONG format.
Definition at line 367 of file nastranSurfaceWriter.C.
References NASCore::loadFormatNames, and dictionary::readEntry().
nastranWriter | ( | const meshedSurf & | surf, |
const fileName & | outputPath, | ||
bool | parallel = Pstream::parRun() , |
||
const dictionary & | options = dictionary() |
||
) |
Construct from components.
Definition at line 408 of file nastranSurfaceWriter.C.
nastranWriter | ( | const pointField & | points, |
const faceList & | faces, | ||
const fileName & | outputPath, | ||
bool | parallel = Pstream::parRun() , |
||
const dictionary & | options = dictionary() |
||
) |
Construct from components.
Definition at line 422 of file nastranSurfaceWriter.C.
References points.
|
virtualdefault |
Destructor.
TypeNameNoDebug | ( | "nastran" | ) |
Declare type-name, virtual type (with debug switch)
|
inlinevirtual |
Format uses faceIds as part of its output.
Reimplemented from surfaceWriter.
Definition at line 290 of file nastranSurfaceWriter.H.
|
virtual |
Write surface geometry to file.
Implements surfaceWriter.
Definition at line 438 of file nastranSurfaceWriter.C.
References Foam::endl(), fileName::ext(), Foam::Info, Foam::isDir(), UPstream::master(), Foam::mkDir(), Foam::nl, os(), fileName::path(), NASCore::setPrecision(), timeName, and writeGeometry().
declareSurfaceWriterWriteMethod | ( | label | ) |
declareSurfaceWriterWriteMethod | ( | scalar | ) |
declareSurfaceWriterWriteMethod | ( | vector | ) |
declareSurfaceWriterWriteMethod | ( | sphericalTensor | ) |
declareSurfaceWriterWriteMethod | ( | symmTensor | ) |
declareSurfaceWriterWriteMethod | ( | tensor | ) |
Foam::Ostream& writeValue | ( | Ostream & | os, |
const Type & | value | ||
) | const |
Definition at line 38 of file nastranSurfaceWriterImpl.C.
References os(), and Foam::setw().
Foam::Ostream& writeFaceValue | ( | Ostream & | os, |
const loadFormat | format, | ||
const Type & | value, | ||
const label | elemId | ||
) | const |
Definition at line 70 of file nastranSurfaceWriterImpl.C.
References Foam::component(), format(), Foam::mag(), Foam::nl, and os().
Foam::fileName writeTemplate | ( | const word & | fieldName, |
const Field< Type > & | localValues | ||
) |
const bool geomChanged = (!upToDate_);
Definition at line 143 of file nastranSurfaceWriterImpl.C.
References Foam::endl(), Foam::MatrixTools::equal(), fileName::ext(), f(), meshedSurf::faceIds(), meshedSurf::faces(), forAll, format(), found, Foam::Info, Foam::isDir(), Foam::max(), Foam::mkDir(), fileName::name(), Foam::nl, os(), fileName::path(), meshedSurf::points(), UList< T >::size(), timeName, Foam::HashTableOps::values(), WarningInFunction, Foam::vtk::write(), writeGeometry(), and Foam::Zero.