Namespaces | |
namespace | AdaptiveStepSizing |
namespace | AffordanceCollections |
namespace | Concepts |
namespace | FEHelper |
namespace | plot |
namespace | Python |
namespace | ResultEvaluators |
namespace | traits |
namespace | utils |
Classes | |
struct | AffordanceCollectionImpl |
Struct representing a collection of affordances. More... | |
struct | AlgoInfo |
Additional information about the TrustRegion algorithm. More... | |
struct | ArcLength |
Structure representing the subsidiary function for the standard arc-length method. More... | |
class | AutoDiffFE |
AutoDiffFE class, an automatic differentiation wrapper for finite elements. More... | |
class | Basis |
Wrapper class for a hierarchical basis constructed from a pre-basis. More... | |
struct | BulkModulusAndLamesFirstParameter |
Structure representing Lame's first parameter and shear modulus. More... | |
struct | ControlInformation |
Structure containing information about the control results. More... | |
class | ControlLogger |
ControlLogger class for logging control messages. More... | |
class | ControlSubsamplingVertexVTKWriter |
ControlSubsamplingVertexVTKWriter class for writing VTK files with subsampling based on control messages. More... | |
struct | ConvertLameConstants |
Conversion utility for Lame's constants. More... | |
struct | DefaultMembraneStrain |
class | DenseFlatAssembler |
DenseFlatAssembler assembles matrix quantities using a flat basis Indexing strategy. The matrix is stored in a dense matrix format. This format is exploited during the assembly process. More... | |
class | DirichletValues |
Class for handling Dirichlet boundary conditions in Ikarus. More... | |
struct | DisplacementControl |
Structure representing the subsidiary function for the displacement control method. More... | |
struct | EASH1E21 |
Structure representing EAS for H1 with 21 enhanced strains. More... | |
struct | EASH1E9 |
Structure representing EAS for H1 with 9 enhanced strains. More... | |
struct | EASQ1E4 |
EASQ1E4 structure for Enhanced Assumed Strains (EAS) with linear strains and 4 enhanced modes. More... | |
struct | EASQ1E5 |
Structure representing EAS for Q1 with 5 enhanced strains. More... | |
struct | EASQ1E7 |
Structure representing EAS for Q1 with 7 enhanced strains. More... | |
class | EnhancedAssumedStrains |
Wrapper class for using Enhanced Assumed Strains (EAS) with displacement based elements. More... | |
class | FERequirements |
Class representing the requirements for finite element calculations. More... | |
class | FErequirements |
Class representing the requirements for finite element calculations. More... | |
struct | FETraits |
Template structure defining traits for a given grid element entity type. More... | |
class | FlatAssemblerBase |
The FlatAssemblerBase takes care of common subtasks done by flat assemblers. More... | |
struct | FlatIndexMergingStrategy |
Define the flat index-merging strategy for a given strategy IMS More... | |
struct | FlatIndexMergingStrategy< Dune::Functions::BasisFactory::BlockedInterleaved > |
struct | FlatIndexMergingStrategy< Dune::Functions::BasisFactory::BlockedLexicographic > |
struct | FlatPreBasis |
Transform a PreBasis into one with flat index-merging strategyThis utility takes a pre-basis and converts recursively all index-merging strategies into their flat analog, i.e. BlockedInterleaved is converted into FlatInterleaved and BlockedLexicographic is transformed into FlatLexicographic . More... | |
struct | FlatPreBasis< Dune::Functions::CompositePreBasis< IMS, SPB... > > |
struct | FlatPreBasis< Dune::Functions::PowerPreBasis< IMS, SPB, C > > |
class | GenericObserver |
GenericObserver class for observing specific messages. More... | |
class | IkarusInstance |
Singleton class representing an instance of the Ikarus framework. More... | |
class | IObservable |
Generic observable interface for the Observer design pattern. See [3] for a description of the design pattern. More... | |
class | IObserver |
Generic observer interface for the Observer design pattern. See [3] for a description of the design pattern. More... | |
class | KirchhoffLoveShell |
Kirchhoff-Love shell finite element class. More... | |
struct | LamesFirstParameterAndShearModulus |
class | LinearElastic |
LinearElastic class represents a linear elastic finite element. More... | |
struct | LinearElasticityT |
Implementation of the Linear Elasticity material model.The energy is computed as. More... | |
class | LinearSolverTemplate |
A type-erased class which wraps most of the linear solvers available in Eigen. More... | |
class | LoadControl |
The LoadControl control routine increases the last parameter of a nonlinear operator and calls a nonlinear solver.This class represents the LoadControl control routine. It increments the last parameter of a nonlinear operator and utilizes a nonlinear solver, such as Newton's method, to solve the resulting system at each step. More... | |
struct | LoadControlSubsidiaryFunction |
Structure representing the subsidiary function for the load control method. More... | |
struct | Material |
Interface classf or materials. More... | |
struct | NeoHookeT |
Implementation of the Neo-Hookean material model.The energy is computed as. More... | |
class | NewtonRaphson |
Implementation of the Newton-Raphson method for solving nonlinear equations. More... | |
struct | NewtonRaphsonSettings |
Settings for the Newton-Raphson solver. More... | |
class | NewtonRaphsonWithSubsidiaryFunction |
Newton-Raphson solver with subsidiary function. More... | |
struct | NewtonRaphsonWithSubsidiaryFunctionSettings |
Settings for the Newton-Raphson solver with subsidiary function. More... | |
class | NonLinearElastic |
NonLinearElastic class represents a non-linear elastic finite element. More... | |
class | NonLinearOperator |
Represents a NonLinearOperator class for handling nonlinear operators. More... | |
class | NonLinearOperator< Impl::Functions< DerivativeArgs... >, Impl::Parameter< ParameterArgs... > > |
NonLinearOperator is a class taking linear algebra function and their arguments. The fcuntion are assumed to be derivatvies of each other w.r.t. the first parameter. | |
struct | NonLinearSolverInformation |
Information about the result of a non-linear solver. More... | |
class | NonLinearSolverLogger |
Implementation of an observer for logging non-linear solvers.This class inherits from the IObserver class and provides specific implementations for updating based on NonLinearSolverMessages. More... | |
class | PathFollowing |
The PathFollowing control routine for path-following analysis. More... | |
class | PowerBasisFE |
PowerBasisFE class for working with a power basis in FlatInterLeaved elements. More... | |
class | ResultFunction |
Wrapper to evaluate results for a vtkwriter. More... | |
class | ResultRequirements |
Class representing the requirements for obtaining specific results. More... | |
class | ResultTypeMap |
Class representing a map of result types to result arrays. More... | |
class | ScalarAssembler |
ScalarAssembler assembles scalar quantities. More... | |
class | ScalarFieldFE |
ScalarFieldFE class, a class for Single-DOF elements using a scalar basis. More... | |
class | SparseFlatAssembler |
SparseFlatAssembler assembles matrix quantities using a flat basis Indexing strategy. The matrix is stored in a sparse matrix format. This format is exploited during the assembly process. More... | |
struct | Stats |
Information about the TrustRegion solver. More... | |
struct | StVenantKirchhoffT |
Implementation of the Saint Venant-Kirchhoff material model.The energy is computed as. More... | |
struct | SubsidiaryArgs |
Structure containing arguments for subsidiary functions. More... | |
class | Traction |
Traction class represents distributed traction load that can be applied. More... | |
struct | TraitsFromFE |
Traits for handling finite elements.see https://en.wikipedia.org/wiki/Lam%C3%A9_parameters. More... | |
class | TrustRegion |
Trust Region solver for non-linear optimization problems. More... | |
struct | TrustRegionSettings |
Configuration settings for the TrustRegion solver. More... | |
struct | VanishingStress |
VanishingStress material model that enforces stress components to be zero. More... | |
class | VectorFlatAssembler |
VectorFlatAssembler assembles vector quantities using a flat basis Indexing strategy. More... | |
class | Volume |
Volume class represents distributed volume load that can be applied. More... | |
struct | YoungsModulusAndBulkModulus |
Structure representing Young's modulus and Lame's first parameter. More... | |
struct | YoungsModulusAndLamesFirstParameter |
Structure representing bulk modulus and Lame's first parameter. More... | |
struct | YoungsModulusAndPoissonsRatio |
Structure representing Young's modulus and shear modulus. More... | |
struct | YoungsModulusAndShearModulus |
Structure representing Young's modulus and bulk modulus. More... | |
Concepts | |
concept | FEAffordance |
Concept to check if a given type is one of the predefined affordance enums or the AffordanceCollectionImpl. | |
concept | ResultTypeConcept |
concept | CorrectStrainSize |
Template concept for ensuring correct strain size. | |
concept | MaterialParameterTuple |
Concept for checking if a type is a valid material parameter tuple. | |
Typedefs | |
template<typename Geometry > | |
using | EAS2DVariant = std::variant< std::monostate, EASQ1E4< Geometry >, EASQ1E5< Geometry >, EASQ1E7< Geometry > > |
Variant type for 2D EAS structures. More... | |
template<typename Geometry > | |
using | EAS3DVariant = std::variant< std::monostate, EASH1E9< Geometry >, EASH1E21< Geometry > > |
Variant type for 3D EAS structures. More... | |
typedef LinearElasticityT< double > | LinearElasticity |
Convenience typedef for LinearElasticity with double as ScalarType. More... | |
typedef NeoHookeT< double > | NeoHooke |
Alias for NeoHookeT with double as the default scalar type. More... | |
typedef StVenantKirchhoffT< double > | StVenantKirchhoff |
Alias for StVenantKirchhoffT with double as the default scalar type. More... | |
typedef LinearSolverTemplate< double > | LinearSolver |
template<class PreBasis > | |
using | FlatPreBasis_t = typename FlatPreBasis< PreBasis >::type |
Type alias for flatted PreBasis. More... | |
Functions | |
constexpr std::string | toString (ScalarAffordances _e) |
constexpr std::string | toString (VectorAffordances _e) |
constexpr std::string | toString (MatrixAffordances _e) |
constexpr std::string | toString (FEParameter _e) |
constexpr std::string | toString (FESolutions _e) |
constexpr std::string | toString (ResultType _e) |
template<typename Geometry > | |
Eigen::Matrix3d | calcTransformationMatrix2D (const Geometry &geometry) |
Calculates the 2D transformation matrix for Enhanced Assumed Strains (EAS). More... | |
template<typename Geometry > | |
Eigen::Matrix< double, 6, 6 > | calcTransformationMatrix3D (const Geometry &geometry) |
Calculates the 3D transformation matrix for Enhanced Assumed Strains (EAS). More... | |
template<typename Material , typename Strains > | |
consteval bool | hasCorrectSize () |
Template function for checking if the strain size is correct. More... | |
template<StrainTags tag, typename Derived > | |
auto | createGreenLagrangianStrains (const Eigen::MatrixBase< Derived > &eMB) |
Create Green-Lagrangian strain based on the input. More... | |
template<StrainTags tag, typename Derived > | |
decltype(auto) | createDeformationGradient (const Eigen::MatrixBase< Derived > &eMB) |
Create the deformation gradient based on the input. More... | |
template<StrainTags tag, typename Derived > | |
decltype(auto) | createRightCauchyGreen (const Eigen::MatrixBase< Derived > &eMB) |
Create right Cauchy-Green tensor based on the input. More... | |
template<StrainTags from, StrainTags to, typename Derived > | |
decltype(auto) | transformStrain (const Eigen::MatrixBase< Derived > &eRaw) |
Transform strain from one type to another. More... | |
constexpr std::string | toString (StrainTags _e) |
constexpr std::string | toString (StressTags _e) |
constexpr std::string | toString (TangentModuliTags _e) |
template<Impl::StressIndexPair... stressIndexPair, typename MaterialImpl > | |
auto | makeVanishingStress (MaterialImpl mat, typename MaterialImpl::ScalarType p_tol=1e-12) |
Factory function to create a VanishingStress material with specified stress indices. More... | |
template<typename MaterialImpl > | |
auto | planeStress (const MaterialImpl &mat, typename MaterialImpl::ScalarType p_tol=1e-8) |
Factory function to create a VanishingStress material for plane stress conditions. More... | |
template<typename MaterialImpl > | |
auto | shellMaterial (const MaterialImpl &mat, typename MaterialImpl::ScalarType p_tol=1e-8) |
Factory function to create a VanishingStress material for a shell material with zero normal stress condition. More... | |
template<typename MaterialImpl > | |
auto | beamMaterial (const MaterialImpl &mat, typename MaterialImpl::ScalarType p_tol=1e-8) |
Factory function to create a VanishingStress material for a beam material with two zero normal stress condition. More... | |
Eigen::Matrix3d | planeStressLinearElasticMaterialTangent (double E, double nu) |
Computes the plane stress linear elastic material tangent matrix. More... | |
Eigen::Matrix< double, 6, 6 > | linearElasticMaterialTangent3D (double E, double nu) |
Computes the 3D linear elastic material tangent matrix. More... | |
ConvertLameConstants< YoungsModulusAndPoissonsRatio > | convertLameConstants (const YoungsModulusAndPoissonsRatio &p_vp) |
ConvertLameConstants< YoungsModulusAndShearModulus > | convertLameConstants (const YoungsModulusAndShearModulus &p_vp) |
ConvertLameConstants< YoungsModulusAndBulkModulus > | convertLameConstants (const YoungsModulusAndBulkModulus &p_vp) |
ConvertLameConstants< LamesFirstParameterAndShearModulus > | convertLameConstants (const LamesFirstParameterAndShearModulus &p_vp) |
ConvertLameConstants< BulkModulusAndLamesFirstParameter > | convertLameConstants (const BulkModulusAndLamesFirstParameter &p_vp) |
auto | toLamesFirstParameterAndShearModulus (const YoungsModulusAndPoissonsRatio &matParameter) |
Converts Young's modulus and Poisson's ratio to Lame's first parameter and shear modulus. More... | |
auto | toYoungsModulusAndPoissonsRatio (const LamesFirstParameterAndShearModulus &matParameter) |
Converts Lame's first parameter and shear modulus to Young's modulus and Poisson's ratio. More... | |
template<typename NonLinearOperatorImpl , typename LinearSolver = utils::SolverDefault, typename UpdateFunctionType = utils::UpdateDefault> | |
auto | makeNewtonRaphson (const NonLinearOperatorImpl &p_nonLinearOperator, LinearSolver &&p_linearSolver={}, UpdateFunctionType &&p_updateFunction={}) |
Function to create a NewtonRaphson solver instance. More... | |
template<typename NonLinearOperatorImpl , typename LinearSolver = utils::SolverDefault, typename UpdateFunctionType = utils::UpdateDefault> | |
auto | makeNewtonRaphsonWithSubsidiaryFunction (const NonLinearOperatorImpl &p_nonLinearOperator, LinearSolver &&p_linearSolver={}, UpdateFunctionType &&p_updateFunction={}) |
Function to create a NewtonRaphson with subsidiary function solver instance. More... | |
template<typename NonLinearOperatorImpl , PreConditioner preConditioner = PreConditioner::IncompleteCholesky, typename UpdateFunctionType = utils::UpdateDefault> | |
auto | makeTrustRegion (const NonLinearOperatorImpl &p_nonLinearOperator, UpdateFunctionType &&p_updateFunction={}) |
Creates an instance of the TrustRegion solver. More... | |
template<typename GridView , typename PreBasisFactory > | |
auto | makeBasis (const GridView &gv, const PreBasisFactory &pb) |
Factory function to create a Basis object. More... | |
template<typename PreBasis > | |
auto | makeBasis (const Dune::Functions::DefaultGlobalBasis< PreBasis > &gb) |
Factory function to create a Basis object from a DefaultGlobalBasis. More... | |
template<typename Derived > | |
auto | transpose (const Eigen::EigenBase< Derived > &A) |
template<typename ScalarType , int size> | |
Dune::FieldVector< ScalarType, size > | toDune (const Eigen::Vector< ScalarType, size > &vec) |
Create Eigen::Vector to Dune::FieldVector. More... | |
template<typename ScalarType , int rows> | |
Dune::FieldVector< ScalarType, rows > | toDune (const Eigen::Matrix< ScalarType, rows, 0 > &vec) |
Convert Eigen::Matrix to Dune::FieldVector. More... | |
template<typename ScalarType , int rows, int cols> | |
Dune::FieldMatrix< ScalarType, rows, cols > | toDune (const Eigen::Matrix< ScalarType, rows, cols > &mat) |
Convert Eigen::Matrix to Dune::FieldMatrix. More... | |
template<typename ScalarType , int size> | |
Eigen::Map< const Eigen::Vector< ScalarType, size > > | toEigenMap (const Dune::FieldVector< ScalarType, size > &vec) |
View a Dune::FieldVector as an Eigen::Vector using Map, no copies take place. More... | |
template<typename ScalarType , int size> | |
Eigen::Map< Eigen::Vector< ScalarType, size > > | toEigenMap (Dune::FieldVector< ScalarType, size > &vec) |
View a constant Dune::FieldVector as a constant Eigen::Vector, no copies take place. More... | |
template<class PreBasis > | |
decltype(auto) | flatPreBasis (PreBasis const &preBasis) |
Generator function for a flatted PreBasis. More... | |
void | init (int argc, char **argv, bool enableFileLogger=true) |
Initializes the Ikarus framework. More... | |
template<typename Derived > | |
auto | orthonormalizeMatrixColumns (const Eigen::MatrixBase< Derived > &A) |
Orthonormalizes all Matrix columns using Gram-Schmidt Orthogonalization. More... | |
template<typename ValueType > | |
auto | viewAsFlatEigenVector (Dune::BlockVector< ValueType > &blockedVector) |
View Dune::BlockVector as an Eigen::Vector. More... | |
template<typename ValueType > | |
auto | viewAsFlatEigenVector (const Dune::BlockVector< ValueType > &blockedVector) |
View const Dune::BlockVector as an Eigen::Vector. More... | |
template<typename ValueType > | |
auto | viewAsEigenMatrixAsDynFixed (Dune::BlockVector< ValueType > &blockedVector) |
View Dune::BlockVector as an Eigen::Matrix with dynamic rows and fixed columns depending on the size of the ValueType. More... | |
template<typename ValueType > | |
auto | viewAsEigenMatrixAsDynFixed (const Dune::BlockVector< ValueType > &blockedVector) |
Const view Dune::BlockVector as an Eigen::Matrix with dynamic rows and fixed columns depending on the size of the ValueType. More... | |
template<typename ValueType > | |
auto | viewAsEigenMatrixFixedDyn (Dune::BlockVector< ValueType > &blockedVector) |
View Dune::BlockVector as an Eigen::Matrix with fixed rows depending on the size of the ValueType and dynamic columns. More... | |
template<typename ValueType > | |
auto | viewAsEigenMatrixFixedDyn (const Dune::BlockVector< ValueType > &blockedVector) |
Const view Dune::BlockVector as an Eigen::Matrix with fixed rows depending on the size of the ValueType and dynamic columns. More... | |
template<typename Type > requires requires { Type::correctionSize; } | |
size_t | correctionSize (const Dune::BlockVector< Type > &a) |
Returns the total correction size of a block vector with a Manifold as the underlying type. More... | |
template<typename Type > requires requires { Type::valueSize; } | |
size_t | valueSize (const Dune::BlockVector< Type > &a) |
Returns the total value size of a block vector with a Manifold as the underlying type. More... | |
template<typename Type , typename Derived > requires ( Ikarus::Concepts::AddAssignAble<Type, decltype(b.template segment<Type::correctionSize>(0))>and requires() { Type::correctionSize; }) | |
Dune::BlockVector< Type > & | operator+= (Dune::BlockVector< Type > &a, const Eigen::MatrixBase< Derived > &b) |
Enables the += operator for Dune::BlockVector += Eigen::Vector. More... | |
template<typename Type , typename Derived > requires ( Ikarus::Concepts::AddAssignAble<Type, decltype(b.template segment<Type::correctionSize>(0))>and requires() { Type::correctionSize; }) | |
Dune::BlockVector< Type > & | operator-= (Dune::BlockVector< Type > &a, const Eigen::MatrixBase< Derived > &b) |
Enables the -= operator for Dune::BlockVector += Eigen::Vector. More... | |
template<typename... Types, typename Derived > | |
Dune::TupleVector< Types... > & | operator+= (Dune::TupleVector< Types... > &a, const Eigen::MatrixBase< Derived > &b) |
Enables the += operator for Dune::TupleVector += Eigen::Vector. More... | |
template<typename ManifoldPoint , typename Derived > requires ( Ikarus::Concepts::AddAssignAble<ManifoldPoint, decltype(b.template segment<ManifoldPoint::valueSize>(0))>and requires() { ManifoldPoint::valueSize; }) | |
Dune::BlockVector< ManifoldPoint > & | addInEmbedding (Dune::BlockVector< ManifoldPoint > &a, const Eigen::MatrixBase< Derived > &b) |
Enables the addition in the embedding space of a vector in the space M^n, where M is a manifold with the points of type ManifoldPoint. More... | |
template<typename Derived > requires (!std::floating_point<Derived>) | |
auto | norm (const Eigen::MatrixBase< Derived > &v) |
Adding free norm function to Eigen types. More... | |
auto | norm (const std::floating_point auto &v) |
Helper Free Function to have the same interface as for Eigen Vector Types. More... | |
template<typename Scalar , int size> | |
auto | operator* (const Eigen::DiagonalMatrix< Scalar, size > &a, const Eigen::DiagonalMatrix< Scalar, size > &b) |
Eigen::DiagonalMatrix Product Missing in Eigen. More... | |
template<typename Scalar , int size> | |
auto | operator+= (Eigen::DiagonalMatrix< Scalar, size > &a, const Eigen::DiagonalMatrix< Scalar, size > &b) |
In-place addition for Eigen::DiagonalMatrix. More... | |
template<typename Derived , typename Scalar , int size> | |
auto | operator+ (const Eigen::MatrixBase< Derived > &a, const Eigen::DiagonalMatrix< Scalar, size > &b) |
Eigen::Matrix + Eigen::DiagonalMatrix addition missing in Eigen. More... | |
template<typename Derived , typename Scalar , int size> | |
auto | operator+ (const Eigen::DiagonalMatrix< Scalar, size > &a, const Eigen::MatrixBase< Derived > &b) |
Eigen::DiagonalMatrix + Eigen::Matrix addition missing in Eigen. More... | |
template<typename Scalar , int size> | |
auto | operator- (const Eigen::DiagonalMatrix< Scalar, size > &a) |
Unary minus for Eigen::DiagonalMatrix. More... | |
template<typename Derived , typename Derived2 > | |
auto | operator+ (const Eigen::MatrixBase< Derived > &a, const Eigen::DiagonalWrapper< Derived2 > &b) |
Addition of Eigen::Matrix and Eigen::DiagonalWrapper. More... | |
template<typename Derived , typename Derived2 > | |
auto | operator+ (const Eigen::DiagonalWrapper< Derived > &a, const Eigen::MatrixBase< Derived2 > &b) |
Addition of Eigen::DiagonalWrapper and Eigen::Matrix. More... | |
template<typename Scalar , int size> | |
std::ostream & | operator<< (std::ostream &os, const Eigen::DiagonalMatrix< Scalar, size > &a) |
Output stream operator for Eigen::DiagonalMatrix. More... | |
template<typename Derived > | |
Derived | sym (const Eigen::MatrixBase< Derived > &A) |
Returns the symmetric part of a matrix. More... | |
template<typename Derived > | |
Derived | skew (const Eigen::MatrixBase< Derived > &A) |
Returns the skew part of a matrix. More... | |
template<typename Derived > | |
void | printForMaple (const Eigen::EigenBase< Derived > &A) |
Method to print the matrix in a format that can directly be copied to Maple. More... | |
template<typename FieldVectorT > | |
auto | createRandomVector (typename FieldVectorT::value_type lower=-1, typename FieldVectorT::value_type upper=1) |
Creates a random vector of the specified type within a given range. More... | |
template<typename ScalarType > | |
Eigen::Matrix< ScalarType, 3, 3 > | skew (const Eigen::Vector< ScalarType, 3 > &a) |
Create skew 3x3 matrix from 3d vector. More... | |
template<typename Derived , size_t sizeOfCondensedIndices> | |
auto | staticCondensation (const Eigen::MatrixBase< Derived > &E, const std::array< size_t, sizeOfCondensedIndices > &indices) |
Performs static condensation on a square matrix. More... | |
template<typename Derived , size_t sizeOfRemovedCols> | |
auto | removeCol (const Eigen::MatrixBase< Derived > &E, const std::array< size_t, sizeOfRemovedCols > &indices) |
Removes specified columns from a matrix. More... | |
template<typename ST , typename MaterialImpl > | |
auto | toVoigtAndMaybeReduce (const Eigen::Matrix< ST, 3, 3 > &E, const MaterialImpl &material, bool isStrain=true) |
Converts a 3x3 matrix to Voigt notation, possibly reducing it based on material properties. More... | |
template<typename Material , typename Derived > | |
decltype(auto) | enlargeIfReduced (const Eigen::MatrixBase< Derived > &E) |
Enlarges a matrix if it reduced in the context of material laws, i.e., VanishingStress If the material is not reduced the untouched matrix is returned and rendering the function as a NoOp. More... | |
template<typename MessageType > | |
MessageType & | increment (MessageType &e) |
Increments the given enum value. More... | |
template<typename T > requires std::integral<T> | |
constexpr T | ct_sqrt (T x) |
Compile-time square root for integer types. More... | |
template<typename... Args> | |
auto | parameter (Args &&... args) |
Creates a Parameter object. More... | |
template<typename... Args> | |
auto | functions (Args &&... args) |
Creates a Functions object. More... | |
template<typename... DerivativeArgs, typename... ParameterArgs> | |
auto | initResults (const Impl::Functions< DerivativeArgs... > &derivativesFunctions, const Impl::Parameter< ParameterArgs... > ¶meterI) |
Initializes the results for functions and parameters. More... | |
template<typename Derived , typename T , auto rank> | |
Eigen::Tensor< typename Derived::Scalar, rank > | tensorView (const Eigen::EigenBase< Derived > &matrix, const std::array< T, rank > &dims) |
View an Eigen matrix as an Eigen Tensor with specified dimensions. More... | |
auto | dyadic (const auto &A_ij, const auto &B_kl) |
Computes the dyadic product of two Eigen tensors. More... | |
template<typename ScalarType = double, int dim = 3> | |
auto | symmetricIdentityFourthOrder () |
Generates a symmetric identity fourth-order tensor. More... | |
template<typename ScalarType = double, int dim = 3> | |
auto | symmetricFourthOrder (const auto &A, const auto &B) |
Generates a symmetric fourth-order tensor based on two second-order input tensors. More... | |
template<typename ScalarType = double, int dim = 3> | |
auto | identityFourthOrder () |
Generates an identity fourth-order tensor. More... | |
template<typename AType , typename BType > | |
auto | fourthOrderIKJL (const Eigen::MatrixBase< AType > &A, const Eigen::MatrixBase< BType > &B) |
Computes the IKJL product of two matrices. More... | |
template<typename ScalarType , long int dim> | |
auto | symTwoSlots (const Eigen::TensorFixedSize< ScalarType, Eigen::Sizes< dim, dim, dim, dim > > &t, const std::array< size_t, 2 > &slots) |
Creates a symmetric fourth-order tensor in the two specified slots of the input tensor. More... | |
constexpr Eigen::Index | toVoigt (Eigen::Index i, Eigen::Index j) noexcept |
Converts 2D indices to Voigt notation index. More... | |
template<typename ScalarType = double> | |
Eigen::Matrix< ScalarType, 6, 6 > | toVoigt (const Eigen::TensorFixedSize< ScalarType, Eigen::Sizes< 3, 3, 3, 3 > > &ft) |
Converts a fourth-order tensor of fixed size 3x3x3x3 to a Voigt notation matrix of size 6x6. More... | |
template<typename ST , int size, int Options> requires (size > 0 and size <= 3) | |
auto | toVoigt (const Eigen::Matrix< ST, size, size, Options, size, size > &E, bool isStrain=true) |
Converts a square 2x2 or 3x3 matrix to a Voigt notation vector. More... | |
template<typename ST , int size> requires (size == 1 or size == 3 or size == 6) | |
auto | fromVoigt (const Eigen::Vector< ST, size > &EVoigt, bool isStrain=true) |
Converts a vector given in Voigt notation to a matrix. More... | |
constexpr std::array< size_t, 2 > | fromVoigt (size_t i) |
Converts a Voigt notation index to matrix indices. More... | |
template<typename ScalarType > | |
auto | fromVoigt (const Eigen::Matrix< ScalarType, 6, 6 > &CVoigt) |
Converts a matrix in Voigt notation to a Fourth-order tensor. More... | |
Variables | |
constexpr VectorAffordances | forces = VectorAffordances::forces |
constexpr MatrixAffordances | stiffness = MatrixAffordances::stiffness |
constexpr MatrixAffordances | stiffnessdiffBucklingVector = MatrixAffordances::stiffnessdiffBucklingVector |
constexpr MatrixAffordances | mass = MatrixAffordances::mass |
constexpr ScalarAffordances | potentialEnergy = ScalarAffordances::mechanicalPotentialEnergy |
template<int dim> | |
constexpr auto | voigtNotationContainer = std::get<dim - 1>(Impl::voigtIndices) |
Container for Voigt notation indices based on dimension.1D: 0,0 2D: 0,0 1,1 0,1 3D: 0,0 1,1 2,2 1,2 0,2 0,1. More... | |
using Ikarus::EAS2DVariant = typedef std::variant<std::monostate, EASQ1E4<Geometry>, EASQ1E5<Geometry>, EASQ1E7<Geometry> > |
This variant type holds different EAS structures for 2D elements.
Geometry | The geometry type. |
using Ikarus::EAS3DVariant = typedef std::variant<std::monostate, EASH1E9<Geometry>, EASH1E21<Geometry> > |
This variant type holds different EAS structures for 3D elements.
Geometry | The geometry type. |
using Ikarus::FlatPreBasis_t = typedef typename FlatPreBasis<PreBasis>::type |
typedef LinearElasticityT<double> Ikarus::LinearElasticity |
typedef LinearSolverTemplate<double> Ikarus::LinearSolver |
typedef NeoHookeT<double> Ikarus::NeoHooke |
typedef StVenantKirchhoffT<double> Ikarus::StVenantKirchhoff |
|
strong |
|
strong |
|
strong |
The prefix s and d stand for sparse and dense solvers and the second prefix i and d stand for iterative or direct solvers for the sparse case
|
strong |
auto Ikarus::beamMaterial | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | p_tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
Eigen::Matrix3d Ikarus::calcTransformationMatrix2D | ( | const Geometry & | geometry | ) |
This function computes the transformation matrix for 2D EAS using the provided geometry.
Geometry | The geometry type. |
geometry | Reference to the geometry object. |
Eigen::Matrix< double, 6, 6 > Ikarus::calcTransformationMatrix3D | ( | const Geometry & | geometry | ) |
This function computes the transformation matrix for 3D EAS using the provided geometry.
Geometry | The geometry type. |
geometry | Reference to the geometry object. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
constexpr |
T | The integral type for which square root is calculated. |
x | The value for which square root is calculated. |
auto Ikarus::functions | ( | Args &&... | args | ) |
Args | The argument types. |
args | The tuple of arguments. |
consteval bool Ikarus::hasCorrectSize | ( | ) |
The given strain quantity has to be a Eigen::Vector6 or a Eigen::Matrix3
Material | Type of the material. |
Strains | Type of the strains. |
|
inline |
argc | The number of command-line arguments. |
argv | The command-line arguments. |
enableFileLogger | Flag indicating whether to enable the file logger. |
https://patorjk.com/software/taag/#p=testall&f=Univers&t=IKARUS (font: Lean)
auto Ikarus::initResults | ( | const Impl::Functions< DerivativeArgs... > & | derivativesFunctions, |
const Impl::Parameter< ParameterArgs... > & | parameterI | ||
) |
DerivativeArgs | The types of derivative arguments. |
ParameterArgs | The types of parameter arguments. |
derivativesFunctions | The Functions object for derivative arguments. |
parameterI | The Parameter object for parameter arguments. |
|
inline |
E | Young's modulus. |
nu | Poisson's ratio. |
auto Ikarus::makeBasis | ( | const Dune::Functions::DefaultGlobalBasis< PreBasis > & | gb | ) |
PreBasis | The type of the pre-basis associated with the DefaultGlobalBasis. |
gb | The DefaultGlobalBasis. |
auto Ikarus::makeBasis | ( | const GridView & | gv, |
const PreBasisFactory & | pb | ||
) |
auto Ikarus::makeNewtonRaphson | ( | const NonLinearOperatorImpl & | p_nonLinearOperator, |
LinearSolver && | p_linearSolver = {} , |
||
UpdateFunctionType && | p_updateFunction = {} |
||
) |
NonLinearOperatorImpl | Type of the nonlinear operator to solve. |
LinearSolver | Type of the linear solver used internally (default is SolverDefault). |
UpdateFunctionType | Type of the update function (default is UpdateDefault). |
p_nonLinearOperator | Nonlinear operator to solve. |
p_linearSolver | Linear solver used internally (default is SolverDefault). |
p_updateFunction | Update function (default is UpdateDefault). |
auto Ikarus::makeNewtonRaphsonWithSubsidiaryFunction | ( | const NonLinearOperatorImpl & | p_nonLinearOperator, |
LinearSolver && | p_linearSolver = {} , |
||
UpdateFunctionType && | p_updateFunction = {} |
||
) |
NonLinearOperatorImpl | Type of the nonlinear operator to solve. |
LinearSolver | Type of the linear solver used internally (default is SolverDefault). |
UpdateFunctionType | Type of the update function (default is UpdateDefault). |
p_nonLinearOperator | Nonlinear operator to solve. |
p_linearSolver | Linear solver used internally (default is SolverDefault). |
p_updateFunction | Update function (default is UpdateDefault). |
auto Ikarus::makeTrustRegion | ( | const NonLinearOperatorImpl & | p_nonLinearOperator, |
UpdateFunctionType && | p_updateFunction = {} |
||
) |
NonLinearOperatorImpl | Type of the nonlinear operator to solve. |
preConditioner | Type of the preconditioner used internally (default is IncompleteCholesky). |
UpdateFunctionType | Type of the update function (default is UpdateDefault). |
p_nonLinearOperator | Nonlinear operator to solve. |
p_updateFunction | Update function (default is UpdateDefault). |
auto Ikarus::makeVanishingStress | ( | MaterialImpl | mat, |
typename MaterialImpl::ScalarType | p_tol = 1e-12 |
||
) |
stressIndexPair | The array of StressIndexPair representing fixed stress components. |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
auto Ikarus::parameter | ( | Args &&... | args | ) |
Args | The argument types. |
args | The tuple of arguments. |
auto Ikarus::planeStress | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | p_tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
|
inline |
E | Young's modulus. |
nu | Poisson's ratio. |
auto Ikarus::shellMaterial | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | p_tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
Dune::FieldVector< ScalarType, rows > Ikarus::toDune | ( | const Eigen::Matrix< ScalarType, rows, 0 > & | vec | ) |
The matrix has fixed row size. The matrix needs to have a single column.
ScalarType | The scalar type of the vectors. |
rows | The number of rows in the matrix. |
vec | The Eigen::Matrix to be converted. |
Dune::FieldMatrix< ScalarType, rows, cols > Ikarus::toDune | ( | const Eigen::Matrix< ScalarType, rows, cols > & | mat | ) |
The matrix has fixed rows and column size
ScalarType | The scalar type of the matrix. |
rows | The number of rows in the matrix. |
cols | The number of columns in the matrix. |
mat | The Eigen::Matrix to be converted. |
Dune::FieldVector< ScalarType, size > Ikarus::toDune | ( | const Eigen::Vector< ScalarType, size > & | vec | ) |
ScalarType | The scalar type of the vectors. |
size | The size of the vectors. |
vec | The Eigen::Vector to be converted. |
Eigen::Map< const Eigen::Vector< ScalarType, size > > Ikarus::toEigenMap | ( | const Dune::FieldVector< ScalarType, size > & | vec | ) |
ScalarType | The scalar type of the vector. |
size | The size of the vector. |
vec | The Dune::FieldVector to be viewed as Eigen::Vector. |
Eigen::Map< Eigen::Vector< ScalarType, size > > Ikarus::toEigenMap | ( | Dune::FieldVector< ScalarType, size > & | vec | ) |
ScalarType | The scalar type of the vector. |
size | The size of the vector. |
vec | The Dune::FieldVector to be viewed as Eigen::Vector. |
|
inline |
matParameter | Young's modulus and Poisson's ratio. |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
inline |
matParameter | Lame's first parameter and shear modulus. |
auto Ikarus::transpose | ( | const Eigen::EigenBase< Derived > & | A | ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |