oomph::AnisotropicHookean Class Reference

#include <AnisotropicHookean.h>

+ Inheritance diagram for oomph::AnisotropicHookean:

Public Member Functions

void setAnisotropy (std::array< double, 3 > anisotropy)
 
 AnisotropicHookean (double *nu_pt, double *e_pt)
 
void calculate_second_piola_kirchhoff_stress (const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma)
 

Private Attributes

std::array< double, 3 > anisotropy_ { 1.0, 1.0, 1.0 }
 

Detailed Description

Adds anisotropy to the general Hookean constitutive law

Constructor & Destructor Documentation

◆ AnisotropicHookean()

oomph::AnisotropicHookean::AnisotropicHookean ( double nu_pt,
double e_pt 
)
inline

The constructor takes the pointers to values of material parameters: Poisson's ratio and Young's modulus.

49  : GeneralisedHookean( nu_pt, e_pt ) {}

Member Function Documentation

◆ calculate_second_piola_kirchhoff_stress()

void oomph::AnisotropicHookean::calculate_second_piola_kirchhoff_stress ( const DenseMatrix< double > &  g,
const DenseMatrix< double > &  G,
DenseMatrix< double > &  sigma 
)
inline

Calculate the contravariant 2nd Piola Kirchhoff stress tensor. Arguments are the covariant undeformed (stress-free) and deformed metric tensors, g and G, and the matrix in which to return the stress tensor.

61  {
62  GeneralisedHookean::calculate_second_piola_kirchhoff_stress(g, G, sigma);
63 
64  // Make anisotropic
65  const unsigned dim = sigma.nrow();
66  for (unsigned i = 0; i < dim; i++)
67  {
68  for ( unsigned j = 0; j < dim; j++ )
69  {
70  sigma( i, j) *= anisotropy_[i];
71  }
72  }
73 
74  // Symmetrize
75  for (unsigned i = 0; i < dim; i++)
76  {
77  for (unsigned j = 0; j < i; j++)
78  {
79  sigma(i, j) = sigma(j, i);
80  }
81  }
82  }
std::array< double, 3 > anisotropy_
Definition: AnisotropicHookean.h:38
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51

References anisotropy_, and constants::i.

◆ setAnisotropy()

void oomph::AnisotropicHookean::setAnisotropy ( std::array< double, 3 >  anisotropy)
inline
42  {
43  anisotropy_ = anisotropy;
44  }

References anisotropy_.

Member Data Documentation

◆ anisotropy_

std::array<double, 3> oomph::AnisotropicHookean::anisotropy_ { 1.0, 1.0, 1.0 }
private

The documentation for this class was generated from the following file: