6641
6641
o->m_pMSD->m_pMSD->LinReg(o->m_pMSD->m_pMSD->m_iResolution/2,o->m_pMSD->m_pMSD->m_iResolution-1,&c0,&c1,&r);
6642
6642
mprintf(" MSD(t) = %.6f + %.6f * t (units: [MSD] = pm^2, [t] = ps).\n",c0,c1);
6643
6643
mprintf(" R = %.6f\n",r);
6644
mprintf(" Diffusion coefficient D = %.6f pm^2/ps = %G m^2/s.\n",c1/6.0,c1/6.0e9);
6644
mprintf(" Diffusion coefficient D = %.6f pm^2/ps = %G m^2/s.\n",c1/6.0,c1/6.0e12);
6645
6645
mprintf(" (assuming <x^2> = 6 * D * t)\n\n");
7098
7098
mprintf(WHITE,"* Spatial Distribution Function\n");
7099
7099
mprintf(" %.0f bin entries, %.0f out of bin range (%.2f percent).\n",o->m_pSDF->m_pSDF->m_fBinEntries,o->m_pSDF->m_pSDF->m_fSkipEntries,ZeroDivide(o->m_pSDF->m_pSDF->m_fSkipEntries,o->m_pSDF->m_pSDF->m_fBinEntries+o->m_pSDF->m_pSDF->m_fSkipEntries)*100.0);
7100
mprintf(" The averaged particle density of this observation is %.4f nm^-3.\n",o->m_pSDF->m_fParticleDensity);
7101
mprintf(WHITE," Bin values are given in nm^-3 (particle density).\n");
7100
o->m_pSDF->m_pSDF->CalcMaxEntry();
7101
mprintf(" Raw data range from %.0f to %.0f hits.\n",o->m_pSDF->m_pSDF->m_fMinEntry,o->m_pSDF->m_pSDF->m_fMaxEntry);
7102
mprintf(" The volume of one bin is %.3f pm^3.\n",pow(o->m_pSDF->m_fRadius*2.0/o->m_pSDF->m_iResolution,3));
7103
mprintf(" The uniform particle density of this observation is %.6f nm^-3.\n",o->m_pSDF->m_fParticleDensity);
7102
7104
/* switch(g_iSDFScale)
7113
7115
mprintf(" Scaling values to nm^-3...\n");*/
7114
o->m_pSDF->m_pSDF->MultiplyBin(pow(o->m_pSDF->m_iResolution/o->m_pSDF->m_fRadius*1000.0,3) / (double)g_iSteps / ((CMolecule*)g_oaMolecules[g_iFixMol])->m_laSingleMolIndex.GetSize() / o->m_pSDF->m_iShowAtomGes * (g_bDoubleBox?g_iDoubleBoxFactor:1));
7117
7118
mprintf(" Scaling values relative to average particle density...\n");
7118
7119
o->m_pSDF->m_pSDF->MultiplyBin(pow(o->m_pSDF->m_iResolution/o->m_pSDF->m_fRadius*1000.0,3) / (double)g_iSteps / ((CMolecule*)g_oaMolecules[g_iFixMol])->m_laSingleMolIndex.GetSize() / o->m_pSDF->m_iShowAtomGes / o->m_pSDF->m_fParticleDensity * (g_bDoubleBox?g_iDoubleBoxFactor:1));
7123
o->m_pSDF->m_pSDF->MultiplyBin(pow(o->m_pSDF->m_iResolution/o->m_pSDF->m_fRadius/2.0*1000.0,3) / (double)g_iSteps / ((CMolecule*)g_oaMolecules[g_iFixMol])->m_laSingleMolIndex.GetSize() / o->m_pSDF->m_iShowAtomGes * (g_bDoubleBox?g_iDoubleBoxFactor:1));
7127
o->m_pSDF->m_pSDF->MultiplyBin(1.0/o->m_pSDF->m_fParticleDensity);
7128
mprintf(WHITE," Bin values are given relative to this uniform particle density.\n");
7131
mprintf(WHITE," Bin values are given in nm^-3 (particle density).\n");
7133
o->m_pSDF->m_pSDF->CalcMaxEntry();
7134
mprintf(" Data range from %.6f to %.6f%s.\n",o->m_pSDF->m_pSDF->m_fMinEntry,o->m_pSDF->m_pSDF->m_fMaxEntry,g_bSDFUniform?"":" nm^-3");
7121
7136
if (o->m_pSDF->m_bInvert)
7123
7138
mprintf(" Inverting SDF...\n");
7146
7161
tempSDF->Smooth(z2);
7147
7162
sprintf(buf,".s%d%s.plt",z2,multibuf);
7148
7163
} else sprintf(buf,"%s.plt",multibuf);
7164
tempSDF->CalcMaxEntry();
7165
mprintf(" Data range from %.6f to %.6f%s.\n",tempSDF->m_fMinEntry,tempSDF->m_fMaxEntry,g_bSDFUniform?"":" nm^-3");
7149
7166
if (o->m_pSDF->m_bClipPlane)
7151
mprintf(" Creating Clip Plane in %c direction with value %.3f...\n",(o->m_pSDF->m_iClipDirection==0)?'X':((o->m_pSDF->m_iClipDirection==1)?'Y':'Z'),o->m_pSDF->m_fClipValue);
7168
mprintf(" Creating Clip Plane in %c direction with value %.3f...\n",(o->m_pSDF->m_iClipDirection==0)?'X':((o->m_pSDF->m_iClipDirection==1)?'Y':'Z'),o->m_pSDF->m_fClipValue);
7152
7169
o->m_pSDF->m_pSDF->ClipPlane(o->m_pSDF->m_iClipDirection,o->m_pSDF->m_fClipValue);
7154
mprintf(" Saving SDF as \"sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7171
mprintf(" Saving SDF as \"sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7155
7172
tempSDF->WritePLT("sdf_",o->m_pSDF->m_sName,buf,true);
7158
7175
sprintf(buf,".s%d%s.cube",z2,multibuf);
7159
7176
else sprintf(buf,"%s.cube",multibuf);
7160
mprintf(" Saving SDF as \"sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7177
mprintf(" Saving SDF as \"sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7161
7178
tempSDF->WriteCube("sdf_",o->m_pSDF->m_sName,buf,true);
7163
7180
if (o->m_pSDF->m_iHistogramRes != 0)
7166
7183
sprintf(buf,".s%d%s.csv",z2,multibuf);
7167
7184
else sprintf(buf,"%s.csv",multibuf);
7168
mprintf(" Saving SDF Histogram as \"his_sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7185
mprintf(" Saving SDF Histogram as \"his_sdf_%s%s\"...\n",o->m_pSDF->m_sName,buf);
7169
7186
tempSDF->CalcHistogram();
7170
7187
tempSDF->WriteHistogram("his_sdf_",o->m_pSDF->m_sName,buf);