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
    --- | ---
    `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

      `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`

    - ### 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`
      Author:
        Konrad Polthier
      Version:
        18.04.99, 2.00 revised (kp)
        18.04.99, 1.00 created (kp)

    - #### 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`
      Author:
        Konrad Polthier
      Version:
        03.03.02, 1.00 created (kp)

"

The software JavaView? is copyright protected. All Rights Reserved.
"