MoReFEM
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes
MoReFEM::InputMicrosphere< TimeManagerT > Class Template Reference

Contains all the Parameter that are related to the properties of a InputMicrosphere. More...

#include <InputMicrosphere.hpp>

Collaboration diagram for MoReFEM::InputMicrosphere< TimeManagerT >:

Public Types

using self = InputMicrosphere<TimeManagerT>
 Alias to the type of the class.
 
using unique_ptr = std::unique_ptr<self>
 Alias to unique pointer to const object.
 
template<std::size_t N>
using array_unique_ptr = std::array<unique_ptr, N>
 Alias to array of unique pointer to const object.
 
using scalar_parameter_type = ScalarParameter<TimeManagerT>
 Alias to the type of scalar parameter used along with current operator.
 

Public Member Functions

void Print (std::ostream &stream) const
 Print the content of InputMicrosphere assuming all parameters are spatially constant.
 
const scalar_parameter_typeGetInPlaneFiberDispersionI4 () const
 Constant accessor to the in-plane fiber dispersion associated to the 4th invariant.
 
const scalar_parameter_typeGetOutOfPlaneFiberDispersionI4 () const
 Constant accessor to the out-of-plane fiber dispersion associated to the 4th invariant.
 
const scalar_parameter_typeGetFiberStiffnessDensityI4 () const
 Constant accessor to stiffness of the fibers associated with the 4th invariant.
 
const scalar_parameter_typeGetInPlaneFiberDispersionI6 () const
 Constant accessor to the in-plane fiber dispersion associated to the 6th invariant.
 
const scalar_parameter_typeGetOutOfPlaneFiberDispersionI6 () const
 Constant accessor to the out-of-plane fiber dispersion associated to the 6th invariant.
 
const scalar_parameter_typeGetFiberStiffnessDensityI6 () const
 Constant accessor to stiffness of the fibers associated with the 6th invariant.
 
bool IsInPlaneFiberDispersionI4 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
bool IsOutOfPlaneFiberDispersionI4 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
bool IsFiberStiffnessDensityI4 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
bool IsInPlaneFiberDispersionI6 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
bool IsOutOfPlaneFiberDispersionI6 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
bool IsFiberStiffnessDensityI6 () const noexcept
 Whether the parameter is relevant for the Model considered.
 
Special members.
template<::MoReFEM::Advanced::Concept::MoReFEMDataType MoReFEMDataT>
 InputMicrosphere (const MoReFEMDataT &morefem_data, const Domain &domain, const QuadratureRulePerTopology &quadrature_rule_per_topology)
 Constructor.
 
 ~InputMicrosphere ()=default
 Destructor.
 
 InputMicrosphere (const InputMicrosphere &rhs)=delete
 The copy constructor.
 
 InputMicrosphere (InputMicrosphere &&rhs)=delete
 The move constructor.
 
InputMicrosphereoperator= (const InputMicrosphere &rhs)=delete
 The (copy) operator=.
 
InputMicrosphereoperator= (InputMicrosphere &&rhs)=delete
 The (move) operator=.
 

Private Member Functions

const DomainGetDomain () const noexcept
 Domain upon which the InputMicrosphere is described.
 
const QuadratureRulePerTopologyGetQuadratureRulePerTopology () const noexcept
 Quadrature rule to use for each type of topology.
 

Private Attributes

const Domaindomain_
 Domain upon which the InputMicrosphere is described.
 
const QuadratureRulePerTopologyquadrature_rule_per_topology_
 Quadrature rule to use for each type of topology.
 
scalar_parameter_type::template array_unique_ptr< 6 > input_microsphere_
 All six parameters to define the fiber dispersions (in and out of plane) and the stiffness related to I4 and I6.
 

Detailed Description

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
class MoReFEM::InputMicrosphere< TimeManagerT >

Contains all the Parameter that are related to the properties of a InputMicrosphere.

Some of them might be deactivated if not used, with a properly placed "ignore" in the input data file given as constructor argument.

Member Typedef Documentation

◆ self

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
using MoReFEM::InputMicrosphere< TimeManagerT >::self = InputMicrosphere<TimeManagerT>

Alias to the type of the class.

◆ scalar_parameter_type

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
using MoReFEM::InputMicrosphere< TimeManagerT >::scalar_parameter_type = ScalarParameter<TimeManagerT>

Alias to the type of scalar parameter used along with current operator.

Constructor & Destructor Documentation

◆ InputMicrosphere() [1/3]

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
template<::MoReFEM::Advanced::Concept::MoReFEMDataType MoReFEMDataT>
MoReFEM::InputMicrosphere< TimeManagerT >::InputMicrosphere ( const MoReFEMDataT & morefem_data,
const Domain & domain,
const QuadratureRulePerTopology & quadrature_rule_per_topology )
explicit

Constructor.

Parameters
[in]morefem_dataThe object which encapsulates some stuff that acts as global data, such as:
  • The content of the input data.
  • Mpi related information.
  • The directory into which output is to be written.
  • Management of time iterations
