Lemina
A molecular dynamics package for network, granular material and point particles with a range of interaction potential.
 
Loading...
Searching...
No Matches
WriteRestartBinary.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "global.h"
+ Include dependency graph for WriteRestartBinary.c:

Go to the source code of this file.

Classes

struct  RestartHeader
 

Functions

void WriteBinaryRestart ()
 

Function Documentation

◆ WriteBinaryRestart()

void WriteBinaryRestart ( )

Definition at line 60 of file WriteRestartBinary.c.

60 {
61 RestartHeader hdr = {
62 .magic = "LAMINA",
63 .version = 1.0,
64 .timeNow = timeNow,
65 .nAtom = nAtom,
66 .nBond = nBond,
67 .nAtomType = nAtomType,
68 .nBondType = nBondType,
69 .regionX = region[1],
70 .regionY = region[2],
71 .nAtomInterface = nAtomInterface,
72 .nAtomBlock = nAtomBlock,
73 .nDiscInterface = nDiscInterface,
74 .bigDiameter = bigDiameter,
75 .InterfaceWidth = InterfaceWidth,
76 .nPairActive = nPairActive,
77 .nPairTotal = nPairTotal,
78 .uSumPair = uSumPair,
79 .virSumPair = virSumPair,
80 .virSumPairxx = virSumPairxx,
81 .virSumPairyy = virSumPairyy,
82 .virSumPairxy = virSumPairxy,
83 .TotalBondEnergy = TotalBondEnergy,
84 .virSumBond = virSumBond,
85 .virSumBondxx = virSumBondxx,
86 .virSumBondyy = virSumBondyy,
87 .virSumBondxy = virSumBondxy,
88 .stepCount = stepCount,
89 .forceSumxExtern = forceSumxExtern,
90 .forceSumyExtern = forceSumyExtern
91 };
92
93 char DUMP[256];
94 FILE *fp;
95 sprintf(DUMP, "%s.bin", prefix); // Produces e.g. "../output/test.bin"
96 fp = fopen(DUMP, "wb");
97 if (!fp) {
98 fprintf(stderr, "Error opening binary restart file %s for writing\n", DUMP);
99 exit(EXIT_FAILURE);
100 }
101
102 //Here we are writing the data to binary file
103 fwrite(&hdr, sizeof(RestartHeader), 1, fp);
104 fwrite(&atomID[1], sizeof(int), nAtom, fp);
105 fwrite(&molID[1], sizeof(int), nAtom, fp);
106 fwrite(&atomType[1], sizeof(int), nAtom, fp);
107 fwrite(&atomRadius[1], sizeof(double), nAtom, fp);
108 fwrite(&rx[1], sizeof(double), nAtom, fp);
109 fwrite(&ry[1], sizeof(double), nAtom, fp);
110 fwrite(&vx[1], sizeof(double), nAtom, fp);
111 fwrite(&vy[1], sizeof(double), nAtom, fp);
112 fwrite(&ax[1], sizeof(double), nAtom, fp);
113 fwrite(&ay[1], sizeof(double), nAtom, fp);
114 fwrite(&fx[1], sizeof(double), nAtom, fp);
115 fwrite(&fy[1], sizeof(double), nAtom, fp);
116 fwrite(&atomMass[1], sizeof(double), nAtom, fp);
117 fwrite(&discDragx[1], sizeof(double), nAtom, fp);
118 fwrite(&discDragy[1], sizeof(double), nAtom, fp);
119 fwrite(&atomIDInterface[1], sizeof(int), nAtomInterface, fp);
120
121 fwrite(&BondID[1], sizeof(int), nBond, fp);
122 fwrite(&BondType[1], sizeof(int), nBond, fp);
123 fwrite(&atom1[1], sizeof(int), nBond, fp);
124 fwrite(&atom2[1], sizeof(int), nBond, fp);
125 fwrite(&kb[1], sizeof(double), nBond, fp);
126 fwrite(&ro[1], sizeof(double), nBond, fp);
127 fwrite(&BondEnergy[1], sizeof(double), nBond, fp);
128 fwrite(&BondLength[1], sizeof(double), nBond, fp);
129 fwrite(&nodeDragx[1], sizeof(double), nAtom, fp);
130 fwrite(&nodeDragy[1], sizeof(double), nAtom, fp);
131 fwrite(&rxUnwrap[1], sizeof(double), nAtom, fp);
132 fwrite(&ryUnwrap[1], sizeof(double), nAtom, fp);
133 fwrite(&ImageX[1], sizeof(int), nAtom, fp);
134 fwrite(&ImageY[1], sizeof(int), nAtom, fp);
135
136 fwrite(&PairID[1], sizeof(int), nPairActive, fp);
137 fwrite(&Pairatom1[1], sizeof(int), nPairActive, fp);
138 fwrite(&Pairatom2[1], sizeof(int), nPairActive, fp);
139 fwrite(&PairXij[1], sizeof(double), nPairActive, fp);
140 fwrite(&PairYij[1], sizeof(double), nPairActive, fp);
141
142 fclose(fp);
143}
double virSumBond
int nAtom
Definition global.h:24
int * BondID
double * discDragy
Definition global.h:42
int nDiscInterface
Definition global.h:76
double * atomMass
double virSumPairyy
Definition global.h:88
int nAtomBlock
Definition global.h:76
double virSumPair
Definition global.h:88
int nPairTotal
int * atom2
Definition global.h:36
int * BondType
Definition global.h:37
int nBondType
Definition global.h:35
int nAtomType
double InterfaceWidth
double region[2+1]
double virSumPairxx
Definition global.h:88
int nPairActive
Definition global.h:62
int * molID
double virSumBondxy
Definition global.h:89
double * ay
Definition global.h:17
double * vx
Definition global.h:17
int * ImageX
int * ImageY
Definition global.h:50
int nAtomInterface
double * ro
Definition global.h:38
double * BondLength
Definition global.h:39
int * atomIDInterface
int * atom1
double * rx
double * ax
Definition global.h:17
double * fy
Definition global.h:17
int nBond
double * BondEnergy
double bigDiameter
Definition global.h:75
double * kb
double uSumPair
int * PairID
double * PairXij
double * ryUnwrap
Definition global.h:51
double * nodeDragy
Definition global.h:42
double * atomRadius
double virSumBondxx
Definition global.h:89
double timeNow
Definition global.h:20
int * Pairatom2
Definition global.h:63
int stepCount
Definition global.h:24
double forceSumyExtern
Definition global.h:53
double TotalBondEnergy
double * PairYij
Definition global.h:64
double * discDragx
char * prefix
Definition main.c:13
int * atomType
double * vy
Definition global.h:17
double * rxUnwrap
double * nodeDragx
Definition global.h:42
double virSumBondyy
Definition global.h:89
int * atomID
double forceSumxExtern
Definition global.h:53
double virSumPairxy
Definition global.h:88
double * fx
Definition global.h:17
int * Pairatom1
Definition global.h:63
double * ry
Definition global.h:17

References atom1, atom2, atomID, atomIDInterface, atomMass, atomRadius, atomType, ax, ay, bigDiameter, BondEnergy, BondID, BondLength, BondType, discDragx, discDragy, forceSumxExtern, forceSumyExtern, fx, fy, ImageX, ImageY, InterfaceWidth, kb, molID, nAtom, nAtomBlock, nAtomInterface, nAtomType, nBond, nBondType, nDiscInterface, nodeDragx, nodeDragy, nPairActive, nPairTotal, Pairatom1, Pairatom2, PairID, PairXij, PairYij, prefix, region, ro, rx, rxUnwrap, ry, ryUnwrap, stepCount, timeNow, TotalBondEnergy, uSumPair, virSumBond, virSumBondxx, virSumBondxy, virSumBondyy, virSumPair, virSumPairxx, virSumPairxy, virSumPairyy, vx, and vy.

Referenced by main().

+ Here is the caller graph for this function: