oomph::PseudoElasticBulkElement< ELEMENT > Class Template Reference
+ Inheritance diagram for oomph::PseudoElasticBulkElement< ELEMENT >:

Public Member Functions

 PseudoElasticBulkElement ()
 default constructor More...
 
unsigned ndof_types () const
 returns the number of DOF types associated with this element. More...
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
 
 PseudoElasticBulkElement ()
 default constructor More...
 
unsigned ndof_types () const
 returns the number of DOF types associated with this element. More...
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
 
 PseudoElasticBulkElement ()
 default constructor More...
 
unsigned ndof_types () const
 Return the number of DOF types associated with this element. More...
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
 
 PseudoElasticBulkElement ()
 default constructor More...
 
unsigned ndof_types () const
 returns the number of DOF types associated with this element. More...
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
 
 PseudoElasticBulkElement ()
 Constructor. More...
 
unsigned ndof_types () const
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
 

Detailed Description

template<class ELEMENT>
class oomph::PseudoElasticBulkElement< ELEMENT >

Pseudo-Elastic Solid element class to overload the Block Preconditioner methods ndof_types() and get_dof_numbers_for_unknowns() to differentiate between DOFs subject to Lagrange multiplier and those that are not.

Pseudo-Elastic Solid element class to overload the block preconditioner methods ndof_types() and get_dof_numbers_for_unknowns() to differentiate between DOFs subject to Lagrange multiplier and those that are not.

Constructor & Destructor Documentation

◆ PseudoElasticBulkElement() [1/5]

template<class ELEMENT >
oomph::PseudoElasticBulkElement< ELEMENT >::PseudoElasticBulkElement ( )
inline

default constructor

60 : ELEMENT() {}

◆ PseudoElasticBulkElement() [2/5]

template<class ELEMENT >
oomph::PseudoElasticBulkElement< ELEMENT >::PseudoElasticBulkElement ( )
inline

default constructor

60 : ELEMENT() {}

◆ PseudoElasticBulkElement() [3/5]

template<class ELEMENT >
oomph::PseudoElasticBulkElement< ELEMENT >::PseudoElasticBulkElement ( )
inline

default constructor

62 : ELEMENT() {}

◆ PseudoElasticBulkElement() [4/5]

template<class ELEMENT >
oomph::PseudoElasticBulkElement< ELEMENT >::PseudoElasticBulkElement ( )
inline

default constructor

60 : ELEMENT() {}

◆ PseudoElasticBulkElement() [5/5]

template<class ELEMENT >
oomph::PseudoElasticBulkElement< ELEMENT >::PseudoElasticBulkElement ( )
inline

Constructor.

61 : ELEMENT() {}

Member Function Documentation

◆ get_dof_numbers_for_unknowns() [1/5]

template<class ELEMENT >
void oomph::PseudoElasticBulkElement< ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned > > &  dof_lookup_list) const
inline

Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.)
E.g. in a 3D problem there are 6 types of DOF:
0 - x displacement (without lagr mult traction)
1 - y displacement (without lagr mult traction)
2 - z displacement (without lagr mult traction)
4 - x displacement (with lagr mult traction)
5 - y displacement (with lagr mult traction)
6 - z displacement (with lagr mult traction)

83  {
84  // temporary pair (used to store dof lookup prior to being added to list
85  std::pair<unsigned,unsigned> dof_lookup;
86 
87  // number of nodes
88  const unsigned n_node = this->nnode();
89 
90  //Get the number of position dofs and dimensions at the node
91  const unsigned n_position_type = ELEMENT::nnodal_position_type();
92  const unsigned nodal_dim = ELEMENT::nodal_dimension();
93 
94  //Integer storage for local unknown
95  int local_unknown=0;
96 
97  //Loop over the nodes
98  for(unsigned n=0;n<n_node;n++)
99  {
100  unsigned offset = 0;
101  if (this->node_pt(n)->nvalue() != this->required_nvalue(n))
102  {
103  offset = ELEMENT::dim();
104  }
105 
106  //Loop over position dofs
107  for(unsigned k=0;k<n_position_type;k++)
108  {
109  //Loop over dimension
110  for(unsigned i=0;i<nodal_dim;i++)
111  {
112  //If the variable is free
113  local_unknown = ELEMENT::position_local_eqn(n,k,i);
114 
115  // ignore pinned values
116  if (local_unknown >= 0)
117  {
118  // store dof lookup in temporary pair: First entry in pair
119  // is global equation number; second entry is dof type
120  dof_lookup.first = this->eqn_number(local_unknown);
121  dof_lookup.second = offset+i;
122 
123  // add to list
124  dof_lookup_list.push_front(dof_lookup);
125 
126  }
127  }
128  }
129  }
130  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
char char char int int * k
Definition: level2_impl.h:374

References i, k, and n.

◆ get_dof_numbers_for_unknowns() [2/5]

template<class ELEMENT >
void oomph::PseudoElasticBulkElement< ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned > > &  dof_lookup_list) const
inline

Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.)
E.g. in a 3D problem there are 6 types of DOF:
0 - x displacement (without lagr mult traction)
1 - y displacement (without lagr mult traction)
2 - z displacement (without lagr mult traction)
4 - x displacement (with lagr mult traction)
5 - y displacement (with lagr mult traction)
6 - z displacement (with lagr mult traction)

