Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F75698411
material_hyper_elastic.hh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Aug 3, 18:21
Size
2 KB
Mime Type
text/x-c
Expires
Mon, Aug 5, 18:21 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
19594521
Attached To
rMSPPROTO µSpectre prototype implementation
material_hyper_elastic.hh
View Options
/**
* file material_hyper_elastic.hh
*
* @author Till Junge <till.junge@epfl.ch>
*
* @date 01 May 2017
*
* @brief Hyperelastic material law as used in Section 4 of
* de Geus et al. / Comput. Methods in Appl. Mech. Engrg.
* 318, (2017), 412–430 https://doi.org/10.1016/j.cma.2016.12.032
*
* @section LICENCE
*
* Copyright (C) 2017 Till Junge
*
* µSpectre 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 3, or (at
* your option) any later version.
*
* µSpectre 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 GNU Emacs; see the file COPYING. If not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include "material.hh"
#include <unsupported/Eigen/CXX11/Tensor>
#include <Eigen/Dense>
#include "materials/materials_toolbox.hh"
#ifndef MATERIAL_HYPER_ELASTIC_H
#define MATERIAL_HYPER_ELASTIC_H
namespace
muSpectre
{
template
<
Dim_t
DimS
,
Dim_t
DimM
>
class
MaterialHyperElastic
:
public
MaterialBase
<
DimS
,
DimM
>
{
public
:
using
parent
=
MaterialBase
<
DimS
,
DimM
>
;
using
SecondArray
=
typename
parent
::
SecondArray
;
using
FourthArray
=
typename
parent
::
FourthArray
;
using
SecondArrayMap
=
typename
parent
::
SecondArrayMap
;
using
FourthArrayMap
=
typename
parent
::
FourthArrayMap
;
using
VoigtConv
=
typename
parent
::
VoigtConv
;
using
SecondTens
=
typename
parent
::
SecondTens
;
using
SecondMap
=
typename
parent
::
SecondMap
;
using
FourthMap
=
typename
parent
::
FourthMap
;
using
FourthTens
=
typename
parent
::
FourthTens
;
//! Default constructor
MaterialHyperElastic
(
std
::
string
name
,
Real
Young
,
Real
Poisson
);
void
initialize
()
override
final
;
void
compute_First_Piola_Kirchhoff_stress
(
const
SecondArrayMap
&
F
,
SecondArrayMap
&
P
,
FourthArrayMap
&
K
)
override
final
;
private
:
const
static
bool
sym
=
false
;
protected
:
Real
Young
;
Real
Poisson
;
Real
lambda
;
Real
mu
;
Tensors
::
Tens4_t
<
DimM
>
C
;
//! Gradient, asymmetric Voigt
Eigen
::
Tensor
<
Real
,
3
>
gradF
;
//! second Piola-Kirchhoff stresses
Eigen
::
Tensor
<
Real
,
3
>
stressS
;
//! first Piola-Kirchhoff stresses
Eigen
::
Tensor
<
Real
,
3
>
stressP
;
//! Stiffness tensors
Eigen
::
Tensor
<
Real
,
5
>
stiffnessK
;
};
}
// muSpectre
#endif
/* MATERIAL_HYPER_ELASTIC_H */
Event Timeline
Log In to Comment