HyperHDG
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t > Class Template Reference

Local solver for the equation that governs the bending and change of length of an elastic Bernoulli beam. More...

#include <bernoulli_beams.hxx>

Collaboration diagram for LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >:
Collaboration graph
[legend]

Classes

struct  data_type
 Define type of (hyperedge related) data that is stored in HyDataContainer. More...
 
struct  error_def
 Define how errors are evaluated. More...
 
struct  node_element
 Define type of node elements, especially with respect to nodal shape functions. More...
 

Public Types

typedef lSol_float_t constructor_value_type
 Class is constructed using a single double indicating the penalty parameter. More...
 

Public Member Functions

 LengtheningBernoulliBendingBeam (const constructor_value_type &tau=1.)
 Constructor for local solver. More...
 
template<class hyEdgeT , typename SmallMatInT , typename SmallMatOutT >
SmallMatOutT & trace_to_flux (const SmallMatInT &lambda_values_in, SmallMatOutT &lambda_values_out, hyEdgeT &hyper_edge, const lSol_float_t time=0.) const
 Evaluate local contribution to matrix–vector multiplication. More...
 
template<class hyEdgeT , typename SmallMatInT , typename SmallMatOutT >
SmallMatOutT & residual_flux (const SmallMatInT &lambda_values_in, SmallMatOutT &lambda_values_out, hyEdgeT &hyper_edge, const lSol_float_t time=0.) const
 Evaluate local contribution to residual. More...
 
template<class hyEdgeT >
std::array< lSol_float_t, 1U > errors (const std::array< std::array< lSol_float_t, n_glob_dofs_per_node()>, 2 *hyEdge_dimT > &lambda_values, hyEdgeT &hyper_edge, const lSol_float_t time=0.) const
 Local squared contribution to the L2 error. More...
 
template<typename abscissa_float_t , std::size_t sizeT, class input_array_t , class hyEdgeT >
std::array< std::array< lSol_float_t, Hypercube< hyEdge_dimT >::pow(sizeT)>, system_dimension()> bulk_values (const std::array< abscissa_float_t, sizeT > &abscissas, const input_array_t &lambda_values, hyEdgeT &hyper_edge, const lSol_float_t time=0.) const
 Evaluate local local reconstruction at tensorial products of abscissas. More...
 

Static Public Member Functions

static constexpr unsigned int hyEdge_dim ()
 Return template parameter hyEdge_dimT. More...
 
static constexpr unsigned int n_glob_dofs_per_node ()
 Evaluate amount of global degrees of freedom per hypernode. More...
 
static constexpr unsigned int system_dimension ()
 Dimension of of the solution evaluated with respect to a hyperedge. More...
 
static constexpr unsigned int node_system_dimension ()
 Dimension of of the solution evaluated with respect to a hypernode. More...
 

Private Attributes

const LengtheningBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t > len_beam
 The lengthening beam solver that does the lengthening of the beam. More...
 
const BernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t > ben_beam
 The bending beam solver that does the bending of the beam. More...
 

Detailed Description

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
class LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >

Local solver for the equation that governs the bending and change of length of an elastic Bernoulli beam.


Authors
Guido Kanschat, Heidelberg University, 2019–2020.
Andreas Rupp, Heidelberg University, 2019–2020.

Member Typedef Documentation

◆ constructor_value_type

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
typedef lSol_float_t LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::constructor_value_type

Class is constructed using a single double indicating the penalty parameter.


Constructor & Destructor Documentation

◆ LengtheningBernoulliBendingBeam()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::LengtheningBernoulliBendingBeam ( const constructor_value_type tau = 1.)
inline

Constructor for local solver.


Parameters
tauPenalty parameter of HDG scheme.

Member Function Documentation

◆ bulk_values()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
template<typename abscissa_float_t , std::size_t sizeT, class input_array_t , class hyEdgeT >
std::array<std::array<lSol_float_t, Hypercube<hyEdge_dimT>::pow(sizeT)>, system_dimension()> LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::bulk_values ( const std::array< abscissa_float_t, sizeT > &  abscissas,
const input_array_t &  lambda_values,
hyEdgeT &  hyper_edge,
const lSol_float_t  time = 0. 
) const
inline

