3 #include <funcy/examples/volumetric_penalty_functions.h> 4 #include <funcy/funcy.h> 17 template < linalg::Matrix Mat,
int n = linalg::dim< Mat >() >
18 auto generate_incompressible_skin_hendriks(
double c0,
double c1,
const Mat& F )
20 using namespace linalg;
22 auto si1 =
i1( S() ) - n;
23 auto si2 =
i2( S() ) - n;
24 auto f = c0 * si1 + c1 * si1 * si2;
42 template < linalg::Matrix Mat,
int n = linalg::dim< Mat >() >
45 return finalize( detail::generate_incompressible_skin_hendriks< Mat, n >( c0, c1, F ) );
61 template < linalg::Matrix Mat,
int n = linalg::dim< Mat >() >
64 return incompressible_skin_hendriks< Mat, n >( 9.4, 82., F );
82 template <
class InflationPenalty,
class CompressionPenalty,
linalg::Matrix Mat,
83 int n = linalg::dim< Mat >() >
86 return finalize( detail::generate_incompressible_skin_hendriks< Mat, n >( c0, c1, F ) +
87 volumetric_penalty< InflationPenalty, CompressionPenalty >( d0, d1, F ) );
106 template <
class InflationPenalty,
class CompressionPenalty,
linalg::Matrix M,
107 int n = linalg::dim< M >() >
110 return compressible_skin_hendriks< InflationPenalty, CompressionPenalty, M, n >(
111 9.4, 82., d0, d1, F );
auto compressible_skin_hendriks(double c0, double c1, double d0, double d1, const Mat &F)
Compressible version of the model for skin tissue of .
Definition: skin_tissue_hendriks.h:84
auto strain_tensor(const Mat &A)
Generate the right Cauchy-Green strain tensor .
Definition: strain_tensor.h:122
concept Matrix
clang-format off
Definition: concepts.h:63
Main namespace of the funcy library.
auto finalize(F &&f) requires(static_check
Finish function definition.
Definition: finalize.h:248
auto incompressible_skin_hendriks(double c0, double c1, const Mat &F)
Model for skin tissue of .
Definition: skin_tissue_hendriks.h:43
auto i2(M &&A)
Convenient generation of second principal invariant for .
Definition: principal_invariants.h:162
auto i1(Arg &&x)
Generate first principal invariant.
Definition: principal_invariants.h:151