遇见数据集

Nastran

收藏
Zenodo2026-08-17 更新2026-08-20 收录
官方服务:

资源简介:

program NastranGenerator; {$mode objfpc}{$H+} uses SysUtils, Classes; type TNode = record ID: Integer; X, Y, Z: Double; end; TElement = record ID: Integer; Node1, Node2, Node3, Node4: Integer; end; procedure GenerateNastranBulkData(const FileName: string); var ConfigFile: TextFile; Nodes: array[1..4] of TNode; Elem: TElement; begin // Define a simple single-element mesh (quadrilateral plate) Nodes[1].ID := 1; Nodes[1].X := 0.0; Nodes[1].Y := 0.0; Nodes[1].Z := 0.0; Nodes[2].ID := 2; Nodes[2].X := 1.0; Nodes[2].Y := 0.0; Nodes[2].Z := 0.0; Nodes[3].ID := 3; Nodes[3].X := 1.0; Nodes[3].Y := 1.0; Nodes[3].Z := 0.0; Nodes[4].ID := 4; Nodes[4].X := 0.0; Nodes[4].Y := 1.0; Nodes[4].Z := 0.0; Elem.ID := 1; Elem.Node1 := 1; Elem.Node2 := 2; Elem.Node3 := 3; Elem.Node4 := 4; AssignFile(ConfigFile, FileName); Rewrite(ConfigFile); // Write Nastran Bulk Data Deck format (fixed 8-column field layout) Writeln(ConfigFile, '$--- NASTRAN BULK DATA DECK GENERATED BY PASCAL ---'); Writeln(ConfigFile, 'ID PASCAL_FEM, MODEL'); Writeln(ConfigFile, 'SOL 101'); Writeln(ConfigFile, 'CEND'); Writeln(ConfigFile, 'BEGIN BULK'); // Write Grid Nodes (GRID card: ID, CP, X1, X2, X3, CD, PS, SEID) Writeln(ConfigFile, Format('GRID* %16d %16.6e%16.6e*', [Nodes[1].ID, Nodes[1].X, Nodes[1].Y])); Writeln(ConfigFile, Format('* %16.6e ', [Nodes[1].Z])); Writeln(ConfigFile, Format('GRID* %16d %16.6e%16.6e*', [Nodes[2].ID, Nodes[2].X, Nodes[2].Y])); Writeln(ConfigFile, Format('* %16.6e ', [Nodes[2].Z])); Writeln(ConfigFile, Format('GRID* %16d %16.6e%16.6e*', [Nodes[3].ID, Nodes[3].X, Nodes[3].Y])); Writeln(ConfigFile, Format('* %16.6e ', [Nodes[3].Z])); Writeln(ConfigFile, Format('GRID* %16d %16.6e%16.6e*', [Nodes[4].ID, Nodes[4].X, Nodes[4].Y])); Writeln(ConfigFile, Format('* %16.6e ', [Nodes[4].Z])); // Write Quad Element (CQUAD4 card) Writeln(ConfigFile, Format('CQUAD4 %8d%8d%8d%8d%8d%8d', [Elem.ID, 1, Elem.Node1, Elem.Node2, Elem.Node3, Elem.Node4])); // Material and Property Cards Writeln(ConfigFile, 'MAT1 1 2.0E11 0.3 '); Writeln(ConfigFile, 'PSHELL 1 1 0.01 1 '); Writeln(ConfigFile, 'ENDDATA'); CloseFile(ConfigFile); Writeln('Successfully generated Nastran input deck: ', FileName); end; begin GenerateNastranBulkData('plate_model.bdf'); end.

提供机构:
Zenodo
创建时间:
2026-08-17
二维码
社区交流群
二维码
科研交流群
商业服务