83  {
84  // temporary pair (used to store dof lookup prior to being added to list
85  std::pair<unsigned,unsigned> dof_lookup;
86 
87  // number of nodes
88  const unsigned n_node = this->nnode();
89 
90  //Get the number of position dofs and dimensions at the node
91  const unsigned n_position_type = ELEMENT::nnodal_position_type();
92  const unsigned nodal_dim = ELEMENT::nodal_dimension();
93 
94  //Integer storage for local unknown
95  int local_unknown=0;
96 
97  //Loop over the nodes
98  for(unsigned n=0;n<n_node;n++)
99  {
100  unsigned offset = 0;
101  if (this->node_pt(n)->nvalue() != this->required_nvalue(n))
102  {
103  offset = ELEMENT::dim();
104  }
105 
106  //Loop over position dofs
107  for(unsigned k=0;k<n_position_type;k++)
108  {
109  //Loop over dimension
110  for(unsigned i=0;i<nodal_dim;i++)
111  {
112  //If the variable is free
113  local_unknown = ELEMENT::position_local_eqn(n,k,i);
114 
115  // ignore pinned values
116  if (local_unknown >= 0)
117  {
118  // store dof lookup in temporary pair: First entry in pair
119  // is global equation number; second entry is dof type
120  dof_lookup.first = this->eqn_number(local_unknown);
121  dof_lookup.second = offset+i;
122 
123  // add to list
124  dof_lookup_list.push_front(dof_lookup);
125 
126  }
127  }
128  }
129  }
130  }

References i, k, and n.

◆ get_dof_numbers_for_unknowns() [3/5]

template<class ELEMENT >
void oomph::PseudoElasticBulkElement< ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned > > &  dof_lookup_list) const
inline

Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.)
E.g. in a 3D problem there are 6 types of DOF:
0 - x displacement (without lagr mult traction)
1 - y displacement (without lagr mult traction)
2 - z displacement (without lagr mult traction)
4 - x displacement (with lagr mult traction)
5 - y displacement (with lagr mult traction)
6 - z displacement (with lagr mult traction)

85  {
86  // temporary pair (used to store dof lookup prior to being added to list
87  std::pair<unsigned,unsigned> dof_lookup;
88 
89  // number of nodes
90  const unsigned n_node = this->nnode();
91 
92  //Get the number of position dofs and dimensions at the node
93  const unsigned n_position_type = ELEMENT::nnodal_position_type();
94  const unsigned nodal_dim = ELEMENT::nodal_dimension();
95 
96  //Integer storage for local unknown
97  int local_unknown=0;
98 
99  //Loop over the nodes
100  for(unsigned n=0;n<n_node;n++)
101  {
102  unsigned offset = 0;
103  if (this->node_pt(n)->nvalue() != this->required_nvalue(n))
104  {
105  offset = ELEMENT::dim();
106  }
107 
108  //Loop over position dofs
109  for(unsigned k=0;k<n_position_type;k++)
110  {
111  //Loop over dimension
112  for(unsigned i=0;i<nodal_dim;i++)
113  {
114  //If the variable is free
115  local_unknown = ELEMENT::position_local_eqn(n,k,i);
116 
117  // ignore pinned values
118  if (local_unknown >= 0)
119  {
120  // store dof lookup in temporary pair: First entry in pair
121  // is global equation number; second entry is dof type
122  dof_lookup.first = this->eqn_number(local_unknown);
123  dof_lookup.second = offset+i;
124 
125  // add to list
126  dof_lookup_list.push_front(dof_lookup);
127 
128  }
129  }
130  }
131  }
132  }

References i, k, and n.

◆ get_dof_numbers_for_unknowns() [4/5]

template<class ELEMENT >
void oomph::PseudoElasticBulkElement< ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned > > &  dof_lookup_list) const
inline

Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.)
E.g. in a 3D problem there are 6 types of DOF:
0 - x displacement (without lagr mult traction)
1 - y displacement (without lagr mult traction)
2 - z displacement (without lagr mult traction)
4 - x displacement (with lagr mult traction)
5 - y displacement (with lagr mult traction)
6 - z displacement (with lagr mult traction)

