Wie kann ich Datenbankfiles (DBsets) auf mehrere Files aufsplitten?

Um z.B. das Problem der vom Filesystem (z.B. Windows 32bit FAT - max. 2GB) vorgegebenen max. Datengröße zu umgehen, können mit folgenden Einträgen im Nastran-INPUT-File (im "Executive Control Cards"-Bereich) die Datenbankfiles auf mehrerer Dateien aufgesplittet werden:
 

Beispiel: Aufsplitten der .DBALL-Datei auf 5x2GB-Datein: DB1, DB2, DB3, DB4 und DB5

$
INIT DBALL LOGICAL=(DB1(2GB),DB2(2GB),DB3(2GB),DB4(2GB),DB5(2GB))
$
ASSIGN DB1='physical file name 1'
ASSIGN DB2='physical file name 2'
ASSIGN DB3='physical file name 3'
ASSIGN DB4='physical file name 4'
ASSIGN DB5='physical file name 5'
$

Anmerkung:
Mit ASSIGN kann nicht nur der Name definiert werden, es kann auch der Ort der einzelnen Dateien definiert werden. Dabei kann auch auf unterschiedlichen Laufwerke verweisen werden. So kann z.B. der erste Teil auf einer schnellen SSD-Festplatte liegen, die jedoch von der Speichergrößer oftmals sehr beschränkt sind. Erst wenn dieser Teil auf der schnellen SSD-Festplatte voll ist wird auf z.B. einer langsamen SATA2-Festplatte weiter geschrieben. Es sollte vermieden werden, die Datenbankfiles auf NFS-Filesystemen (Network File Systems) zu speichern, da die langen I/O-Zeiten zu extrem hohen Rechenzeiten führen.

Während der Nastran-Rechnung werden die einzelnen Datenbanken der Reihe nach gefüllt. Wird die maximale Datengröße des letzten Files während der Nastran-Rechnung überschritten wird der Job abgebrochen ("USER FATAL MESSAGE 1012" bzw. "USER FATAL MESSAGE 1221" ).

 

Beispiel: Aufsplitten der .SCRATCH-Datenbanken auf 3x50GB

$
INIT SCRATCH, 
LOGICAL=(SCRATCH1(50GB),SCRATCH2(50GB),SCRATCH3(50GB)),
SCR300=(SCR1(50GB),SCR2(50GB),SCR3(50GB))
$
ASSIGN SCRATCH1='nastran_job_xyz.scratch1', TEMP
ASSIGN SCRATCH2='nastran_job_xyz.scratch2', TEMP
ASSIGN SCRATCH3='nastran_job_xyz.scratch3', TEMP
$
ASSIGN SCR1='nastran_job_xyz.scr1',TEMP
ASSIGN SCR2='nastran_job_xyz.scr2',TEMP
ASSIGN SCR3='nastran_job_xyz.scr3',TEMP
$

Anmerkung:
Mit dem Eintrag TEMP werden die .SCRATCH-Dateien nach Beendigung der Nastran-Rechnung gelöscht.

 

Anwendungsbeispiel:

$$-----------------------------------------------------$
$$-----------------------------------------------------$
$$        Executive Control Cards                                  $
$$-----------------------------------------------------$
$
$
$$ AUFSPLITTEN VON DBALL U. SCRATCH AUF JE Z.B. 3x100GB
$$
$$ Anstatt 'nastran_job_xyz' kann ein beliebiger Dateiname
$$ gewaehlt werden.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$
NASTRAN SYSTEM(151)=1
NASTRAN BUFFSIZE=65537
$
INIT SCRATCH, 
LOGICAL=(SCRATCH1(100GB),SCRATCH2(100GB),SCRATCH3(100GB)),
SCR300=(SCR1(100GB),SCR2(100GB),SCR3(100GB))
$
ASSIGN SCRATCH1='nastran_job_xyz.scratch1',TEMP
ASSIGN SCRATCH2='nastran_job_xyz.scratch2',TEMP
ASSIGN SCRATCH3='nastran_job_xyz.scratch3',TEMP
$
ASSIGN SCR1='nastran_job_xyz.scr1',TEMP
ASSIGN SCR2='nastran_job_xyz.scr2',TEMP
ASSIGN SCR3='nastran_job_xyz.scr3',TEMP
$
INIT DBALL LOGICAL=(DBALL1(100GB),DBALL2(100GB),DBALL3(100GB))
$
ASSIGN DBALL1='nastran_job_xyz.DBALL1'
ASSIGN DBALL2='nastran_job_xyz.DBALL2'
ASSIGN DBALL3='nastran_job_xyz.DBALL3'
$
$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

 

© 2020 CAE Simulation Solutions Pitkagasse 2/1/16 1210 Wien Österreich +43 /1/ 974 89 91-0