18.08.2013 Views

Vega FEM Library (v1.1) User's Manual - University of Southern ...

Vega FEM Library (v1.1) User's Manual - University of Southern ...

Vega FEM Library (v1.1) User's Manual - University of Southern ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

virtual void ComputeEnergyHessian(int elementIndex,<br />

double * invariants, double * hessian) = 0<br />

Given the three invariants invariants[0],invariants[1],invariants[2] computes the second derivative<br />

<strong>of</strong> the energy with respect to the invariants and writes the result to hessian where hessian[0] =<br />

∂ 2 Ψ/∂I 2 , hessian[1] = ∂ 2 Ψ/∂I∂II, hessian[2] = ∂ 2 Ψ/∂I∂III, hessian[3] = ∂ 2 Ψ/∂II 2 , hessian[4]<br />

= ∂ 2 Ψ/∂II∂III, and hessian[5] = ∂ 2 Ψ/∂III 2<br />

To define your own isotropic hyperelastic material, simply derive from IsotropicMaterial and implement<br />

functions ComputeEnergy, ComputeEnergyGradient, ComputeEnergyHessian.<br />

class StVKIsotropicMaterial : public IsotropicMaterial StVK material that supports spatially<br />

varying material parameters. Provides functions to compute the energy, gradient, and Hessian <strong>of</strong> the StVK<br />

material given the three invariants I, II, III. The implemented StVK material is described in [BW08], page<br />

158.<br />

StVKIsotropicMaterial(TetMesh * tetMesh)<br />

The material parameters are read from the tet mesh, and are cached in the constructor. Throws an<br />

exception if the provided tet mesh does not consist <strong>of</strong> materials specifying E, ν.<br />

class HomogeneousIsotropicStVKMaterial : public IsotropicMaterial StVK material with homogeneous<br />

(spatially global) material parameters. Provides functions to compute the energy, gradient, and<br />

Hessian <strong>of</strong> the StVK material given the three invariants I, II, III.<br />

HomogeneousIsotropicStVKMaterial(double E, double nu)<br />

Initializes the Young’s modulus E and the Poisson ratio nu <strong>of</strong> the material.<br />

class NeoHookeanIsotropicMaterial : public IsotropicMaterial Neo-Hookean material that supports<br />

spatially varying material parameters. Provides functions to compute the energy, gradient, and Hessian<br />

<strong>of</strong> the Neo-Hookean material given the three invariants I, II, III. The implemented neo-Hookean material<br />

is described in [BW08], page 162.<br />

NeoHookeanIsotropicMaterial(TetMesh * tetMesh)<br />

The material parameters are read from the tet mesh, and are cached in the constructor. Throws an<br />

exception if the provided tet mesh does not consist <strong>of</strong> materials specifying E, ν.<br />

class HomogeneousNeoHookeanIsotropicMaterial : public IsotropicMaterial Neo-Hookean material<br />

with homogeneous (spatially global) material parameters. Provides functions to compute the energy,<br />

gradient, and Hessian <strong>of</strong> the neo-Hookean material given the three invariants I, II, III.<br />

HomogeneousNeoHookeanIsotropicMaterial(double E, double nu)<br />

Initializes the Young’s modulus E and the Poisson ratio nu <strong>of</strong> the material.<br />

class MooneyRivlinIsotropicMaterial : public IsotropicMaterial Mooney-Rivlin material that supports<br />

spatially varying material parameters.<br />

MooneyRivlinIsotropicMaterial(TetMesh * tetMesh)<br />

The material parameters are read from the tet mesh, and are cached in the constructor. Throws an<br />

exception if the provided tet mesh does not consist <strong>of</strong> Mooney-Rivlin materials. Provides functions to<br />

compute the energy, gradient, and Hessian <strong>of</strong> the Mooney-Rivlin material given the three invariants I, II, III.<br />

The implemented Mooney-Rivlin material is described in Section 3.5.5 <strong>of</strong> [Bow09].<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!