Voxelyze
Public Member Functions | Public Attributes
CVX_LinearSolver Class Reference

A linear solver for Voxelyze. More...

#include <VX_LinearSolver.h>

List of all members.

Public Member Functions

 CVX_LinearSolver (CVoxelyze *voxelyze)
 Links to a voxelyze object and initializes the solver. The pointer to the voxelyze object must remain valid for the lifetime of this object.
bool solve ()
 Formulates and solves the linear system and writes the resulting voxel positions and angles back to the linked voxelyze object. Returns false if the solver errors out. (check errorMsg for the reason). NOTE: calling this function modifies the state of the linked voxelyze object! This function may take a while if there are a large number of voxels.

Public Attributes

int progressTick
 An arbitrary progress number somewhere between zero and progressMaxTick to be used updating a progress bar.
int progressMaxTick
 An arbitrary maximum for progress bars.
std::string progressMsg
 A message indicating the current status of the solver.
std::string errorMsg
 If an error occurs the reason will be found here.
bool cancelFlag
 A user-settable flag to indicate to the solver that an abort has been request during a solve process. May still not stop immediately, though.

Detailed Description

A linear solver for Voxelyze.

Although voxelyze is fundamentally a dynamic non-linear materials simulator, sometimes a linear solution is still appropriate for a given problem. This class provides the means to do a one-time linear solve of the system in far less time than the equivalent doTimeStep() sequence.

The simulation is currently always linearized about the voxels' nominal positions, so only the elastic modulus of materials is used. Density, poissons ratio, etc. are all disregarded.

Currently only the pardiso solver is supported, although other more permissive solvers are in the works. See www.pardiso-project.com for the appropriate license (free for academic use) and libraries. Define PARDISO_5 in the preprocessor to compile in this pardiso support.

Because solver execution time can be lengthy, a rudimentary set of status variables is maintained during the solve process. They can be accessed safely while the process is running. Likewise cancelFlag can be set to true and the solver will abort execution as soon as it can. Note that this can still be a lengthy wait.


Constructor & Destructor Documentation

Links to a voxelyze object and initializes the solver. The pointer to the voxelyze object must remain valid for the lifetime of this object.

Parameters:
[in]voxelyzepointer to the voxelyze object to simulate.

The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations Enumerator Friends