G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsMuscleAssembler.h
Go to the documentation of this file.
1 
15 #pragma once
16 
18 
19 namespace gismo
20 {
21 
26 template <class T>
28 {
29 public:
31 
34  const gsMultiBasis<T> & basisDisp,
35  const gsMultiBasis<T> & basisPres,
36  const gsBoundaryConditions<T> & bconditions,
37  const gsFunction<T> & body_force,
38  const gsPiecewiseFunction<T> & tendonMuscleDistribution,
39  const gsVector<T> & fiberDirection);
40 
41  //--------------------- SYSTEM ASSEMBLY ----------------------------------//
42 
46  virtual bool assemble(const gsMatrix<T> & solutionVector,
47  const std::vector<gsMatrix<T> > & fixedDoFs);
48 
49  //--------------------- SPECIALS ----------------------------------//
50 
52  virtual void constructCauchyStresses(const gsMultiPatch<T> & displacement,
53  const gsMultiPatch<T> & pressure,
54  gsPiecewiseFunction<T> & result,
55  stress_components::components component = stress_components::von_mises) const;
56 
57 protected:
58  using Base::m_options;
59  using Base::m_pde_ptr;
60  using Base::m_system;
61  gsPiecewiseFunction<T> const & muscleTendon;
62  gsVector<T> const & fiberDir;
63 };
64 
65 
66 } // namespace gismo ends
67 
68 #ifndef GISMO_BUILD_LIB
69 #include GISMO_HPP_HEADER(gsMuscleAssembler.hpp)
70 #endif
memory::shared_ptr< gsPde< T > > m_pde_ptr
Definition: gsAssembler.h:276
gsOptionList m_options
Options.
Definition: gsAssembler.h:285
A function from a n-dimensional domain to an m-dimensional image.
Definition: gsFunction.h:59
Assembles the stiffness matrix and the right-hand side vector for linear and nonlinear elasticity for...
Definition: gsElasticityAssembler.h:31
const gsMultiPatch< T > & patches() const
Return the multipatch.
Definition: gsAssembler.h:601
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
Provides linear and nonlinear elasticity systems for 2D plain strain and 3D continua.
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33
gsSparseSystem< T > m_system
Global sparse linear system.
Definition: gsAssembler.h:290
Assembler for incompressible nonlinear elasticity problem with a muscle material model. The material model is based on the paper by M.H.Gfrerer and B.Simeon &quot;Fiber-based modeling and simulation of skeletal muscles&quot;.
Definition: gsMuscleAssembler.h:27
Class containing a set of boundary conditions.
Definition: gsBoundaryConditions.h:341
A function depending on an index i, typically referring to a patch/sub-domain. On each patch a differ...
Definition: gsPiecewiseFunction.h:28
virtual void assemble()
Main assemble routine, to be implemented in derived classes.
Definition: gsAssembler.hpp:51
virtual void constructCauchyStresses(const gsMultiPatch< T > &displacement, const gsMultiPatch< T > &pressure, gsPiecewiseFunction< T > &result, stress_components::components component=stress_components::von_mises) const
Construct Cauchy stresses for evaluation or visualization.
Definition: gsMuscleAssembler.hpp:86
components
Definition: gsBaseUtils.h:111
gsMuscleAssembler(const gsMultiPatch< T > &patches, const gsMultiBasis< T > &basisDisp, const gsMultiBasis< T > &basisPres, const gsBoundaryConditions< T > &bconditions, const gsFunction< T > &body_force, const gsPiecewiseFunction< T > &tendonMuscleDistribution, const gsVector< T > &fiberDirection)
Constructor of mixed formulation (displacement + pressure)
Definition: gsMuscleAssembler.hpp:29