Flexodeal (Lite) v1.3.2
A 3D musculoskeletal simulation library
 
Loading...
Searching...
No Matches
Flexodeal::Solid< dim > Class Template Reference

Classes

struct  Errors
 
struct  PerTaskData_ASM
 
struct  PerTaskData_SC
 
struct  PerTaskData_TIMESTEP
 
struct  PerTaskData_UQPH
 
struct  ScratchData_ASM
 
struct  ScratchData_SC
 
struct  ScratchData_TIMESTEP
 
struct  ScratchData_UQPH
 

Public Member Functions

 Solid (const std::string &input_file, const std::string &strain_file, const std::string &activation_file)
 
void run ()
 

Private Types

enum  { u_dof = 0 , p_dof = 1 , J_dof = 2 }
 

Private Member Functions

void make_grid ()
 
void determine_boundary_ids ()
 
void system_setup ()
 
void determine_component_extractors ()
 
void make_constraints (const int it_nr)
 
void assemble_system ()
 
void assemble_system_one_cell (const typename DoFHandler< dim >::active_cell_iterator &cell, ScratchData_ASM &scratch, PerTaskData_ASM &data) const
 
void assemble_sc ()
 
void assemble_sc_one_cell (const typename DoFHandler< dim >::active_cell_iterator &cell, ScratchData_SC &scratch, PerTaskData_SC &data)
 
void copy_local_to_global_sc (const PerTaskData_SC &data)
 
void setup_qph ()
 
void update_qph_incremental (const BlockVector< double > &solution_delta)
 
void update_qph_incremental_one_cell (const typename DoFHandler< dim >::active_cell_iterator &cell, ScratchData_UQPH &scratch, PerTaskData_UQPH &data)
 
void copy_local_to_global_UQPH (const PerTaskData_UQPH &)
 
void update_timestep ()
 
void update_timestep_one_cell (const typename DoFHandler< dim >::active_cell_iterator &cell, ScratchData_TIMESTEP &scratch, PerTaskData_TIMESTEP &data)
 
void copy_local_to_global_timestep (const PerTaskData_TIMESTEP &)
 
void solve_nonlinear_timestep (BlockVector< double > &solution_delta)
 
std::pair< unsigned int, double > solve_linear_system (BlockVector< double > &newton_update)
 
BlockVector< double > get_total_solution (const BlockVector< double > &solution_delta) const
 
void output_results ()
 
void output_vtk () const
 
void output_along_fibre_stretch () const
 
void output_energies () const
 
void output_forces () const
 
void output_mean_stretch_and_pennation () const
 
void output_stresses () const
 
void output_gearing_info () const
 
void output_activation_muscle_length ()
 
void ouput_displacements_at_select_locations () const
 
void get_error_residual (Errors &error_residual)
 
void get_error_update (const BlockVector< double > &newton_update, Errors &error_update)
 
std::pair< double, double > get_error_dilation () const
 
double compute_vol_current () const
 
void print_conv_footer ()
 

Static Private Member Functions

static void print_conv_header ()
 

Private Attributes

std::vector< types::global_dof_index > global_dof_index_u_left
 
std::vector< types::global_dof_index > global_dof_index_u_mid
 
std::vector< types::global_dof_index > global_dof_index_u_right
 
Parameters::AllParameters parameters
 
double vol_reference
 
Triangulation< dim > triangulation
 
std::vector< unsigned int > list_of_boundary_ids
 
Time time
 
TimerOutput timer
 
TabularFunction u_dir
 
TabularFunction activation_function
 
CellDataStorage< typename Triangulation< dim >::cell_iterator, PointHistory< dim > > quadrature_point_history
 
const unsigned int degree
 
const FESystem< dim > fe
 
DoFHandler< dim > dof_handler
 
const unsigned int dofs_per_cell
 
const FEValuesExtractors::Vector u_fe
 
const FEValuesExtractors::Scalar p_fe
 
const FEValuesExtractors::Scalar J_fe
 
std::vector< types::global_dof_index > dofs_per_block
 
