RFFGen
 All Classes Namespaces Files Functions Typedefs Enumerations Groups
modifiedPrincipalInvariants.hh
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the C++-library RFFGen. */
4 /* Copyright 2015 Lars Lubkoll */
5 /* */
6 /* RFFGen is free software: you can redistribute it and/or modify */
7 /* it under the terms of the GNU General Public License as published by */
8 /* the Free Software Foundation, either version 3 of the License, or */
9 /* (at your option) any later version. */
10 /* */
11 /* RFFGen is distributed in the hope that it will be useful, */
12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14 /* GNU General Public License for more details. */
15 /* */
16 /* You should have received a copy of the GNU General Public License */
17 /* along with RFFGen. If not, see <http://www.gnu.org/licenses/>. */
18 /* */
19 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
20 
21 #ifndef RFFGEN_MODIFIED_PRINCIPAL_INVARIANTS_HH
22 #define RFFGEN_MODIFIED_PRINCIPAL_INVARIANTS_HH
23 
24 #include "principalInvariants.hh"
25 #include "shiftedInvariant.hh"
26 #include "../Util/modifyInvariants.hh"
27 
28 namespace RFFGen
29 {
33  namespace Concepts { template <class> struct SymmetricMatrixConceptCheck; }
38  namespace LinearAlgebra
39  {
45  template <class Matrix, class = Concepts::SymmetricMatrixConceptCheck<Matrix> >
47  : ModifyFirstPrincipalInvariant<Matrix,FirstPrincipalInvariant<Matrix> >
48  {
51 
57  : ModifyFirstPrincipalInvariant<Matrix,FirstPrincipalInvariant<Matrix> > ( A , FirstPrincipalInvariant<Matrix>(A) )
58  {}
59  };
60 
66  template <class Matrix, class = Concepts::SymmetricMatrixConceptCheck<Matrix> >
68  : ModifySecondPrincipalInvariant<Matrix,SecondPrincipalInvariant<Matrix> >
69  {
72 
78  : ModifySecondPrincipalInvariant<Matrix,SecondPrincipalInvariant<Matrix> > ( A , SecondPrincipalInvariant<Matrix>(A) )
79  {}
80  };
81 
86  template <class Matrix>
88 
89 
94  template < class Matrix , int offset = LinearAlgebra::dimension<Matrix>() >
96 
101  template < class Matrix , int offset = LinearAlgebra::dimension<Matrix>() >
103 
108  template <class Matrix>
110  }
111 }
112 
113 #endif // RFFGEN_MODIFIED_PRINCIPAL_INVARIANTS_HH
SecondModifiedPrincipalInvariant(const Matrix &A)
Constructor.
Definition: modifiedPrincipalInvariants.hh:77
Possibly scaled, shifted invariant , where for the first two (principal,modified) invariants and fo...
Definition: shiftedInvariant.hh:43
SecondModifiedPrincipalInvariant()=default
Default constructor.
Second principal invariant for .
Definition: principalInvariants.hh:114
ThirdPrincipalInvariant< Matrix > ThirdModifiedPrincipalInvariant
Third modified principal invariant is the same as the third principal invariant. This invariant descr...
Definition: modifiedPrincipalInvariants.hh:87
Determinant< Matrix > ThirdPrincipalInvariant
Third principal invariant for .
Definition: principalInvariants.hh:172
FirstModifiedPrincipalInvariant()=default
Default constructor.
Isochoric (volume-preserving), second modified principal invariant , where is the second and is the...
Definition: modifiedPrincipalInvariants.hh:67
Isochoric (volume-preserving), first modified principal invariant , where is the first and is the t...
Definition: modifiedPrincipalInvariants.hh:46
FirstModifiedPrincipalInvariant(const Matrix &A)
Constructor.
Definition: modifiedPrincipalInvariants.hh:56
Trace< Matrix > FirstPrincipalInvariant
First principal invariant for .
Definition: principalInvariants.hh:107