Store values for numeric grids such as orbitals or electrostatic potential.
More...
#include <openbabel/griddata.h>
List of all members.
Public Types |
enum | Unit { BOHR,
ANGSTROM,
OTHER
} |
Public Member Functions |
| OBGridData () |
| ~OBGridData () |
virtual OBGenericData * | Clone (OBBase *) const |
void | SetAttribute (const std::string &v) |
void | SetOrigin (const DataOrigin s) |
virtual const std::string & | GetAttribute () const |
unsigned int | GetDataType () const |
virtual const std::string & | GetValue () const |
virtual DataOrigin | GetOrigin () const |
|
void | GetAxes (double x[3], double y[3], double z[3]) const |
vector3 | GetXAxis () const |
vector3 | GetYAxis () const |
vector3 | GetZAxis () const |
void | GetAxes (vector3 &v1, vector3 &v2, vector3 &v3) const |
void | GetNumberOfPoints (int &nx, int &ny, int &nz) const |
int | GetNumberOfPoints () const |
void | GetNumberOfSteps (int steps[3]) const |
std::vector< double > | GetValues () const |
double | GetValue (int i, int j, int k) const |
double | GetValue (vector3 pos) const |
Unit | GetUnit () const |
double | GetMinValue () const |
double | GetMaxValue () const |
vector3 | GetOriginVector () const |
void | GetOriginVector (double o[3]) const |
vector3 | GetMaxVector () const |
bool | GetUnrestricted () const |
int | GetNumSymmetries () const |
|
void | SetNumberOfPoints (int nx, int ny, int nz) |
void | SetLimits (const vector3 &origin, const vector3 &x, const vector3 &y, const vector3 &z) |
void | SetLimits (const double origin[3], const double x[3], const double y[3], const double z[3]) |
bool | SetValue (int i, int j, int k, double val) |
void | SetValues (const std::vector< double > &v) |
void | SetUnit (Unit u) |
void | SetUnrestricted (bool u) |
void | SetNumSymmetries (int s) |
Protected Attributes |
std::string | _attr |
unsigned int | _type |
DataOrigin | _source |
Detailed Description
Store values for numeric grids such as orbitals or electrostatic potential.
- Since:
- version 2.2
- See also:
- OBFloatGrid
OBGridData facilitates attaching grids and cubes to molecular data. A "grid" is data representing some function f(x,y,z), such as a molecule's electrostatic potential or molecular orbitals. This need not be a "cube" even though this file format from Gaussian is frequently used. Axes need not be identical, and indeed do not need to be orthogonal.
Open Babel supports reading several types of grid file formats, including Gaussian cube, and OpenDX. The latter is notably used by the APBS program for numeric evaluation of molecular and protein electrostatic potential.
OBGridData *gd = new OBGridData;
gd->SetAttribute("Example Grid");
vector<int> voxels(3);
vector3 origin;
vector<vector3> axes;
...
gd->SetNumberOfPoints(voxels[0], voxels[1], voxels[2]);
gd->SetLimits(origin, axes[0], axes[1], axes[2]);
gd->SetUnit(OBGridData::ANGSTROM);
gd->SetOrigin(fileformatInput);
for (int k = 0; k < voxels[2]; ++k)
for (int j = 0; j < voxels[1]; ++j)
for (int i = 0; i < voxels[0]; ++i)
{
gd->SetValue(i, j, k,
grid[k*voxels[0]*voxels[1] + j*voxels[0] + i]);
}
mol->SetData(gd);
Member Enumeration Documentation
Unit of measure for grid spacings.
- Enumerator:
-
Constructor & Destructor Documentation
Member Function Documentation
void GetAxes |
( |
double |
x[3], |
|
|
double |
y[3], |
|
|
double |
z[3] |
|
) |
| const |
- Returns:
- the three axes parallel to the grid edges. The length of the returned vector is the step along that direction.
- Returns:
- X axis direction.
- Returns:
- Y axis direction.
- Returns:
- Z axis direction.
- Returns:
- the three axes parallel to the grid edges
void GetNumberOfPoints |
( |
int & |
nx, |
|
|
int & |
ny, |
|
|
int & |
nz |
|
) |
| const |
- Returns:
- number of points along the three axes parallel to the grid edges.
int GetNumberOfPoints |
( |
) |
const |
- Returns:
- total number of points in the grid.
void GetNumberOfSteps |
( |
int |
steps[3] ) |
const |
- Returns:
- number of points along the three axes parallel to the grid edges.
std::vector< double > GetValues |
( |
) |
const |
- Returns:
- grid values as a vector of doubles.
double GetValue |
( |
int |
i, |
|
|
int |
j, |
|
|
int |
k |
|
) |
| const |
double GetValue |
( |
vector3 |
pos ) |
const |
- Returns:
- the value at a position in the grid (by interpolation)
- Returns:
- the unit of measure for grid spacings.
double GetMinValue |
( |
) |
const |
- Returns:
- the minimum value of all points in the grid.
double GetMaxValue |
( |
) |
const |
- Returns:
- the maximum value of all points in the grid.
- Returns:
- vector3 of the origin (i.e., the minimum x, y, and z coords of the grid).
void GetOriginVector |
( |
double |
o[3] ) |
const |
- Returns:
- The maximum point in the grid.
bool GetUnrestricted |
( |
) |
const |
- Returns:
- the unrestricted flag.
int GetNumSymmetries |
( |
) |
const |
- Returns:
- the number of symmetries.
void SetNumberOfPoints |
( |
int |
nx, |
|
|
int |
ny, |
|
|
int |
nz |
|
) |
| |
Set the limits (i.e., the origin point and the axes) NOTE: You must set the number of points first, with SetNumberOfPoints so the grid spacing can be calculated
Referenced by OBForceField::GetGrid().
void SetLimits |
( |
const double |
origin[3], |
|
|
const double |
x[3], |
|
|
const double |
y[3], |
|
|
const double |
z[3] |
|
) |
| |
bool SetValue |
( |
int |
i, |
|
|
int |
j, |
|
|
int |
k, |
|
|
double |
val |
|
) |
| |
void SetValues |
( |
const std::vector< double > & |
v ) |
|
Set the values, this vector must match the dimensions of the grid.
void SetUnrestricted |
( |
bool |
u ) |
|
Set the unrestricted flag.
void SetNumSymmetries |
( |
int |
s ) |
|
Set the number of symmetries.
Reimplemented in AliasData, OBAtomClassData, OBCommentData, OBExternalBondData, OBPairData, OBSetData, OBVirtualBond, OBRingData, OBUnitCell, OBConformerData, OBSymmetryData, OBTorsionData, OBAngleData, OBChiralData, OBSerialNums, OBVibrationData, OBDOSData, OBOrbitalData, OBElectronicTransitionData, OBRotationData, OBVectorData, OBMatrixData, OBRateData, OBNasaThermoData, OBRotamerList, OBCisTransStereo, OBSquarePlanarStereo, and OBTetrahedralStereo.
Referenced by OBBase::CloneData(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().
void SetAttribute |
( |
const std::string & |
v ) |
[inline, inherited] |
Set the attribute (key), which can be used to retrieve this data.
Referenced by OBGastChrg::AssignPartialCharges(), OBMol::DoTransformations(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBForceField::GetAtomTypes(), OBMol::GetFormula(), OBMol::GetLSSR(), OBForceField::GetPartialCharges(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
void SetOrigin |
( |
const DataOrigin |
s ) |
[inline, inherited] |
Set the origin of this data, which can be used to filter the data.
Referenced by OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::FindAngles(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBMol::GetFormula(), OBMol::GetLSSR(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
virtual const std::string& GetAttribute |
( |
) |
const [inline, virtual, inherited] |
unsigned int GetDataType |
( |
) |
const [inline, inherited] |
virtual const std::string& GetValue |
( |
) |
const [inline, virtual, inherited] |
virtual DataOrigin GetOrigin |
( |
) |
const [inline, virtual, inherited] |
Member Data Documentation
std::string _attr [protected, inherited] |
unsigned int _type [protected, inherited] |
The documentation for this class was generated from the following files: