BRL-CAD
NurbsSolve Class Reference

Solving the linear system of equations using Eigen or UmfPack. (can be defined in on_nurbs.cmake) More...

#include <opennurbs_fit.h>

Public Member Functions

 NurbsSolve ()
 Empty constructor. More...
 
void assign (unsigned rows, unsigned cols, unsigned dims)
 Assign size and dimension (2D, 3D) of system of equations. More...
 
void K (unsigned i, unsigned j, double v)
 Set value for system matrix K (stiffness matrix, basis functions) More...
 
void x (unsigned i, unsigned j, double v)
 Set value for state vector x (control points) More...
 
void f (unsigned i, unsigned j, double v)
 Set value for target vector f (force vector) More...
 
double K (unsigned i, unsigned j)
 Get value for system matrix K (stiffness matrix, basis functions) More...
 
double x (unsigned i, unsigned j)
 Get value for state vector x (control points) More...
 
double f (unsigned i, unsigned j)
 Get value for target vector f (force vector) More...
 
void resizeF (unsigned rows)
 Resize target vector f (force vector) More...
 
void printK ()
 Print system matrix K (stiffness matrix, basis functions) More...
 
void printX ()
 Print state vector x (control points) More...
 
void printF ()
 Print target vector f (force vector) More...
 
bool solve ()
 Solves the system of equations with respect to x. More...
 
ON_Matrix * diff ()
 Compute the difference between solution K*x and target f. More...
 
void setQuiet (bool val)
 Enable/Disable debug outputs in console. More...
 

Detailed Description

Solving the linear system of equations using Eigen or UmfPack. (can be defined in on_nurbs.cmake)

Definition at line 235 of file opennurbs_fit.h.

Constructor & Destructor Documentation

NurbsSolve ( )
inline

Empty constructor.

Definition at line 239 of file opennurbs_fit.h.

Member Function Documentation

void assign ( unsigned  rows,
unsigned  cols,
unsigned  dims 
)

Assign size and dimension (2D, 3D) of system of equations.

Definition at line 252 of file opennurbs_fit.cpp.

Referenced by FittingSurface::assemble().

void K ( unsigned  i,
unsigned  j,
double  v 
)
void x ( unsigned  i,
unsigned  j,
double  v 
)

Set value for state vector x (control points)

Definition at line 274 of file opennurbs_fit.cpp.

References OSL::Strings::v.

Referenced by FittingSurface::updateSurf().

double K ( unsigned  i,
unsigned  j 
)

Get value for system matrix K (stiffness matrix, basis functions)

Definition at line 286 of file opennurbs_fit.cpp.

double x ( unsigned  i,
unsigned  j 
)

Get value for state vector x (control points)

Definition at line 291 of file opennurbs_fit.cpp.

double f ( unsigned  i,
unsigned  j 
)

Get value for target vector f (force vector)

Definition at line 296 of file opennurbs_fit.cpp.

void resizeF ( unsigned  rows)

Resize target vector f (force vector)

Definition at line 303 of file opennurbs_fit.cpp.

void printK ( )

Print system matrix K (stiffness matrix, basis functions)

void printX ( )

Print state vector x (control points)

void printF ( )

Print target vector f (force vector)

bool solve ( )

Solves the system of equations with respect to x.

  • Using UmfPack incredibly speeds up this function.

Definition at line 345 of file opennurbs_fit.cpp.

References solveSparseLinearSystemLQ().

Referenced by FittingSurface::solve().

Here is the call graph for this function:

ON_Matrix* diff ( )

Compute the difference between solution K*x and target f.

void setQuiet ( bool  val)
inline

Enable/Disable debug outputs in console.

Definition at line 292 of file opennurbs_fit.h.

Referenced by FittingSurface::setQuiet().


The documentation for this class was generated from the following files: