Loading...
Searching...
No Matches
Sinp

Namespaces

namespace  sinp
 Functions for the d-SEAMS readers.

Functions

std::vector< std::string > sinp::getInpFileList (std::string inputFolder)
 Get file list inside the input folder.
int sinp::nLammpsFrames (const std::string &filename)
void sinp::dropLammpsDumpIndex (const std::string &filename)
 Drop a cached dump session (tests that rewrite a path in place).
void sinp::forEachLammpsFrame (const std::string &filename, int first, int last, int typeFilter, const std::function< void(int, molSys::PointCloud< molSys::Point< double >, double > &)> &fn, int nThreads=0, int part=0, int parts=1)
molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrj (std::string filename, int targetFrame, molSys::PointCloud< molSys::Point< double >, double > &yCloud, bool isSlice=false, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrjO (std::string filename, int targetFrame, molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeO, bool isSlice=false, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrjreduced (std::string filename, int targetFrame, molSys::PointCloud< molSys::Point< double >, double > &yCloud, int typeI, bool isSlice=false, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
molSys::PointCloud< molSys::Point< double >, double > sinp::readXYZ (std::string filename)
 Function for reading in atom coordinates from an XYZ file.
std::vector< std::vector< int > > sinp::readBonds (std::string filename)
 Reads bonds into a vector of vectors from a file with a specific format.
bool sinp::atomInSlice (double x, double y, double z, std::array< double, 3 > coordLow, std::array< double, 3 > coordHigh)

Detailed Description

Function Documentation

◆ atomInSlice()

bool sinp::atomInSlice ( double x,
double y,
double z,
std::array< double, 3 > coordLow,
std::array< double, 3 > coordHigh )
inline

True when each component lies in [lo, hi], or that axis has lo == hi (unconstrained). ([0,0,0], [50,0,0]) is x in [0, 50], y and z open.

If this is 3 then the particle is inside the volume slice

Definition at line 153 of file seams_input.hpp.

155 {
156 int flag = 0;
157
158 if (((x >= coordLow[0]) && (x <= coordHigh[0])) ||
159 coordLow[0] == coordHigh[0]) {
160 flag++;
161 }
162 if (((y >= coordLow[1]) && (y <= coordHigh[1])) ||
163 coordLow[1] == coordHigh[1]) {
164 flag++;
165 }
166 if (((z >= coordLow[2]) && (z <= coordHigh[2])) ||
167 coordLow[2] == coordHigh[2]) {
168 flag++;
169 }
170
171 if (flag == 3) {
172 return true;
173 } else {
174 return false;
175 }
176}

◆ dropLammpsDumpIndex()

void sinp::dropLammpsDumpIndex ( const std::string & filename)

Drop a cached dump session (tests that rewrite a path in place).

◆ forEachLammpsFrame()

void sinp::forEachLammpsFrame ( const std::string & filename,
int first,
int last,
int typeFilter,
const std::function< void(int, molSys::PointCloud< molSys::Point< double >, double > &)> & fn,
int nThreads = 0,
int part = 0,
int parts = 1 )

Call fn(frame, cloud) for each frame from max(first, 1) to last (1-based, inclusive) that falls to part of parts. last <= 0 means every ITEM: TIMESTEP. Frames are dealt in rounds of parts, in serpentine order (part p takes slot p of even rounds and slot parts - 1 - p of odd ones), so a cost that drifts or alternates along the run reaches every part. typeFilter <= 0 keeps every atom. nThreads <= 0 uses the OpenMP default; 1 is serial. Each worker opens its own handle and seeks the shared offset table. Incremental RingUpdater / AffiliationUpdater state cannot be shared across workers: use the batch classifiers.

◆ getInpFileList()

std::vector< std::string > sinp::getInpFileList ( std::string inputFolder)

Get file list inside the input folder.

◆ nLammpsFrames()

int sinp::nLammpsFrames ( const std::string & filename)

Number of ITEM: TIMESTEP frames in a LAMMPS dump, or 0 if the file cannot be read. The first full count per path walks the file once and later reads seek, matching chemfiles Trajectory::nsteps and readcon's frame-offset table. Sequential load_frame walks reuse a live cursor the way LAMMPS ReaderNative does on rerun.

◆ readBonds()

std::vector< std::vector< int > > sinp::readBonds ( std::string filename)

Reads bonds into a vector of vectors from a file with a specific format.

◆ readLammpsTrj()

molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrj ( std::string filename,
int targetFrame,
molSys::PointCloud< molSys::Point< double >, double > & yCloud,
bool isSlice = false,
std::array< double, 3 > coordLow = std::array< double, 3 >{0, 0, 0},
std::array< double, 3 > coordHigh = std::array< double, 3 >{0, 0, 0} )

Function for reading in a specified frame (frame number and not timestep value)

◆ readLammpsTrjO()

molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrjO ( std::string filename,
int targetFrame,
molSys::PointCloud< molSys::Point< double >, double > & yCloud,
int typeO,
bool isSlice = false,
std::array< double, 3 > coordLow = std::array< double, 3 >{0, 0, 0},
std::array< double, 3 > coordHigh = std::array< double, 3 >{0, 0, 0} )

One LAMMPS dump frame, one atom type. The type argument is any LAMMPS type (the O in the name is historical). If isSlice is true, each kept point gets inSlice set; atoms outside the box stay in the cloud. nop is the type-filtered count.

◆ readLammpsTrjreduced()

molSys::PointCloud< molSys::Point< double >, double > sinp::readLammpsTrjreduced ( std::string filename,
int targetFrame,
molSys::PointCloud< molSys::Point< double >, double > & yCloud,
int typeI,
bool isSlice = false,
std::array< double, 3 > coordLow = std::array< double, 3 >{0, 0, 0},
std::array< double, 3 > coordHigh = std::array< double, 3 >{0, 0, 0} )

One LAMMPS dump frame, one atom type, dropping atoms outside the slice when isSlice is true. nop is the kept count. An axis with lo == hi is unconstrained.

◆ readXYZ()

molSys::PointCloud< molSys::Point< double >, double > sinp::readXYZ ( std::string filename)

Function for reading in atom coordinates from an XYZ file.