std::vector< types::global_dof_index > element_indices_u
 
std::vector< types::global_dof_index > element_indices_p
 
std::vector< types::global_dof_index > element_indices_J
 
const QGauss< dim > qf_cell
 
const QGauss< dim - 1 > qf_face
 
const unsigned int n_q_points
 
const unsigned int n_q_points_f
 
AffineConstraints< double > constraints
 
BlockSparsityPattern sparsity_pattern
 
BlockSparseMatrix< double > tangent_matrix
 
BlockVector< double > system_rhs
 
BlockVector< double > solution_n
 
Errors error_residual
 
Errors error_residual_0
 
Errors error_residual_norm
 
Errors error_update
 
Errors error_update_0
 
Errors error_update_norm
 
char save_dir [80]
 

Static Private Attributes

static const unsigned int n_blocks = 3
 
static const unsigned int n_components = dim + 2
 
static const unsigned int first_u_component = 0
 
static const unsigned int p_component = dim
 
static const unsigned int J_component = dim + 1
 

Member Enumeration Documentation

◆ anonymous enum

template<int dim>
anonymous enum
private
Enumerator
u_dof 
p_dof 
J_dof 

Constructor & Destructor Documentation

◆ Solid()

template<int dim>
Flexodeal::Solid< dim >::Solid ( const std::string & input_file,
const std::string & strain_file,
const std::string & activation_file )

Member Function Documentation

◆ assemble_sc()

template<int dim>
void Flexodeal::Solid< dim >::assemble_sc ( )
private

◆ assemble_sc_one_cell()

template<int dim>
void Flexodeal::Solid< dim >::assemble_sc_one_cell ( const typename DoFHandler< dim >::active_cell_iterator & cell,
ScratchData_SC & scratch,
PerTaskData_SC & data )
private

◆ assemble_system()

template<int dim>
void Flexodeal::Solid< dim >::assemble_system ( )
private

◆ assemble_system_one_cell()

template<int dim>
void Flexodeal::Solid< dim >::assemble_system_one_cell ( const typename DoFHandler< dim >::active_cell_iterator & cell,
ScratchData_ASM & scratch,
PerTaskData_ASM & data ) const
private

◆ compute_vol_current()

template<int dim>
double Flexodeal::Solid< dim >::compute_vol_current ( ) const
private

◆ copy_local_to_global_sc()

template<int dim>
void Flexodeal::Solid< dim >::copy_local_to_global_sc ( const PerTaskData_SC & data)
private

◆ copy_local_to_global_timestep()

template<int dim>
void Flexodeal::Solid< dim >::copy_local_to_global_timestep ( const PerTaskData_TIMESTEP & )
inlineprivate

◆ copy_local_to_global_UQPH()

template<int dim>
void Flexodeal::Solid< dim >::copy_local_to_global_UQPH ( const PerTaskData_UQPH & )
inlineprivate

◆ determine_boundary_ids()

template<int dim>
void Flexodeal::Solid< dim >::determine_boundary_ids ( )
private

◆ determine_component_extractors()

template<int dim>
void Flexodeal::Solid< dim >::determine_component_extractors ( )
private

◆ get_error_dilation()

template<int dim>
std::pair< double, double > Flexodeal::Solid< dim >::get_error_dilation ( ) const
private

◆ get_error_residual()

template<int dim>
void Flexodeal::Solid< dim >::get_error_residual ( Errors & error_residual)
private

◆ get_error_update()

template<int dim>
void Flexodeal::Solid< dim >::get_error_update ( const BlockVector< double > & newton_update,
Errors & error_update )
private

◆ get_total_solution()

template<int dim>
BlockVector< double > Flexodeal::Solid< dim >::get_total_solution ( const BlockVector< double > & solution_delta) const
private

◆ make_constraints()

template<int dim>
void Flexodeal::Solid< dim >::make_constraints ( const int it_nr)
private

◆ make_grid()

template<int dim>
void Flexodeal::Solid< dim >::make_grid ( )
private

◆ ouput_displacements_at_select_locations()

