#include <ArbitraryCartesianGrid3D.h>
Inheritance diagram for FDDlib::ArbitraryCartesianGrid3D:

Public Methods | |||
| ArbitraryCartesianGrid3D (int numx, int numy, int numz, double energySpeed) throw (std::string) | |||
| Constructor. | |||
| ArbitraryCartesianGrid3D (int numx, int numy, int numz, double energySpeed, const std::vector< double > &dx, const std::vector< double > &dy, const std::vector< double > &dz) throw (std::string) | |||
| Constructor. | |||
| virtual | ~ArbitraryCartesianGrid3D () | ||
| Destructor. | |||
| void | setDelta (const std::vector< double > &dx, const std::vector< double > &dy, const std::vector< double > &dz) throw (std::string) | ||
| Set the grid distance (delta) lists. | |||
| std::vector< double > | getDxList () const | ||
| Returns the DeltaX list. | |||
| std::vector< double > | getDyList () const | ||
| Returns the DeltaY list. | |||
| std::vector< double > | getDzList () const | ||
| Returns the DeltaZ list. | |||
| virtual double | averageDx () const | ||
| Get the average Dx value. | |||
| virtual double | averageDy () const | ||
| Get the average Dy value. | |||
| virtual double | averageDz () const | ||
| Get the average Dz value. | |||
| int | numX () const | ||
| number of nodes in the X direction | |||
| int | numY () const | ||
| number of nodes in the Y direction | |||
| int | numZ () const | ||
| number of nodes in the Z direction | |||
| virtual void | computeNormals (int maxneighbors, int order, double tol) throw (std::string) | ||
| Compute the normal vectors of all boundary nodes. | |||
| virtual void | analyticalNormals () throw (std::string) | ||
| Compute the normal vectors analytically. | |||
| std::list< CartesianNode3D * > | getBorderBySide (gridSide3D side) const | ||
| Gets a list of nodes that are on a given side of the grid. | |||
| std::list< CartesianNode3D * > | getAllBorders () const | ||
| Get a list of all border nodes. | |||
| int | offsetsToIndex (int xoffset, int yoffset, int zoffset) const throw (std::string) | ||
| Convert the offset of a node (in 3D) from node zero to its index. | |||
| CartesianNode3D * | getNode (int ind) const throw (std::string) | ||
| Get a pointer to a node by its index. | |||
| int | numNodes () const | ||
| Get the number of nodes. | |||
| void | fillUniformProperty (Property *prop) throw (std::string) | ||
| Fill the grid with a constant property. | |||
| void | insertAnomaly (const Anomaly3D &anom) | ||
| Insert an anomaly into the grid. | |||
| void | setEnergySpeed (double energySpeed) | ||
| Set the speed of energy propagation through the grid. | |||
| double | getEnergySpeed () const | ||
| Get the speed of energy propagation. | |||
| int | numActiveNodes () const throw (std::string) | ||
Get the number of active nodes in the grid
| |||
| void | generateLinearIndices () | ||
| Generate linear indices for all nodes. This also calculates numActiveNodes(). | |||
| void | createLayeredBackground (const std::vector< Property * > &proplist, const std::vector< int > &zdepthlist) throw (std::string) | ||
| Create a layered background. | |||
| int | numBorderNodes () const | ||
| Count and return the number of border nodes. | |||
Static Public Attributes | |||
| const int | DEFAULT_SPACING = 1 | ||
| The default unit spacing between nodes (if no delta lists are provided). | |||
Protected Methods | |||
| void | setupNodes () throw (std::string) | ||
| Destructively sets up the node data to correspond with our delta lists. | |||
Protected Attributes | |||
| int | numx_ | ||
| number of nodes in the x direction | |||
| int | numy_ | ||
| number of nodes in the y direction | |||
| int | numz_ | ||
| number of nodes in the z direction | |||
| std::vector< CartesianNode3D > | nodeList_ | ||
| the list of nodes. Each node includes location and property data | |||
| double | energySpeed_ | ||
| the nominal speed of energy propagation through the medium | |||
| int | numActiveNodes_ | ||
| number of nodes in the grid with an active property | |||
| std::vector< double > | deltax | ||
| distances between nodes in x direction | |||
| std::vector< double > | deltay | ||
| distances between nodes in y direction | |||
| std::vector< double > | deltaz | ||
| distances between nodes in z direction | |||
Static Protected Attributes | |||
| const int | UNKNOWN_NUMACTIVE = -1 | ||
| the number given to numActivePoints_ when it has not been calculated | |||
Nodes are connected in rectangular patterns rather than arbitrarily.
|
||||||||||||||||||||
|
Constructor. Since it is unlikely the grid distances will be available at the time of construction, we will set that data later.
|
|
||||||||||||||||||||||||||||||||
|
Constructor. Since it is unlikely the grid distances will be available at the time of construction, we will set that data later.
|
|
|
Compute the normal vectors analytically. This only works if we are not using irregular boundaries (the condition where the number of active nodes equals the number of total nodes). This is called from computeNormals() if this condition is found to be true.
|
|
||||||||||||||||
|
Compute the normal vectors of all boundary nodes. Basically, we first populate a sparse matrix giving the Hamming distance of each boundary node from its neighbors. Then we fit a polynomial surface at that node, and compute the normal by taking the cross- product of two tangents. Then we verify that the normal vector is nodeing outwards (reversing direction if it is not).
|
|
||||||||||||
|
Create a layered background. These layers are applied consecutively, with each layer having a depth of its corresponding element in zdepthlist.
|
|
|
Fill the grid with a constant property.
|
|
|
Gets a list of nodes that are on a given side of the grid.
|
|
|
Insert an anomaly into the grid. This effects the Property of every node in the grid which the anomaly encloses.
|
|
||||||||||||||||
|
Convert the offset of a node (in 3D) from node zero to its index.
|
|
||||||||||||||||
|
Set the grid distance (delta) lists. The number of elements in each array should be one less than the number of nodes in the respective dimension (i.e. dx should have numx-1 elements). Note that these values are copied into this object.
|
1.2.18