jvx.numeric
Class PnAlignmentEnergy
- java.lang.Object
-
- jv.object.PsObject
-
- jvx.numeric.PnFunction
-
- jvx.numeric.PnEnergy
-
- jvx.numeric.PnAlignmentEnergy
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, PsUpdateIf
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
- Author:
- Konrad Polthier
- Version:
- 02.05.02, 1.10 revised (kp) Name changed to PnAlignmentEnergy.
17.04.99, 1.01 revised (kp) Method 'evalGradient' moved from class PnDiriGradient.
18.04.02, 1.00 created (kp)
-
-
Field Summary
-
Fields inherited from class jv.object.PsObject
HAS_BOUNDARY_PANEL, 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
Constructors Constructor and Description PnAlignmentEnergy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doubleeval(PdVector coord)Compute edge energy of a coord vector.PdVectorevalGradient(PdVector coord, PdVector gradient)Evaluate gradient of a coord vector using the stiffness matrix.voidinit()If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.voidinitJc(PdVector coord)Recalculate an array containing all rotated edge vectors.voidinitSurface(PgElementSet domain, PgElementSet surface)Method called from energyMinimizer.minimizeStep() to update the stiffness matrix after conjugate gradient method has returned.booleansetSurface(PgElementSet domain, PgElementSet surface)Set domain and surface, and initialize energy structure.-
Methods inherited from class jvx.numeric.PnEnergy
computeNormalizedHessian, evalHessian, getConstrain, getNumOfVariables, getSpectrum, getZeroGradientAtBounds, isEnabledConstrainMatrix, isUseConstrainMatrix, setConstrain, setEnabledConstrainMatrix, setUseConstrainMatrix, 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
-
-
-
-
Method Detail
-
init
public void init()
Description copied from class:PsObjectIf instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.
-
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:
initSurfacein classPnEnergy
-
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:
setSurfacein classPnEnergy- Parameters:
domain- additional geometry used to specify mapssurface- geometry which is usually optimized
-
eval
public double eval(PdVector coord)
Compute edge energy of a coord vector.
-
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 anullmay 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:
evalGradientin classPnEnergy- Parameters:
coord- Coordinate vector with list of doublesgradient- Gradient vector to be modified, maybenull.- See Also:
PnAreaEnergy- Author:
- Konrad Polthier
- Version:
- 03.03.02, 1.00 created (kp)
-
-
"