template<int dim>
void Flexodeal::Solid< dim >::ouput_displacements_at_select_locations ( ) const
private

◆ output_activation_muscle_length()

template<int dim>
void Flexodeal::Solid< dim >::output_activation_muscle_length ( )
private

◆ output_along_fibre_stretch()

template<int dim>
void Flexodeal::Solid< dim >::output_along_fibre_stretch ( ) const
private

◆ output_energies()

template<int dim>
void Flexodeal::Solid< dim >::output_energies ( ) const
private

◆ output_forces()

template<int dim>
void Flexodeal::Solid< dim >::output_forces ( ) const
private

◆ output_gearing_info()

template<int dim>
void Flexodeal::Solid< dim >::output_gearing_info ( ) const
private

◆ output_mean_stretch_and_pennation()

template<int dim>
void Flexodeal::Solid< dim >::output_mean_stretch_and_pennation ( ) const
private

◆ output_results()

template<int dim>
void Flexodeal::Solid< dim >::output_results ( )
private

◆ output_stresses()

template<int dim>
void Flexodeal::Solid< dim >::output_stresses ( ) const
private

◆ output_vtk()

template<int dim>
void Flexodeal::Solid< dim >::output_vtk ( ) const
private

◆ print_conv_footer()

template<int dim>
void Flexodeal::Solid< dim >::print_conv_footer ( )
private

◆ print_conv_header()

template<int dim>
void Flexodeal::Solid< dim >::print_conv_header ( )
staticprivate

◆ run()

template<int dim>
void Flexodeal::Solid< dim >::run ( )

◆ setup_qph()

template<int dim>
void Flexodeal::Solid< dim >::setup_qph ( )
private

◆ solve_linear_system()

template<int dim>
std::pair< unsigned int, double > Flexodeal::Solid< dim >::solve_linear_system ( BlockVector< double > & newton_update)
private

◆ solve_nonlinear_timestep()

template<int dim>
void Flexodeal::Solid< dim >::solve_nonlinear_timestep ( BlockVector< double > & solution_delta)
private

◆ system_setup()

template<int dim>
void Flexodeal::Solid< dim >::system_setup ( )
private

◆ update_qph_incremental()

template<int dim>
void Flexodeal::Solid< dim >::update_qph_incremental ( const BlockVector< double > & solution_delta)
private

◆ update_qph_incremental_one_cell()

template<int dim>
void Flexodeal::Solid< dim >::update_qph_incremental_one_cell ( const typename DoFHandler< dim >::active_cell_iterator & cell,
ScratchData_UQPH & scratch,
PerTaskData_UQPH & data )
private

◆ update_timestep()

template<int dim>
void Flexodeal::Solid< dim >::update_timestep ( )
private

◆ update_timestep_one_cell()

template<int dim>
void Flexodeal::Solid< dim >::update_timestep_one_cell ( const typename DoFHandler< dim >::active_cell_iterator & cell,
ScratchData_TIMESTEP & scratch,
PerTaskData_TIMESTEP & data )
private

Member Data Documentation

◆ activation_function

template<int dim>
TabularFunction Flexodeal::Solid< dim >::activation_function
private

◆ constraints

template<int dim>
AffineConstraints<double> Flexodeal::Solid< dim >::constraints
private

◆ degree

template<int dim>
const unsigned int Flexodeal::Solid< dim >::degree
private

◆ dof_handler

template<int dim>
DoFHandler<dim> Flexodeal::Solid< dim >::dof_handler
private

◆ dofs_per_block

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::dofs_per_block
private

◆ dofs_per_cell

template<int dim>
const unsigned int Flexodeal::Solid< dim >::dofs_per_cell
private

◆ element_indices_J

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::element_indices_J
private

◆ element_indices_p

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::element_indices_p
private

◆ element_indices_u

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::element_indices_u
private

◆ error_residual

template<int dim>
Errors Flexodeal::Solid< dim >::error_residual
private

◆ error_residual_0

template<int dim>
Errors Flexodeal::Solid< dim >::error_residual_0
private

