JavaView© v3.95.000

jvx.numeric
Class PnAlignmentEnergy

java.lang.Object
  extended byjv.object.PsObject
      extended byjvx.numeric.PnFunction
          extended byjvx.numeric.PnEnergy
              extended byjvx.numeric.PnAlignmentEnergy
All Implemented Interfaces:
java.lang.Cloneable, PsUpdateIf, java.io.Serializable

public class PnAlignmentEnergy
extends PnEnergy

Alignment energy for non-conforming meshes. The alignment energy measure the deviation of two adjacent triangles of a non-conforming mesh from being aligned along the heights at the common vertex. Minimizers of this energy are minimizers of the discrete area functional of non-conforming meshes.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS
 
Constructor Summary
PnAlignmentEnergy()
           
 
Method Summary
 double eval(PdVector coord)
          Compute edge energy of a coord vector.
 PdVector evalGradient(PdVector coord, PdVector gradient)
          Evaluate gradient of a coord vector using the stiffness matrix.
 void init()
          If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.
 void initJc(PdVector coord)
          Recalculate an array containing all rotated edge vectors.
 void initSurface(PgElementSet domain, PgElementSet surface)
          Method called from energyMinimizer.minimizeStep() to update the stiffness matrix after conjugate gradient method has returned.
 boolean setSurface(PgElementSet domain, PgElementSet surface)
          Set domain and surface, and initialize energy structure.
 
Methods inherited from class jvx.numeric.PnEnergy
evalHessian, getNumOfVariables, getSpectrum, getZeroGradientAtBounds, isEnabledConstrainMatrix, setEnabledConstrainMatrix, setZeroGradientAtBounds, testEigenvalues
 
Methods inherited from class jvx.numeric.PnFunction
enableEvaluation, isEvaluable
 
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, update, updatePanels
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PnAlignmentEnergy

public PnAlignmentEnergy()
Method Detail

init

public void init()
Description copied from class: PsObject
If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.

Overrides:
init in class PnEnergy

initSurface

public void initSurface(PgElementSet domain,
                        PgElementSet surface)
Method called from energyMinimizer.minimizeStep() to update the stiffness matrix after conjugate gradient method has returned. E.g. PnAlignmentEnergy should copy surface into domain if in iteration mode i.e. if dimension of domain and surface are equal.

Overrides:
initSurface in class PnEnergy

initJc

public void initJc(PdVector coord)
Recalculate an array containing all rotated edge vectors. Method must be called whenever either eval() or evalGradient() is evaluated since both methods access the array of rotated edges.


setSurface

public boolean setSurface(PgElementSet domain,
                          PgElementSet surface)
Set domain and surface, and initialize energy structure. Method is called from outside whenever domain or surface has been updated.

Overrides:
setSurface in class PnEnergy
Parameters:
domain - additional geometry used to specify maps
surface - geometry which is usually optimized

eval

public double eval(PdVector coord)
Compute edge energy of a coord vector.

Overrides:
eval in class PnEnergy
Parameters:
coord - Coordinate vector with list of doubles
Returns:
double Energy of coordinate vector
See Also:
PnEnergy

evalGradient

public PdVector evalGradient(PdVector coord,
                             PdVector gradient)
Evaluate gradient of a coord vector using the stiffness matrix. Along boundary gradient is modified to fulfill any boundary constraints. Special feature for outside calls: If outside wants to evaluate the gradient without allocating gradient, then instead of gradient a null may be passed. In this case the gradient information is store in an internal variable which is returned as gradient. Handle with care and do not modify size returned gradient.

If no special boundary constraints are set, then you may use setZeroGradientAtBounds(boolean) to set the gradient zero at the boundary (or free again).

Overrides:
evalGradient in class PnEnergy
Parameters:
coord - Coordinate vector with list of doubles
gradient - Gradient vector to be modified, maybe null.
See Also:
PnAreaEnergy

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.