[in]domainDomain upon which the Parameter is defined; this Domain MUST be associated with a Mesh (more often than not domain encompasses all the Coords of its associated Mesh). The reason it is a Domain and not a Mesh is that in some cases (fibers for instance) we might want to define it only on a subset of a Mesh.
Parameters
[in]quadrature_rule_per_topologyQuadrature rule for each relevant topology (if one useful in the Model is not specified there an exception will be thrown when usage is attempted). Do not deallocate this raw pointer: it is assumed the actual object is stored in an object such as VariationalFormulation or a Model, probably under a const_unique_ptr to avoid bothering with manual deallocation.

◆ InputMicrosphere() [2/3]

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
MoReFEM::InputMicrosphere< TimeManagerT >::InputMicrosphere ( const InputMicrosphere< TimeManagerT > & rhs)
delete

The copy constructor.

Parameters
[in]rhsThe object from which the construction occurs.

◆ InputMicrosphere() [3/3]

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
MoReFEM::InputMicrosphere< TimeManagerT >::InputMicrosphere ( InputMicrosphere< TimeManagerT > && rhs)
delete

The move constructor.

Parameters
[in]rhsThe object from which the construction occurs.

Member Function Documentation

◆ operator=() [1/2]

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
InputMicrosphere & MoReFEM::InputMicrosphere< TimeManagerT >::operator= ( const InputMicrosphere< TimeManagerT > & rhs)
delete

The (copy) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ operator=() [2/2]

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
InputMicrosphere & MoReFEM::InputMicrosphere< TimeManagerT >::operator= ( InputMicrosphere< TimeManagerT > && rhs)
delete

The (move) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ Print()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
void MoReFEM::InputMicrosphere< TimeManagerT >::Print ( std::ostream & stream) const

Print the content of InputMicrosphere assuming all parameters are spatially constant.

Parameters
[in,out]streamStream upon which object information are written.

◆ GetInPlaneFiberDispersionI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetInPlaneFiberDispersionI4 ( ) const

Constant accessor to the in-plane fiber dispersion associated to the 4th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Contains all the Parameter that are related to the properties of a InputMicrosphere.
Definition InputMicrosphere.hpp:64
bool IsInPlaneFiberDispersionI4() const noexcept
Whether the parameter is relevant for the Model considered.
const scalar_parameter_type & GetInPlaneFiberDispersionI4() const
Constant accessor to the in-plane fiber dispersion associated to the 4th invariant.
Returns
The Parameter object.

◆ GetOutOfPlaneFiberDispersionI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetOutOfPlaneFiberDispersionI4 ( ) const

Constant accessor to the out-of-plane fiber dispersion associated to the 4th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Returns
The Parameter object.

◆ GetFiberStiffnessDensityI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetFiberStiffnessDensityI4 ( ) const

Constant accessor to stiffness of the fibers associated with the 4th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Returns
The Parameter object.

◆ GetInPlaneFiberDispersionI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetInPlaneFiberDispersionI6 ( ) const

Constant accessor to the in-plane fiber dispersion associated to the 6th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Returns
The Parameter object.

◆ GetOutOfPlaneFiberDispersionI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetOutOfPlaneFiberDispersionI6 ( ) const

Constant accessor to the out-of-plane fiber dispersion associated to the 6th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Returns
The Parameter object.

◆ GetFiberStiffnessDensityI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
const scalar_parameter_type & MoReFEM::InputMicrosphere< TimeManagerT >::GetFiberStiffnessDensityI6 ( ) const

Constant accessor to stiffness of the fibers associated with the 6th invariant.

Attention
This method assumes the parameter is relevant for your model (i.e. it was addressed in the input data file). If not, it should not be called at all!

You may check existence priori to the call with IsXXX() methods, for instance:

{
decltype(auto) fiber_planedispersion_I4 = InputMicrosphere.GetInPlaneFiberDispersionI4();
...
}
Returns
The Parameter object.

◆ IsInPlaneFiberDispersionI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsInPlaneFiberDispersionI4 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

◆ IsOutOfPlaneFiberDispersionI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsOutOfPlaneFiberDispersionI4 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

◆ IsFiberStiffnessDensityI4()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsFiberStiffnessDensityI4 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

◆ IsInPlaneFiberDispersionI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsInPlaneFiberDispersionI6 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

◆ IsOutOfPlaneFiberDispersionI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsOutOfPlaneFiberDispersionI6 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

◆ IsFiberStiffnessDensityI6()

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
bool MoReFEM::InputMicrosphere< TimeManagerT >::IsFiberStiffnessDensityI6 ( ) const
noexcept

Whether the parameter is relevant for the Model considered.

It might be irrelevant in two ways:

  • Either it's truly pointless for the Model, and it's not even present in the InputData.
  • Or it's present but the user chose the value 'ignore' as the nature of the parameter.
Returns
True if the related accessor may be used safely.

Field Documentation

◆ input_microsphere_

template<TIME_MANAGER_TEMPLATE_KEYWORD TimeManagerT>
scalar_parameter_type::template array_unique_ptr<6> MoReFEM::InputMicrosphere< TimeManagerT >::input_microsphere_
private
Initial value:
{
{ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr }
}

All six parameters to define the fiber dispersions (in and out of plane) and the stiffness related to I4 and I6.

Might stay nullptr if these InputMicrosphere parameters are not relevant for the current Model (i.e. it is not entries in the input data file).


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