◆ error_residual_norm

template<int dim>
Errors Flexodeal::Solid< dim >::error_residual_norm
private

◆ error_update

template<int dim>
Errors Flexodeal::Solid< dim >::error_update
private

◆ error_update_0

template<int dim>
Errors Flexodeal::Solid< dim >::error_update_0
private

◆ error_update_norm

template<int dim>
Errors Flexodeal::Solid< dim >::error_update_norm
private

◆ fe

template<int dim>
const FESystem<dim> Flexodeal::Solid< dim >::fe
private

◆ first_u_component

template<int dim>
const unsigned int Flexodeal::Solid< dim >::first_u_component = 0
staticprivate

◆ global_dof_index_u_left

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::global_dof_index_u_left
private

◆ global_dof_index_u_mid

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::global_dof_index_u_mid
private

◆ global_dof_index_u_right

template<int dim>
std::vector<types::global_dof_index> Flexodeal::Solid< dim >::global_dof_index_u_right
private

◆ J_component

template<int dim>
const unsigned int Flexodeal::Solid< dim >::J_component = dim + 1
staticprivate

◆ J_fe

template<int dim>
const FEValuesExtractors::Scalar Flexodeal::Solid< dim >::J_fe
private

◆ list_of_boundary_ids

template<int dim>
std::vector<unsigned int> Flexodeal::Solid< dim >::list_of_boundary_ids
private

◆ n_blocks

template<int dim>
const unsigned int Flexodeal::Solid< dim >::n_blocks = 3
staticprivate

◆ n_components

template<int dim>
const unsigned int Flexodeal::Solid< dim >::n_components = dim + 2
staticprivate

◆ n_q_points

template<int dim>
const unsigned int Flexodeal::Solid< dim >::n_q_points
private

◆ n_q_points_f

template<int dim>
const unsigned int Flexodeal::Solid< dim >::n_q_points_f
private

◆ p_component

template<int dim>
const unsigned int Flexodeal::Solid< dim >::p_component = dim
staticprivate

◆ p_fe

template<int dim>
const FEValuesExtractors::Scalar Flexodeal::Solid< dim >::p_fe
private

◆ parameters

template<int dim>
Parameters::AllParameters Flexodeal::Solid< dim >::parameters
private

◆ qf_cell

template<int dim>
const QGauss<dim> Flexodeal::Solid< dim >::qf_cell
private

◆ qf_face

template<int dim>
const QGauss<dim - 1> Flexodeal::Solid< dim >::qf_face
private

◆ quadrature_point_history

template<int dim>
CellDataStorage<typename Triangulation<dim>::cell_iterator, PointHistory<dim> > Flexodeal::Solid< dim >::quadrature_point_history
private

◆ save_dir

template<int dim>
char Flexodeal::Solid< dim >::save_dir[80]
private

◆ solution_n

template<int dim>
BlockVector<double> Flexodeal::Solid< dim >::solution_n
private

◆ sparsity_pattern

template<int dim>
BlockSparsityPattern Flexodeal::Solid< dim >::sparsity_pattern
private

◆ system_rhs

template<int dim>
BlockVector<double> Flexodeal::Solid< dim >::system_rhs
private

◆ tangent_matrix

template<int dim>
BlockSparseMatrix<double> Flexodeal::Solid< dim >::tangent_matrix
private

◆ time

template<int dim>
Time Flexodeal::Solid< dim >::time
private

◆ timer

template<int dim>
TimerOutput Flexodeal::Solid< dim >::timer
mutableprivate

◆ triangulation

template<int dim>
Triangulation<dim> Flexodeal::Solid< dim >::triangulation
private

◆ u_dir

template<int dim>
TabularFunction Flexodeal::Solid< dim >::u_dir
private

◆ u_fe

template<int dim>
const FEValuesExtractors::Vector Flexodeal::Solid< dim >::u_fe
private

◆ vol_reference

template<int dim>
double Flexodeal::Solid< dim >::vol_reference
private

The documentation for this class was generated from the following file: