Woolz Image Processing Version 1.4.0
WlzTensor.c File Reference

Functions which derive and manipulate tensor quantities. More...

Functions

WlzObjectWlzCMeshDGTensor (WlzObject *cObj, int invert, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor for each of it's valid elements. Given displacement $\vec{u}(\vec{r})$ with position vector $\vec{r}$ which maps a point from a space $\vec{x}$ to a space $\vec{u}$ the displacement gradient tensor is defined in 3D as

\[ { \newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}} u_{i,j} = \left [ \begin{array}{ccc} \pd{u_0}{x_0} & \pd{u_0}{x_1} & \pd{u_0}{x_2} \\ \pd{u_1}{x_0} & \pd{u_1}{x_1} & \pd{u_1}{x_2} \\ \pd{u_2}{x_0} & \pd{u_2}{x_1} & \pd{u_2}{x_2} \end{array} \right] } \]

with

\[ \Delta r_i = u_{ij} r_j \]

where $\vec{u} = \left[u_0, u_1, u_2\right]^T$ and $\Delta \vec{r} = \left[x_0, x_1, x_2\right]^T$. The displacement gradient tensor matrix is just the rotation and independent scaling part of the affine transform that displaces the element.

WlzObjectWlzCMeshDGTensorAtPts (WlzObject *cObj, int invert, WlzDVertex3 sd, int dither, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor at regular cartesian grid sample points throughout the mesh. The tensor values at the sample points are computed at each point by computing an iverse distance weighted least squares general affine transform for the ring of nodes surrounding the closest node. See WlzCMeshDGTensor() for the description of the tensor.
WlzObjectWlzCMeshStrainTensor (WlzObject *cObj, int invert, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the strain tensor for each of it's valid elements. This function uses WlzCMeshDGTensor() to compute the displacement gradient tensor and the derives the strain tensor $e_{ij}$ from this using:

\[ e_{ij} = \frac{1}{2} (u_{ij} + u_{ji}) \]

.

WlzObjectWlzCMeshStrainTensorAtPts (WlzObject *cObj, int invert, WlzDVertex3 sd, int dither, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor at regular cartesian grid sample points throughout the mesh. The tensor values at the sample points are computed using WlzCMeshDGTensorAtPts(). The strain tensor is then computed from the displacement gradient tensor as for WlzCMeshStrainTensor().

Detailed Description

Functions which derive and manipulate tensor quantities.

Author:
Bill Hill
Date:
January 2013
Version:
Id:
57dcafd4c651e588bb99a0f7f758982b5966159a
Address: MRC Human Genetics Unit, MRC Institute of Genetics and Molecular Medicine, University of Edinburgh, Western General Hospital, Edinburgh, EH4 2XU, UK.
Copyright (C), [2013], The University Court of the University of Edinburgh, Old College, Edinburgh, UK.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.