83  {
84  // temporary pair (used to store dof lookup prior to being added to list
85  std::pair<unsigned,unsigned> dof_lookup;
86 
87  // number of nodes
88  const unsigned n_node = this->nnode();
89 
90  //Get the number of position dofs and dimensions at the node
91  const unsigned n_position_type = ELEMENT::nnodal_position_type();
92  const unsigned nodal_dim = ELEMENT::nodal_dimension();
93 
94  //Integer storage for local unknown
95  int local_unknown=0;
96 
97  //Loop over the nodes
98  for(unsigned n=0;n<n_node;n++)
99  {
100  unsigned offset = 0;
101  if (this->node_pt(n)->nvalue() != this->required_nvalue(n))
102  {
103  offset = ELEMENT::dim();
104  }
105 
106  //Loop over position dofs
107  for(unsigned k=0;k<n_position_type;k++)
108  {
109  //Loop over dimension
110  for(unsigned i=0;i<nodal_dim;i++)
111  {
112  //If the variable is free
113  local_unknown = ELEMENT::position_local_eqn(n,k,i);
114 
115  // ignore pinned values
116  if (local_unknown >= 0)
117  {
118  // store dof lookup in temporary pair: First entry in pair
119  // is global equation number; second entry is dof type
120  dof_lookup.first = this->eqn_number(local_unknown);
121  dof_lookup.second = offset+i;
122 
123  // add to list
124  dof_lookup_list.push_front(dof_lookup);
125 
126  }
127  }
128  }
129  }
130  }

References i, k, and n.

◆ get_dof_numbers_for_unknowns() [5/5]

template<class ELEMENT >
void oomph::PseudoElasticBulkElement< ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned > > &  dof_lookup_list) const
inline

Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF" that this unknown is associated with. (Function can obviously only be called if the equation numbering scheme has been set up.)
E.g. in a 3D problem there are 6 types of DOF:
0 - x displacement (without lagr mult traction)
1 - y displacement (without lagr mult traction)
2 - z displacement (without lagr mult traction)
4 - x displacement (with lagr mult traction)
5 - y displacement (with lagr mult traction)
6 - z displacement (with lagr mult traction)

86  {
87  // temporary pair (used to store dof lookup prior to being added to list
88  std::pair<unsigned,unsigned> dof_lookup;
89 
90  // number of nodes
91  const unsigned n_node = this->nnode();
92 
93  //Get the number of position dofs and dimensions at the node
94  const unsigned n_position_type = ELEMENT::nnodal_position_type();
95  const unsigned nodal_dim = ELEMENT::nodal_dimension();
96 
97  //Integer storage for local unknown
98  int local_unknown=0;
99 
100  //Loop over the nodes
101  for(unsigned n=0;n<n_node;n++)
102  {
103  unsigned offset = 0;
104  if (this->node_pt(n)->nvalue() != this->required_nvalue(n))
105  {
106  offset = ELEMENT::dim();
107  }
108 
109  //Loop over position dofs
110  for(unsigned k=0;k<n_position_type;k++)
111  {
112  //Loop over dimension
113  for(unsigned i=0;i<nodal_dim;i++)
114  {
115  //If the variable is unpinned
116  local_unknown = ELEMENT::position_local_eqn(n,k,i);
117  if (local_unknown >= 0)
118  {
119  // store dof lookup in temporary pair: First entry in pair
120  // is global equation number; second entry is dof type
121  dof_lookup.first = this->eqn_number(local_unknown);
122  dof_lookup.second = offset+i;
123 
124  // add to list
125  dof_lookup_list.push_front(dof_lookup);
126  }
127  }
128  }
129  }
130  }

References i, k, and n.

◆ ndof_types() [1/5]

template<class ELEMENT >
unsigned oomph::PseudoElasticBulkElement< ELEMENT >::ndof_types ( ) const
inline

returns the number of DOF types associated with this element.

64  {
65  return 2*ELEMENT::dim();
66  }

◆ ndof_types() [2/5]

template<class ELEMENT >
unsigned oomph::PseudoElasticBulkElement< ELEMENT >::ndof_types ( ) const
inline

returns the number of DOF types associated with this element.

64  {
65  return 2*ELEMENT::dim();
66  }

◆ ndof_types() [3/5]

template<class ELEMENT >
unsigned oomph::PseudoElasticBulkElement< ELEMENT >::ndof_types ( ) const
inline

Return the number of DOF types associated with this element.

66  {
67  return 2*ELEMENT::dim();
68  }

◆ ndof_types() [4/5]

template<class ELEMENT >
unsigned oomph::PseudoElasticBulkElement< ELEMENT >::ndof_types ( ) const
inline

returns the number of DOF types associated with this element.

64  {
65  return 2*ELEMENT::dim();
66  }

◆ ndof_types() [5/5]

template<class ELEMENT >
unsigned oomph::PseudoElasticBulkElement< ELEMENT >::ndof_types ( ) const
inline

Returns the number of DOF types associated with this element: Twice the number of spatial dimensions (for the constrained and unconstrained nodal positions).

67  {
68  return 2*ELEMENT::dim();
69  }

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