Evaluate local local reconstruction at tensorial products of abscissas.


Template Parameters
absc_float_tFloating type for the abscissa values.
abscissas_sizeTSize of the array of array of abscissas.
input_array_tType of input array.
hyEdgeTThe geometry type / typename of the considered hyEdge's geometry.
Parameters
abscissasAbscissas of the supporting points.
lambda_valuesThe values of the skeletal variable's coefficients.
hyper_edgeThe geometry of the considered hyperedge (of typename GeomT).
timeTime.
Return values
func_valuesFunction values at tensorial points.
Here is the call graph for this function:

◆ errors()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
template<class hyEdgeT >
std::array<lSol_float_t, 1U> LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::errors ( const std::array< std::array< lSol_float_t, n_glob_dofs_per_node()>, 2 *hyEdge_dimT > &  lambda_values,
hyEdgeT &  hyper_edge,
const lSol_float_t  time = 0. 
) const
inline

Local squared contribution to the L2 error.


Template Parameters
hyEdgeTThe geometry type / typename of the considered hyEdge's geometry.
Parameters
lambda_valuesThe values of the skeletal variable's coefficients.
hyper_edgeThe geometry of the considered hyperedge (of typename GeomT).
timeTime at which analytic functions are evaluated.
Return values
vec_bLocal part of vector b.

◆ hyEdge_dim()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
static constexpr unsigned int LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::hyEdge_dim ( )
inlinestaticconstexpr

Return template parameter hyEdge_dimT.


Return values
hyEdge_dimTDimension of hypergraph's hyperedges.

◆ n_glob_dofs_per_node()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
static constexpr unsigned int LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::n_glob_dofs_per_node ( )
inlinestaticconstexpr

Evaluate amount of global degrees of freedom per hypernode.


This number must be equal to HyperNodeFactory::n_glob_dofs_per_node()() of the HyperNodeFactory cooperating with this object.

Return values
n_dofsNumber of global degrees of freedom per hypernode.
Here is the call graph for this function:

◆ node_system_dimension()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
static constexpr unsigned int LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::node_system_dimension ( )
inlinestaticconstexpr

Dimension of of the solution evaluated with respect to a hypernode.


◆ residual_flux()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
template<class hyEdgeT , typename SmallMatInT , typename SmallMatOutT >
SmallMatOutT& LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::residual_flux ( const SmallMatInT &  lambda_values_in,
SmallMatOutT &  lambda_values_out,
hyEdgeT &  hyper_edge,
const lSol_float_t  time = 0. 
) const
inline

Evaluate local contribution to residual.


◆ system_dimension()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
static constexpr unsigned int LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::system_dimension ( )
inlinestaticconstexpr

Dimension of of the solution evaluated with respect to a hyperedge.


◆ trace_to_flux()

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
template<class hyEdgeT , typename SmallMatInT , typename SmallMatOutT >
SmallMatOutT& LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::trace_to_flux ( const SmallMatInT &  lambda_values_in,
SmallMatOutT &  lambda_values_out,
hyEdgeT &  hyper_edge,
const lSol_float_t  time = 0. 
) const
inline

Evaluate local contribution to matrix–vector multiplication.


Member Data Documentation

◆ ben_beam

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
const BernoulliBendingBeam<hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t> LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::ben_beam
private

The bending beam solver that does the bending of the beam.


◆ len_beam

template<unsigned int hyEdge_dimT, unsigned int space_dim, unsigned int poly_deg, unsigned int quad_deg, typename lSol_float_t = double>
const LengtheningBeam<hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t> LocalSolver::LengtheningBernoulliBendingBeam< hyEdge_dimT, space_dim, poly_deg, quad_deg, lSol_float_t >::len_beam
private

The lengthening beam solver that does the lengthening of the beam.



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