libMesh::Node Class Reference

#include <node.h>

Inheritance diagram for libMesh::Node:

Classes

struct  PackedNode
 

Public Member Functions

 Node (const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
 
 Node (const Node &n)
 
 Node (const Point &p, const dof_id_type id=invalid_id)
 
 ~Node ()
 
Nodeoperator= (const Point &p)
 
bool active () const
 
bool operator== (const Node &rhs) const
 
void print_info (std::ostream &os=libMesh::out) const
 
std::string get_info () const
 
unsigned int packed_size () const
 
void assign (const TypeVector< T2 > &)
 
const Realoperator() (const unsigned int i) const
 
Realoperator() (const unsigned int i)
 
const Realslice (const unsigned int i) const
 
Realslice (const unsigned int i)
 
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
operator+ (const TypeVector< T2 > &) const
 
const TypeVector< Real > & operator+= (const TypeVector< T2 > &)
 
void add (const TypeVector< T2 > &)
 
void add_scaled (const TypeVector< T2 > &, const Real)
 
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
operator- (const TypeVector< T2 > &) const
 
TypeVector< Realoperator- () const
 
const TypeVector< Real > & operator-= (const TypeVector< T2 > &)
 
void subtract (const TypeVector< T2 > &)
 
void subtract_scaled (const TypeVector< T2 > &, const Real)
 
boostcopy::enable_if_c
< ScalarTraits< Scalar >
::value, TypeVector< typename
CompareTypes< Real, Scalar >
::supertype > >::type 
operator* (const Scalar) const
 
CompareTypes< Real, T2 >::supertype operator* (const TypeVector< T2 > &) const
 
const TypeVector< Real > & operator*= (const Real)
 
boostcopy::enable_if_c
< ScalarTraits< Scalar >
::value, TypeVector< typename
CompareTypes< Real, Scalar >
::supertype > >::type 
operator/ (const Scalar) const
 
const TypeVector< Real > & operator/= (const Real)
 
CompareTypes< Real, T2 >::supertype contract (const TypeVector< T2 > &) const
 
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
cross (const TypeVector< T2 > &) const
 
TypeVector< Realunit () const
 
Real size () const
 
Real size_sq () const
 
void zero ()
 
bool relative_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
 
bool absolute_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
 
bool operator== (const TypeVector< Real > &rhs) const
 
bool operator!= (const TypeVector< Real > &rhs) const
 
bool operator< (const TypeVector< Real > &rhs) const
 
bool operator<= (const TypeVector< Real > &rhs) const
 
bool operator> (const TypeVector< Real > &rhs) const
 
bool operator>= (const TypeVector< Real > &rhs) const
 
void print (std::ostream &os=libMesh::out) const
 
void write_unformatted (std::ostream &out, const bool newline=true) const
 
void clear_old_dof_object ()
 
void set_old_dof_object ()
 
void clear_dofs ()
 
void invalidate_dofs (const unsigned int sys_num=libMesh::invalid_uint)
 
void invalidate_id ()
 
void invalidate_processor_id ()
 
void invalidate ()
 
unsigned int n_dofs (const unsigned int s, const unsigned int var=libMesh::invalid_uint) const
 
dof_id_type id () const
 
dof_id_typeset_id ()
 
void set_id (const dof_id_type dofid)
 
unique_id_type unique_id () const
 
unique_id_typeset_unique_id ()
 
bool valid_id () const
 
bool valid_unique_id () const
 
processor_id_type processor_id () const
 
processor_id_typeprocessor_id ()
 
void processor_id (const processor_id_type pid)
 
bool valid_processor_id () const
 
unsigned int n_systems () const
 
void set_n_systems (const unsigned int s)
 
void add_system ()
 
unsigned int n_var_groups (const unsigned int s) const
 
unsigned int n_vars (const unsigned int s, const unsigned int vg) const
 
unsigned int n_vars (const unsigned int s) const
 
void set_n_vars_per_group (const unsigned int s, const std::vector< unsigned int > &nvpg)
 
unsigned int n_comp (const unsigned int s, const unsigned int var) const
 
unsigned int n_comp_group (const unsigned int s, const unsigned int vg) const
 
void set_n_comp (const unsigned int s, const unsigned int var, const unsigned int ncomp)
 
void set_n_comp_group (const unsigned int s, const unsigned int vg, const unsigned int ncomp)
 
dof_id_type dof_number (const unsigned int s, const unsigned int var, const unsigned int comp) const
 
void set_dof_number (const unsigned int s, const unsigned int var, const unsigned int comp, const dof_id_type dn)
 
bool has_dofs (const unsigned int s=libMesh::invalid_uint) const
 
void set_vg_dof_base (const unsigned int s, const unsigned int vg, const dof_id_type db)
 
dof_id_type vg_dof_base (const unsigned int s, const unsigned int vg) const
 
unsigned int packed_indexing_size () const
 
void unpack_indexing (std::vector< largest_id_type >::const_iterator begin)
 
void pack_indexing (std::back_insert_iterator< std::vector< largest_id_type > > target) const
 
void debug_buffer () const
 
void set_buffer (const std::vector< dof_id_type > &buf)
 

Static Public Member Functions

static AutoPtr< Nodebuild (const Node &n)
 
static AutoPtr< Nodebuild (const Point &p, const dof_id_type id)
 
static AutoPtr< Nodebuild (const Real x, const Real y, const Real z, const dof_id_type id)
 
static unsigned int unpackable_indexing_size (std::vector< largest_id_type >::const_iterator begin)
 
static std::string get_info ()
 
static void print_info (std::ostream &out=libMesh::out)
 
static unsigned int n_objects ()
 
static void enable_print_counter_info ()
 
static void disable_print_counter_info ()
 
static std::string get_info ()
 
static void print_info (std::ostream &out=libMesh::out)
 
static unsigned int n_objects ()
 
static void enable_print_counter_info ()
 
static void disable_print_counter_info ()
 

Public Attributes

DofObjectold_dof_object
 

Static Public Attributes

static const dof_id_type invalid_id = static_cast<dof_id_type>(-1)
 
static const unique_id_type invalid_unique_id = static_cast<unique_id_type>(-1)
 
static const processor_id_type invalid_processor_id = static_cast<processor_id_type>(-1)
 

Protected Types

typedef std::map< std::string,
std::pair< unsigned int,
unsigned int > > 
Counts
 
typedef std::map< std::string,
std::pair< unsigned int,
unsigned int > > 
Counts
 

Protected Member Functions

void increment_constructor_count (const std::string &name)
 
void increment_destructor_count (const std::string &name)
 
void increment_constructor_count (const std::string &name)
 
void increment_destructor_count (const std::string &name)
 

Protected Attributes

Real _coords [LIBMESH_DIM]
 

Static Protected Attributes

static Counts _counts
 
static Threads::atomic
< unsigned int > 
_n_objects
 
static Threads::spin_mutex _mutex
 
static bool _enable_print_counter = true
 
static Counts _counts
 
static Threads::atomic
< unsigned int > 
_n_objects
 
static Threads::spin_mutex _mutex
 
static bool _enable_print_counter = true
 

Friends

class MeshRefinement
 
class Elem
 

Detailed Description

A Node is like a Point, but with more information. A Node is located in space and is associated with some (x,y,z) coordinates. Additionally, a Node may be enumerated with a global id. Finally, a Node may have an arbitrary number of degrees of freedom associated with it.

Author
Benjamin S. Kirk
Date
2003

Definition at line 54 of file node.h.

Member Typedef Documentation

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts
protectedinherited

Data structure to log the information. The log is identified by the class name.

Definition at line 113 of file reference_counter.h.

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts
protectedinherited

Data structure to log the information. The log is identified by the class name.

Definition at line 113 of file reference_counter.h.

Constructor & Destructor Documentation

libMesh::Node::Node ( const Real  x = 0,
const Real  y = 0,
const Real  z = 0,
const dof_id_type  id = invalid_id 
)
inlineexplicit

Constructor. By default sets all entries to 0. Gives the point 0 in LIBMESH_DIM dimensions with an id of Node::invalid_id

Definition at line 248 of file node.h.

References libMesh::DofObject::set_id().

Referenced by build().

251  :
252  Point(x,y,z)
253 {
254  this->set_id() = dofid;
255 }
libMesh::Node::Node ( const Node n)
inline

Copy-constructor.

Definition at line 260 of file node.h.

260  :
261  Point(n),
262  DofObject(n),
263  ReferenceCountedObject<Node>()
264 {
265 }
libMesh::Node::Node ( const Point p,
const dof_id_type  id = invalid_id 
)
inlineexplicit

Copy-constructor from a Point. Optionally assigned the id.

Definition at line 270 of file node.h.

References libMesh::DofObject::invalid_id, and libMesh::DofObject::set_id().

271  :
272  Point(p)
273 {
274  // optionally assign the id. We have
275  // to do it like this otherwise
276  // Node n = Point p would erase
277  // the id!
278  if (dofid != invalid_id)
279  this->set_id() = dofid;
280 }
libMesh::Node::~Node ( )
inline

Destructor.

Definition at line 285 of file node.h.

286 {
287 }

Member Function Documentation

bool libMesh::TypeVector< Real >::absolute_fuzzy_equals ( const TypeVector< Real > &  rhs,
Real  tol = TOLERANCE 
) const
inherited
Returns
true iff two vectors occupy approximately the same physical location in space, to within an absolute tolerance of tol.
bool libMesh::Node::active ( ) const
inline
Returns
true if the node is active. An active node is defined as one for which id() is not Node::invalid_id. Inactive nodes are nodes that are in the mesh but are not connected to any elements.

Definition at line 340 of file node.h.

References libMesh::DofObject::invalid_id.

341 {
342  return (this->id() != Node::invalid_id);
343 }
void libMesh::TypeVector< Real >::add ( const TypeVector< T2 > &  )
inherited

Add to this vector without creating a temporary.

void libMesh::TypeVector< Real >::add_scaled ( const TypeVector< T2 > &  ,
const Real   
)
inherited

Add a scaled value to this vector without creating a temporary.

void libMesh::DofObject::add_system ( )
inherited

Adds an additional system to the DofObject

Definition at line 189 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::n_vars(), and libMesh::DofObject::set_n_systems().

190 {
191  // quick return?
192  if (this->n_systems() == 0)
193  {
194  this->set_n_systems(1);
195  return;
196  }
197 
198  DofObject::index_buffer_t::iterator it = _idx_buf.begin();
199 
200  std::advance(it, this->n_systems());
201 
202  // this inserts the current vector size at the position for the new system - creating the
203  // entry we need for the new system indicating there are 0 variables.
204  _idx_buf.insert(it, _idx_buf.size());
205 
206  // cache this value before we screw it up!
207  const unsigned int ns_orig = this->n_systems();
208 
209  // incriment the number of systems and the offsets for each of
210  // the systems including the new one we just added.
211  for (unsigned int i=0; i<ns_orig+1; i++)
212  _idx_buf[i]++;
213 
214  libmesh_assert_equal_to (this->n_systems(), (ns_orig+1));
215  libmesh_assert_equal_to (this->n_vars(ns_orig), 0);
216  libmesh_assert_equal_to (this->n_var_groups(ns_orig), 0);
217 }
void libMesh::TypeVector< Real >::assign ( const TypeVector< T2 > &  )
inherited

Assign to a vector without creating a temporary.

AutoPtr< Node > libMesh::Node::build ( const Node n)
inlinestatic

Builds a Node and returns an AutoPtr<Node> to the newly-created object. The id is copied from n.id()

Definition at line 308 of file node.h.

References Node().

Referenced by libMesh::SerialMesh::add_point(), and libMesh::ParallelMesh::add_point().

309 {
310  AutoPtr<Node> ap(new Node(n));
311  return ap;
312 }
AutoPtr< Node > libMesh::Node::build ( const Point p,
const dof_id_type  id 
)
inlinestatic

Builds a Node from Point p and returns an AutoPtr<Node> to the newly-created object. Optionally assignes the id.

Definition at line 317 of file node.h.

References Node().

319 {
320 
321  AutoPtr<Node> ap(new Node(p,id));
322  return ap;
323 }
AutoPtr< Node > libMesh::Node::build ( const Real  x,
const Real  y,
const Real  z,
const dof_id_type  id 
)
inlinestatic

Builds a Node from specified points and returns an AutoPtr<Node> to the newly-created object. Optionally assigned the id.

Definition at line 328 of file node.h.

References Node().

332 {
333  AutoPtr<Node> ap(new Node(x,y,z,id));
334  return ap;
335 }
void libMesh::DofObject::clear_dofs ( )
inlineinherited

Clear the DofMap data structures and return to a pristine state.

Definition at line 577 of file dof_object.h.

References libMesh::DofObject::_idx_buf, libMesh::libmesh_assert(), and libMesh::DofObject::n_systems().

Referenced by libMesh::DofObject::set_n_systems(), and libMesh::DofObject::~DofObject().

578 {
579  // vector swap trick to force deallocation
580  index_buffer_t().swap(_idx_buf);
581 
582  libmesh_assert_equal_to (this->n_systems(), 0);
583  libmesh_assert (_idx_buf.empty());
584 }
void libMesh::DofObject::clear_old_dof_object ( )
inherited

Sets the old_dof_object to NULL

Definition at line 131 of file dof_object.C.

References libMesh::DofObject::old_dof_object.

Referenced by libMesh::DofObject::operator=(), libMesh::DofObject::set_old_dof_object(), libMesh::DofObject::unpack_indexing(), and libMesh::DofObject::~DofObject().

132 {
133  // If we have been called before...
134  // prevent a memory leak
135  if (old_dof_object != NULL)
136  {
137  delete this->old_dof_object;
138  this->old_dof_object = NULL;
139  }
140 }
CompareTypes<Real , T2>::supertype libMesh::TypeVector< Real >::contract ( const TypeVector< T2 > &  ) const
inherited

Multiply 2 vectors together, i.e. dot-product. The vectors may be of different types.

TypeVector<typename CompareTypes<Real , T2>::supertype> libMesh::TypeVector< Real >::cross ( const TypeVector< T2 > &  ) const
inherited

Cross 2 vectors together, i.e. cross-product.

void libMesh::DofObject::debug_buffer ( ) const
inherited

Print our buffer for debugging.

Definition at line 543 of file dof_object.C.

References libMesh::DofObject::_idx_buf, and libMesh::out.

544 {
545  libMesh::out << " [ ";
546  for (unsigned int i=0; i<_idx_buf.size(); i++)
547  libMesh::out << _idx_buf[i] << " ";
548  libMesh::out << "]\n";
549 }
void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited

Definition at line 106 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

107 {
108  _enable_print_counter = false;
109  return;
110 }
void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited

Definition at line 106 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

107 {
108  _enable_print_counter = false;
109  return;
110 }
dof_id_type libMesh::DofObject::dof_number ( const unsigned int  s,
const unsigned int  var,
const unsigned int  comp 
) const
inlineinherited
Returns
the global degree of freedom number for variable var, component comp for system s associated with this DofObject

When partitioning and DoF numbering have been performed by libMesh, every current DoF on this DofObject will belong to its processor.

Definition at line 789 of file dof_object.h.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::invalid_id, libMesh::DofObject::n_comp(), libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_vars(), libMesh::DofObject::start_idx(), libMesh::DofObject::system_var_to_vg_var(), and libMesh::DofObject::var_to_vg().

Referenced by libMesh::DofMap::add_neighbors_to_send_list(), libMesh::FEGenericBase< T >::compute_periodic_constraints(), libMesh::DofMap::constrain_p_dofs(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::dof_indices(), libMesh::DofObject::DofObject(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::old_dof_indices(), libMesh::DofObject::operator=(), libMesh::HPCoarsenTest::select_refinement(), libMesh::DofObject::set_dof_number(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::System::zero_variable().

792 {
793  libmesh_assert_less (s, this->n_systems());
794  libmesh_assert_less (var, this->n_vars(s));
795  libmesh_assert_less (comp, this->n_comp(s,var));
796 
797  const unsigned int
798  vg = this->var_to_vg(s,var),
799  start_idx_sys = this->start_idx(s);
800 
801  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
802 
803  const dof_id_type
804  base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
805 
806  // if the first component is invalid, they
807  // are all invalid
808  if (base_idx == invalid_id)
809  return invalid_id;
810 
811  // otherwise the index is the first component
812  // index augemented by the component number
813  else
814  {
815  const unsigned int
816  ncg = this->n_comp_group(s,vg),
817  vig = this->system_var_to_vg_var(s,vg,var);
818 
819  // std::cout << "base_idx, var, vg, vig, ncg, comp="
820  // << base_idx << " "
821  // << var << " "
822  // << vg << " "
823  // << vig << " "
824  // << ncg << " "
825  // << comp << '\n';
826 
827  return libmesh_cast_int<dof_id_type>(base_idx + vig*ncg + comp);
828  }
829 }
void libMesh::ReferenceCounter::enable_print_counter_info ( )
staticinherited

Methods to enable/disable the reference counter output from print_info()

Definition at line 100 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

101 {
102  _enable_print_counter = true;
103  return;
104 }
void libMesh::ReferenceCounter::enable_print_counter_info ( )
staticinherited

Methods to enable/disable the reference counter output from print_info()

Definition at line 100 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

101 {
102  _enable_print_counter = true;
103  return;
104 }
std::string libMesh::ReferenceCounter::get_info ( )
staticinherited

Gets a string containing the reference information.

Definition at line 47 of file reference_counter.C.

References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().

Referenced by libMesh::ReferenceCounter::print_info().

48 {
49 #if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
50 
51  std::ostringstream oss;
52 
53  oss << '\n'
54  << " ---------------------------------------------------------------------------- \n"
55  << "| Reference count information |\n"
56  << " ---------------------------------------------------------------------------- \n";
57 
58  for (Counts::iterator it = _counts.begin();
59  it != _counts.end(); ++it)
60  {
61  const std::string name(it->first);
62  const unsigned int creations = it->second.first;
63  const unsigned int destructions = it->second.second;
64 
65  oss << "| " << name << " reference count information:\n"
66  << "| Creations: " << creations << '\n'
67  << "| Destructions: " << destructions << '\n';
68  }
69 
70  oss << " ---------------------------------------------------------------------------- \n";
71 
72  return oss.str();
73 
74 #else
75 
76  return "";
77 
78 #endif
79 }
std::string libMesh::ReferenceCounter::get_info ( )
staticinherited

Gets a string containing the reference information.

Definition at line 47 of file reference_counter.C.

References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().

Referenced by libMesh::ReferenceCounter::print_info().

48 {
49 #if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
50 
51  std::ostringstream oss;
52 
53  oss << '\n'
54  << " ---------------------------------------------------------------------------- \n"
55  << "| Reference count information |\n"
56  << " ---------------------------------------------------------------------------- \n";
57 
58  for (Counts::iterator it = _counts.begin();
59  it != _counts.end(); ++it)
60  {
61  const std::string name(it->first);
62  const unsigned int creations = it->second.first;
63  const unsigned int destructions = it->second.second;
64 
65  oss << "| " << name << " reference count information:\n"
66  << "| Creations: " << creations << '\n'
67  << "| Destructions: " << destructions << '\n';
68  }
69 
70  oss << " ---------------------------------------------------------------------------- \n";
71 
72  return oss.str();
73 
74 #else
75 
76  return "";
77 
78 #endif
79 }
std::string libMesh::Node::get_info ( ) const

Prints relevant information about the node to a string.

Definition at line 53 of file node.C.

References libMesh::DofObject::dof_number(), libMesh::DofObject::id(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_vars(), libMesh::DofObject::processor_id(), and libMesh::DofObject::valid_id().

Referenced by print_info().

54 {
55  std::ostringstream oss;
56 
57  oss << " Node id()=";
58 
59  if (this->valid_id())
60  oss << this->id();
61  else
62  oss << "invalid";
63 
64  oss << ", processor_id()=" << this->processor_id() <<
65  ", Point=" << *static_cast<const Point*>(this) << '\n';
66 
67  oss << " DoFs=";
68  for (unsigned int s=0; s != this->n_systems(); ++s)
69  for (unsigned int v=0; v != this->n_vars(s); ++v)
70  for (unsigned int c=0; c != this->n_comp(s,v); ++c)
71  oss << '(' << s << '/' << v << '/' << this->dof_number(s,v,c) << ") ";
72 
73  return oss.str();
74 }
bool libMesh::DofObject::has_dofs ( const unsigned int  s = libMesh::invalid_uint) const
inlineinherited
Returns
true if any system has variables which have been assigned, false otherwise

Definition at line 834 of file dof_object.h.

References libMesh::invalid_uint, libMesh::DofObject::n_systems(), and libMesh::DofObject::n_vars().

Referenced by libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::DofMap::reinit(), and libMesh::Parallel::unpack().

835 {
836  if (sys == libMesh::invalid_uint)
837  {
838  for (unsigned int s=0; s<this->n_systems(); s++)
839  if (this->n_vars(s))
840  return true;
841  }
842 
843  else
844  {
845  libmesh_assert_less (sys, this->n_systems());
846 
847  if (this->n_vars(sys))
848  return true;
849  }
850 
851  return false;
852 }
dof_id_type libMesh::DofObject::id ( ) const
inlineinherited
Returns
the id for this DofObject

Definition at line 611 of file dof_object.h.

References libMesh::DofObject::_id, libMesh::libmesh_assert(), and libMesh::DofObject::valid_id().

Referenced by libMesh::MetisPartitioner::_do_partition(), libMesh::SFCPartitioner::_do_partition(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::SerialMesh::add_elem(), libMesh::ParallelMesh::add_elem(), libMesh::SerialMesh::add_node(), libMesh::ParallelMesh::add_node(), libMesh::ParallelMesh::add_point(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::MeshData::assign(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::ParmetisPartitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::VTKIO::cells_to_vtk(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::FEGenericBase< T >::compute_periodic_constraints(), libMesh::FEMap::compute_single_point_map(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::SerialMesh::delete_elem(), libMesh::ParallelMesh::delete_elem(), libMesh::SerialMesh::delete_node(), libMesh::ParallelMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshData::elem_to_foreign_id(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::find_nodal_neighbors(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshTools::Modification::flatten(), libMesh::for(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::get_local_constraints(), libMesh::EquationSystems::get_solution(), libMesh::LaplaceMeshSmoother::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::TreeNode< N >::insert(), libMesh::SerialMesh::insert_elem(), libMesh::ParallelMesh::insert_elem(), libMesh::SerialMesh::insert_node(), libMesh::FE< Dim, T >::inverse_map(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::Elem::node(), libMesh::MeshData::node_to_foreign_id(), libMesh::VTKIO::nodes_to_vtk(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::BoundaryInfo::operator=(), libMesh::Parallel::pack(), libMesh::Node::PackedNode::pack(), libMesh::Elem::PackedElem::pack(), libMesh::ErrorVector::plot_error(), libMesh::ParallelMesh::query_elem(), libMesh::ParallelMesh::query_node_ptr(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read_elements(), libMesh::ParallelMesh::renumber_elem(), libMesh::ParallelMesh::renumber_node(), libMesh::ParallelMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::HPCoarsenTest::select_refinement(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::FE< Dim, T >::shape(), libMesh::FE< Dim, T >::shape_deriv(), libMesh::FE< Dim, T >::shape_second_deriv(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::SerialMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Elem::topological_neighbor(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Node::PackedNode::unpack(), libMesh::Parallel::unpack(), libMesh::Elem::PackedElem::unpack(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::CheckpointIO::write_connectivity(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements_discontinuous(), libMesh::GmshIO::write_mesh(), libMesh::LegacyXdrIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::CheckpointIO::write_nodes(), and libMesh::XdrIO::write_serialized_connectivity().

612 {
613  libmesh_assert (this->valid_id());
614  return _id;
615 }
void libMesh::ReferenceCounter::increment_constructor_count ( const std::string &  name)
inlineprotectedinherited

Increments the construction counter. Should be called in the constructor of any derived class that will be reference counted.

Definition at line 163 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

164 {
165  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
166  std::pair<unsigned int, unsigned int>& p = _counts[name];
167 
168  p.first++;
169 }
void libMesh::ReferenceCounter::increment_constructor_count ( const std::string &  name)
inlineprotectedinherited

Increments the construction counter. Should be called in the constructor of any derived class that will be reference counted.

Definition at line 163 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

164 {
165  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
166  std::pair<unsigned int, unsigned int>& p = _counts[name];
167 
168  p.first++;
169 }
void libMesh::ReferenceCounter::increment_destructor_count ( const std::string &  name)
inlineprotectedinherited

Increments the destruction counter. Should be called in the destructor of any derived class that will be reference counted.

Definition at line 176 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

177 {
178  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
179  std::pair<unsigned int, unsigned int>& p = _counts[name];
180 
181  p.second++;
182 }
void libMesh::ReferenceCounter::increment_destructor_count ( const std::string &  name)
inlineprotectedinherited

Increments the destruction counter. Should be called in the destructor of any derived class that will be reference counted.

Definition at line 176 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.

Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

177 {
178  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
179  std::pair<unsigned int, unsigned int>& p = _counts[name];
180 
181  p.second++;
182 }
void libMesh::DofObject::invalidate ( )
inlineinherited

Invalidates all the indices for this DofObject

Definition at line 567 of file dof_object.h.

References libMesh::DofObject::invalidate_dofs(), libMesh::DofObject::invalidate_id(), and libMesh::DofObject::invalidate_processor_id().

Referenced by libMesh::DofObject::DofObject().

568 {
569  this->invalidate_dofs ();
570  this->invalidate_id ();
571  this->invalidate_processor_id ();
572 }
void libMesh::DofObject::invalidate_dofs ( const unsigned int  sys_num = libMesh::invalid_uint)
inlineinherited

Sets all degree of freedom numbers to invalid_id

Definition at line 531 of file dof_object.h.

References libMesh::DofObject::invalid_id, libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), and libMesh::DofObject::set_vg_dof_base().

Referenced by libMesh::DofObject::invalidate().

532 {
533  // If the user does not specify the system number...
534  if (sys_num >= this->n_systems())
535  {
536  for (unsigned int s=0; s<this->n_systems(); s++)
537  for (unsigned int vg=0; vg<this->n_var_groups(s); vg++)
538  if (this->n_comp_group(s,vg))
539  this->set_vg_dof_base(s,vg,invalid_id);
540  }
541  // ...otherwise invalidate the dofs for all systems
542  else
543  for (unsigned int vg=0; vg<this->n_var_groups(sys_num); vg++)
544  if (this->n_comp_group(sys_num,vg))
545  this->set_vg_dof_base(sys_num,vg,invalid_id);
546 }
void libMesh::DofObject::invalidate_id ( )
inlineinherited

Sets the id to invalid_id

Definition at line 551 of file dof_object.h.

References libMesh::DofObject::invalid_id, and libMesh::DofObject::set_id().

Referenced by libMesh::DofObject::invalidate().

552 {
553  this->set_id (invalid_id);
554 }
void libMesh::DofObject::invalidate_processor_id ( )
inlineinherited
unsigned int libMesh::DofObject::n_comp ( const unsigned int  s,
const unsigned int  var 
) const
inlineinherited
Returns
the number of components for variable var of system s associated with this DofObject. For example, the HIERARCHIC shape functions may have multiple DoFs associated with one node. Another example is the MONOMIALs, where only the elements hold the DoFs. For the different spatial directions, and orders, see FE.

Definition at line 759 of file dof_object.h.

References libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_vars(), and libMesh::DofObject::var_to_vg().

Referenced by libMesh::DofMap::add_neighbors_to_send_list(), libMesh::FEGenericBase< T >::compute_periodic_constraints(), libMesh::DofMap::constrain_p_dofs(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::dof_indices(), libMesh::DofObject::dof_number(), libMesh::DofObject::DofObject(), get_info(), libMesh::Elem::get_info(), libMesh::DofObject::n_dofs(), libMesh::DofMap::old_dof_indices(), libMesh::DofObject::operator=(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::System::zero_variable().

761 {
762  libmesh_assert_less (s, this->n_systems());
763  libmesh_assert_less (var, this->n_vars(s));
764 
765  return this->n_comp_group(s,this->var_to_vg(s,var));
766 }
unsigned int libMesh::DofObject::n_comp_group ( const unsigned int  s,
const unsigned int  vg 
) const
inlineinherited
Returns
the number of components for VariableGroup vg of system s associated with this DofObject. For example, the HIERARCHIC shape functions may have multiple DoFs associated with one node. Another example is the MONOMIALs, where only the elements hold the DoFs. For the different spatial directions, and orders, see FE.

Definition at line 772 of file dof_object.h.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::ncv_magic, and libMesh::DofObject::start_idx().

Referenced by libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofObject::dof_number(), libMesh::DofObject::invalidate_dofs(), libMesh::DofObject::n_comp(), libMesh::DofMap::reinit(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_n_comp_group(), libMesh::DofObject::set_n_vars_per_group(), and libMesh::DofMap::set_nonlocal_dof_objects().

774 {
775  libmesh_assert_less (s, this->n_systems());
776  libmesh_assert_less (vg, this->n_var_groups(s));
777 
778  const unsigned int
779  start_idx_sys = this->start_idx(s);
780 
781  libmesh_assert_less ((start_idx_sys + 2*vg), _idx_buf.size());
782 
783  return (_idx_buf[start_idx_sys + 2*vg] % ncv_magic);
784 }
unsigned int libMesh::DofObject::n_dofs ( const unsigned int  s,
const unsigned int  var = libMesh::invalid_uint 
) const
inlineinherited
Returns
the number of degrees of freedom associated with system s for this object. Optionally only counts degrees of freedom for variable number var

Definition at line 589 of file dof_object.h.

References libMesh::invalid_uint, libMesh::DofObject::n_comp(), libMesh::DofObject::n_systems(), and libMesh::DofObject::n_vars().

Referenced by libMesh::EquationSystems::build_solution_vector().

591 {
592  libmesh_assert_less (s, this->n_systems());
593 
594  unsigned int num = 0;
595 
596  // Count all variables
597  if (var == libMesh::invalid_uint)
598  for (unsigned int v=0; v<this->n_vars(s); v++)
599  num += this->n_comp(s,v);
600 
601  // Only count specified variable
602  else
603  num = this->n_comp(s,var);
604 
605  return num;
606 }
static unsigned int libMesh::ReferenceCounter::n_objects ( )
inlinestaticinherited

Prints the number of outstanding (created, but not yet destroyed) objects.

Definition at line 79 of file reference_counter.h.

References libMesh::ReferenceCounter::_n_objects.

80  { return _n_objects; }
static unsigned int libMesh::ReferenceCounter::n_objects ( )
inlinestaticinherited

Prints the number of outstanding (created, but not yet destroyed) objects.

Definition at line 79 of file reference_counter.h.

References libMesh::ReferenceCounter::_n_objects.

80  { return _n_objects; }
unsigned int libMesh::DofObject::n_vars ( const unsigned int  s,
const unsigned int  vg 
) const
inlineinherited
unsigned int libMesh::DofObject::n_vars ( const unsigned int  s) const
inlineinherited
Returns
the number of Variable variables associated with system s for this DofObject

Definition at line 741 of file dof_object.h.

References libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), and libMesh::DofObject::n_vars().

742 {
743  libmesh_assert_less (s, this->n_systems());
744 
745  const unsigned int nvg = this->n_var_groups(s);
746 
747  unsigned int val=0;
748 
749  for (unsigned int vg=0; vg<nvg; vg++)
750  val += this->n_vars(s,vg);
751 
752  return val;
753 }
bool libMesh::TypeVector< Real >::operator!= ( const TypeVector< Real > &  rhs) const
inherited
Returns
true iff two vectors do not occupy approximately the same physical location in space.
const Real & libMesh::TypeVector< Real >::operator() ( const unsigned int  i) const
inherited

Return the $ i^{th} $ element of the vector.

Real & libMesh::TypeVector< Real >::operator() ( const unsigned int  i)
inherited

Return a writeable reference to the $ i^{th} $ element of the vector.

boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeVector<typename CompareTypes<Real , Scalar>::supertype> >::type libMesh::TypeVector< Real >::operator* ( const Scalar  ) const
inherited

Multiply a vector by a number, i.e. scale.

CompareTypes<Real , T2>::supertype libMesh::TypeVector< Real >::operator* ( const TypeVector< T2 > &  ) const
inherited

Multiply 2 vectors together, i.e. dot-product. The vectors may be of different types.

const TypeVector<Real >& libMesh::TypeVector< Real >::operator*= ( const Real  )
inherited

Multiply this vector by a number, i.e. scale.

TypeVector<typename CompareTypes<Real , T2>::supertype> libMesh::TypeVector< Real >::operator+ ( const TypeVector< T2 > &  ) const
inherited

Add two vectors.

const TypeVector<Real >& libMesh::TypeVector< Real >::operator+= ( const TypeVector< T2 > &  )
inherited

Add to this vector.

TypeVector<typename CompareTypes<Real , T2>::supertype> libMesh::TypeVector< Real >::operator- ( const TypeVector< T2 > &  ) const
inherited

Subtract two vectors.

TypeVector<Real > libMesh::TypeVector< Real >::operator- ( ) const
inherited

Return the opposite of a vector

const TypeVector<Real >& libMesh::TypeVector< Real >::operator-= ( const TypeVector< T2 > &  )
inherited

Subtract from this vector.

boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeVector<typename CompareTypes<Real , Scalar>::supertype> >::type libMesh::TypeVector< Real >::operator/ ( const Scalar  ) const
inherited

Divide a vector by a number, i.e. scale.

const TypeVector<Real >& libMesh::TypeVector< Real >::operator/= ( const Real  )
inherited

Divide this vector by a number, i.e. scale.

bool libMesh::TypeVector< Real >::operator< ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "less" than another. Useful for sorting. Also used for choosing some arbitrary basis function orientations
bool libMesh::TypeVector< Real >::operator<= ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "less" than or equal to another. Useful for sorting. Also used for choosing some arbitrary constraint equation directions
Node & libMesh::Node::operator= ( const Point p)
inline

Assign to a node from a point

Definition at line 292 of file node.h.

293 {
294  (*this)(0) = p(0);
295 #if LIBMESH_DIM > 1
296  (*this)(1) = p(1);
297 #endif
298 #if LIBMESH_DIM > 2
299  (*this)(2) = p(2);
300 #endif
301 
302  return *this;
303 }
bool libMesh::Node::operator== ( const Node rhs) const
Returns
true if this node equals rhs, false otherwise.

Definition at line 37 of file node.C.

References libMesh::TypeVector< Real >::operator==().

38 {
39  // Explicitly calling the operator== defined in Point
40  return this->Point::operator==(rhs);
41 }
bool libMesh::TypeVector< Real >::operator== ( const TypeVector< Real > &  rhs) const
inherited
Returns
true iff two vectors occupy approximately the same physical location in space, to within an absolute tolerance of TOLERANCE.

Referenced by operator==().

bool libMesh::TypeVector< Real >::operator> ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "greater" than another. Useful for sorting. Also used for choosing some arbitrary basis function orientations
bool libMesh::TypeVector< Real >::operator>= ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "greater" than or equal to another. Useful for sorting. Also used for choosing some arbitrary constraint equation directions
void libMesh::DofObject::pack_indexing ( std::back_insert_iterator< std::vector< largest_id_type > >  target) const
inherited

A method for creating packed data from our index buffer - basically a copy with prepended size with our current implementation.

Definition at line 525 of file dof_object.C.

Referenced by libMesh::Parallel::pack(), libMesh::Node::PackedNode::pack(), and libMesh::Elem::PackedElem::pack().

526 {
527 #ifdef LIBMESH_ENABLE_AMR
528  // We might need to pack old_dof_object too
529  *target++ = (old_dof_object == NULL) ? 0 : 1;
530 #endif
531 
532  *target++ = _idx_buf.size();
533  std::copy(_idx_buf.begin(), _idx_buf.end(), target);
534 
535 #ifdef LIBMESH_ENABLE_AMR
536  if (old_dof_object)
537  old_dof_object->pack_indexing(target);
538 #endif
539 }
unsigned int libMesh::DofObject::packed_indexing_size ( ) const
inherited

If we pack our indices into an buffer for communications, how many ints do we need?

Definition at line 448 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::old_dof_object, and libMesh::DofObject::packed_indexing_size().

Referenced by libMesh::Parallel::pack(), libMesh::Parallel::packable_size(), libMesh::DofObject::packed_indexing_size(), packed_size(), libMesh::Elem::packed_size(), and libMesh::Parallel::unpack().

449 {
450  return
451 #ifdef LIBMESH_ENABLE_AMR
452  ((old_dof_object == NULL) ? 0 : old_dof_object->packed_indexing_size()) + 2 +
453 #else
454  1 +
455 #endif
456  _idx_buf.size();
457 }
unsigned int libMesh::Node::packed_size ( ) const
inline

Definition at line 209 of file node.h.

References libMesh::Node::PackedNode::header_size, libMesh::DofObject::packed_indexing_size(), and libMesh::Real.

Referenced by libMesh::Node::PackedNode::pack().

210 {
211  // use "(a+b-1)/b" trick to get a/b to round up
212  static const unsigned int idtypes_per_Real =
213  (sizeof(Real) + sizeof(largest_id_type) - 1) / sizeof(largest_id_type);
214 
215  return PackedNode::header_size + LIBMESH_DIM*idtypes_per_Real +
216  this->packed_indexing_size();
217 }
void libMesh::TypeVector< Real >::print ( std::ostream &  os = libMesh::out) const
inherited

Formatted print, by default to libMesh::out.

void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out)
staticinherited

Prints the reference information, by default to libMesh::out.

Definition at line 88 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().

89 {
91 }
void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out)
staticinherited

Prints the reference information, by default to libMesh::out.

Definition at line 88 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().

89 {
91 }
void libMesh::Node::print_info ( std::ostream &  os = libMesh::out) const

Prints relevant information about the node

Definition at line 45 of file node.C.

References get_info().

Referenced by libMesh::operator<<().

46 {
47  os << this->get_info()
48  << std::endl;
49 }
processor_id_type libMesh::DofObject::processor_id ( ) const
inlineinherited
Returns
the processor that this DofObject belongs to.

When partitioning and DoF numbering have been performed by libMesh, every current DoF on this DofObject will belong to its processor.

Definition at line 673 of file dof_object.h.

References libMesh::DofObject::_processor_id.

Referenced by libMesh::MetisPartitioner::_do_partition(), libMesh::LinearPartitioner::_do_partition(), libMesh::SFCPartitioner::_do_partition(), libMesh::CentroidPartitioner::_do_partition(), libMesh::ParallelMesh::add_elem(), libMesh::Patch::add_local_face_neighbors(), libMesh::Patch::add_local_point_neighbors(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::ParallelMesh::add_node(), libMesh::SerialMesh::add_point(), libMesh::ParallelMesh::add_point(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::Patch::build_around_element(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::UnstructuredMesh::create_submesh(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::Elem::Elem(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::get_info(), libMesh::DofMap::get_local_constraints(), libMesh::MeshFunction::gradient(), libMesh::MeshFunction::hessian(), libMesh::DofObject::invalidate_processor_id(), libMesh::Elem::is_semilocal(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_procids< Node >(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshFunction::operator()(), libMesh::Parallel::pack(), libMesh::Node::PackedNode::pack(), libMesh::Elem::PackedElem::pack(), libMesh::XdrIO::pack_element(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofObject::processor_id(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::MeshData::read_xdr(), libMesh::Elem::refine(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Node::PackedNode::unpack(), libMesh::Parallel::unpack(), libMesh::Elem::PackedElem::unpack(), libMesh::CheckpointIO::write_connectivity(), libMesh::GmshIO::write_mesh(), libMesh::CheckpointIO::write_nodes(), libMesh::XdrIO::write_serialized_connectivity(), and libMesh::Nemesis_IO_Helper::write_sidesets().

674 {
675  return _processor_id;
676 }
processor_id_type & libMesh::DofObject::processor_id ( )
inlineinherited
Returns
the processor that this DofObject belongs to as a writeable reference.

Definition at line 681 of file dof_object.h.

References libMesh::DofObject::_processor_id.

682 {
683  return _processor_id;
684 }
void libMesh::DofObject::processor_id ( const processor_id_type  pid)
inlineinherited

Sets the processor_id for this DofObject.

Definition at line 689 of file dof_object.h.

References libMesh::DofObject::processor_id().

690 {
691  this->processor_id() = pid;
692 }
bool libMesh::TypeVector< Real >::relative_fuzzy_equals ( const TypeVector< Real > &  rhs,
Real  tol = TOLERANCE 
) const
inherited
Returns
true iff two vectors occupy approximately the same physical location in space, to within a relative tolerance of tol.
void libMesh::DofObject::set_buffer ( const std::vector< dof_id_type > &  buf)
inlineinherited

Definition at line 491 of file dof_object.h.

References libMesh::DofObject::_idx_buf.

492  { _idx_buf = buf; }
void libMesh::DofObject::set_dof_number ( const unsigned int  s,
const unsigned int  var,
const unsigned int  comp,
const dof_id_type  dn 
)
inherited

Sets the global degree of freedom number for variable var, component comp for system s associated with this DofObject

Definition at line 407 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::dof_number(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_vars(), libMesh::DofObject::start_idx(), libMesh::DofObject::system_var_to_vg_var(), and libMesh::DofObject::var_to_vg().

411 {
412  libmesh_assert_less (s, this->n_systems());
413  libmesh_assert_less (var, this->n_vars(s));
414  libmesh_assert_less (comp, this->n_comp(s,var));
415 
416  const unsigned int
417  vg = this->var_to_vg(s,var),
418  ncg = this->n_comp_group(s,vg),
419  vig = this->system_var_to_vg_var(s,vg,var),
420  start_idx_sys = this->start_idx(s);
421 
422  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
423 
424  dof_id_type &base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
425 
426  // We intend to change all dof numbers together or not at all
427  if (comp || vig)
428  libmesh_assert ((dn == invalid_id && base_idx == invalid_id) ||
429  (dn == base_idx + vig*ncg + comp));
430 
431  // only explicitly store the base index for vig==0, comp==0
432  else
433  base_idx = dn;
434 
435 // #ifdef DEBUG
436 // libMesh::out << " [ ";
437 // for (unsigned int i=0; i<_idx_buf.size(); i++)
438 // libMesh::out << _idx_buf[i] << " ";
439 // libMesh::out << "]\n";
440 // #endif
441 
442  libmesh_assert_equal_to (this->dof_number(s, var, comp), dn);
443 }
dof_id_type & libMesh::DofObject::set_id ( )
inlineinherited
void libMesh::DofObject::set_id ( const dof_id_type  dofid)
inlineinherited

Sets the id for this DofObject

Definition at line 161 of file dof_object.h.

References libMesh::DofObject::set_id().

162  { this->set_id() = dofid; }
void libMesh::DofObject::set_n_comp ( const unsigned int  s,
const unsigned int  var,
const unsigned int  ncomp 
)
inherited

Sets the number of components for Variable var of system s associated with this DofObject

Definition at line 340 of file dof_object.C.

References libMesh::DofObject::n_systems(), libMesh::DofObject::n_vars(), libMesh::DofObject::set_n_comp_group(), and libMesh::DofObject::var_to_vg().

343 {
344  libmesh_assert_less (s, this->n_systems());
345  libmesh_assert_less (var, this->n_vars(s));
346 
347  this->set_n_comp_group(s, this->var_to_vg(s,var), ncomp);
348 }
void libMesh::DofObject::set_n_comp_group ( const unsigned int  s,
const unsigned int  vg,
const unsigned int  ncomp 
)
inherited

Sets the number of components for VariableGroup vg of system s associated with this DofObject

Definition at line 352 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::err, libMesh::DofObject::invalid_id, libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::n_vars(), libMesh::DofObject::ncv_magic, and libMesh::DofObject::start_idx().

Referenced by libMesh::DofMap::reinit(), libMesh::DofObject::set_n_comp(), libMesh::DofObject::set_n_vars_per_group(), and libMesh::DofMap::set_nonlocal_dof_objects().

355 {
356  libmesh_assert_less (s, this->n_systems());
357  libmesh_assert_less (vg, this->n_var_groups(s));
358 
359  // Check for trivial return
360  if (ncomp == this->n_comp_group(s,vg)) return;
361 
362 #ifndef NDEBUG
363  if (ncomp >= ncv_magic)
364  {
365  const index_t ncvm = ncv_magic;
366  libMesh::err << "ERROR: ncomp must be less than DofObject::ncv_magic!\n"
367  << "ncomp = " << ncomp << ", ncv_magic = " << ncvm
368  << "\nrecompile and try again!\n";
369  libmesh_error();
370  }
371 #endif
372 
373  const unsigned int
374  start_idx_sys = this->start_idx(s),
375  n_vars_group = this->n_vars(s,vg),
376  base_offset = start_idx_sys + 2*vg;
377 
378  libmesh_assert_less ((base_offset + 1), _idx_buf.size());
379 
380  // if (ncomp)
381  // libMesh::out << "s,vg,ncomp="
382  // << s << ","
383  // << vg << ","
384  // << ncomp << '\n';
385 
386  // set the number of components, maintaining the number
387  // of variables in the group
388  _idx_buf[base_offset] = ncv_magic*n_vars_group + ncomp;
389 
390  // We use (invalid_id - 1) to signify no
391  // components for this object
392  _idx_buf[base_offset + 1] = (ncomp == 0) ? invalid_id - 1 : invalid_id;
393 
394  // this->debug_buffer();
395  // libMesh::out << "s,vg = " << s << "," << vg << '\n'
396  // << "base_offset=" << base_offset << '\n'
397  // << "this->n_comp(s,vg)=" << this->n_comp(s,vg) << '\n'
398  // << "this->n_comp_group(s,vg)=" << this->n_comp_group(s,vg) << '\n'
399  // << "this->n_vars(s,vg)=" << this->n_vars(s,vg) << '\n'
400  // << "this->n_var_groups(s)=" << this->n_var_groups(s) << '\n';
401 
402  libmesh_assert_equal_to (ncomp, this->n_comp_group(s,vg));
403 }
void libMesh::DofObject::set_n_systems ( const unsigned int  s)
inherited

Sets the number of systems for this DofObject

Definition at line 159 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::clear_dofs(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), and libMesh::DofObject::n_vars().

Referenced by libMesh::DofObject::add_system(), and libMesh::Elem::refine().

160 {
161  // Check for trivial return
162  if (ns == this->n_systems())
163  return;
164 
165  // Clear any existing data. This is safe to call
166  // even if we don't have any data.
167  this->clear_dofs();
168 
169  // Set the new number of systems
170  _idx_buf.resize(ns, ns);
171  _idx_buf[0] = ns;
172 
173 
174 #ifdef DEBUG
175 
176  // check that all systems now exist and that they have 0 size
177  libmesh_assert_equal_to (ns, this->n_systems());
178  for (unsigned int s=0; s<this->n_systems(); s++)
179  {
180  libmesh_assert_equal_to (this->n_vars(s), 0);
181  libmesh_assert_equal_to (this->n_var_groups(s), 0);
182  }
183 
184 #endif
185 }
void libMesh::DofObject::set_n_vars_per_group ( const unsigned int  s,
const std::vector< unsigned int > &  nvpg 
)
inherited

Sets number of variables in each group associated with system s for this DofObject. Implicit in this is salso setting the number of VariableGroup variable groups for the system. Has the effect of setting the number of components to 0 even when called even with (nvg == this->n_var_groups(s)).

Definition at line 221 of file dof_object.C.

References libMesh::DofObject::_idx_buf, end, libMesh::DofObject::end_idx(), libMesh::DofObject::invalid_id, libMesh::DofObject::n_comp(), libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::n_vars(), libMesh::DofObject::ncv_magic, libMesh::DofObject::set_n_comp_group(), and libMesh::DofObject::start_idx().

223 {
224 
225  libmesh_assert_less (s, this->n_systems());
226 
227  // number of varaible groups for this system - inferred
228  const unsigned int nvg = libmesh_cast_int<unsigned int>(nvpg.size());
229 
230  // BSK - note that for compatibility with the previous implementation
231  // calling this method when (nvars == this->n_vars()) requires that
232  // we invalidate the DOF indices and set the number of components to 0.
233  // Note this was a bit of a suprise to me - there was no quick return in
234  // the old method, which caused removal and readdition of the DOF indices
235  // even in the case of (nvars == this->n_vars()), resulting in n_comp(s,v)
236  // implicitly becoming 0 regardless of any previous value.
237  // quick return?
238  if (nvg == this->n_var_groups(s))
239  {
240  for (unsigned int vg=0; vg<nvg; vg++)
241  {
242  this->set_n_comp_group(s,vg,0);
243  libmesh_assert_equal_to (this->n_vars(s,vg), nvpg[vg]);
244  }
245  return;
246  }
247 
248  // since there is ample opportunity to screw up other systems, let us
249  // cache their current sizes and later assert that they are unchanged.
250 #ifdef DEBUG
251  DofObject::index_buffer_t old_system_sizes;
252  old_system_sizes.reserve(this->n_systems());
253 
254  for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
255  old_system_sizes.push_back(this->n_var_groups(s_ctr));
256 #endif
257 
258  // remove current indices if we have some
259  if (this->n_var_groups(s) != 0)
260  {
261  const unsigned int old_nvg_s = this->n_var_groups(s);
262 
263  DofObject::index_buffer_t::iterator
264  it = _idx_buf.begin(),
265  end = _idx_buf.begin();
266 
267  std::advance(it, this->start_idx(s));
268  std::advance(end, this->end_idx(s));
269  _idx_buf.erase(it,end);
270 
271  for (unsigned int ctr=(s+1); ctr<this->n_systems(); ctr++)
272  _idx_buf[ctr] -= 2*old_nvg_s;
273  }
274 
275  // better not have any now!
276  libmesh_assert_equal_to (this->n_var_groups(s), 0);
277 
278  // had better not screwed up any of our sizes!
279 #ifdef DEBUG
280  for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
281  if (s_ctr != s)
282  libmesh_assert_equal_to (this->n_var_groups(s_ctr), old_system_sizes[s_ctr]);
283 #endif
284 
285  // OK, if the user requested 0 that is what we have
286  if (nvg == 0)
287  return;
288 
289  {
290  // array to hold new indices
291  DofObject::index_buffer_t var_idxs(2*nvg);
292  for (unsigned int vg=0; vg<nvg; vg++)
293  {
294  var_idxs[2*vg ] = ncv_magic*nvpg[vg] + 0;
295  var_idxs[2*vg + 1] = invalid_id - 1;
296  }
297 
298  DofObject::index_buffer_t::iterator it = _idx_buf.begin();
299  std::advance(it, this->end_idx(s));
300  _idx_buf.insert(it, var_idxs.begin(), var_idxs.end());
301 
302  for (unsigned int ctr=(s+1); ctr<this->n_systems(); ctr++)
303  _idx_buf[ctr] += 2*nvg;
304 
305  // resize _idx_buf to fit so no memory is wasted.
307  }
308 
309  // that better had worked. Assert stuff.
310  libmesh_assert_equal_to (nvg, this->n_var_groups(s));
311 
312 #ifdef DEBUG
313 
314  // libMesh::out << " [ ";
315  // for (unsigned int i=0; i<_idx_buf.size(); i++)
316  // libMesh::out << _idx_buf[i] << " ";
317  // libMesh::out << "]\n";
318 
319  libmesh_assert_equal_to (this->n_var_groups(s), nvpg.size());
320 
321  for (unsigned int vg=0; vg<this->n_var_groups(s); vg++)
322  {
323  libmesh_assert_equal_to (this->n_vars(s,vg), nvpg[vg]);
324  libmesh_assert_equal_to (this->n_comp_group(s,vg), 0);
325  }
326 
327  for (unsigned int v=0; v<this->n_vars(s); v++)
328  libmesh_assert_equal_to (this->n_comp(s,v), 0);
329 
330  // again, all other system sizes shoudl be unchanged!
331  for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
332  if (s_ctr != s)
333  libmesh_assert_equal_to (this->n_var_groups(s_ctr), old_system_sizes[s_ctr]);
334 
335 #endif
336 }
void libMesh::DofObject::set_old_dof_object ( )
inherited

Sets the old_dof_object to a copy of this

Definition at line 144 of file dof_object.C.

References libMesh::DofObject::clear_old_dof_object(), libMesh::DofObject::DofObject(), libMesh::libmesh_assert(), and libMesh::DofObject::old_dof_object.

Referenced by libMesh::DofMap::reinit().

145 {
146  this->clear_old_dof_object();
147 
149 
150  // Make a new DofObject, assign a copy of \p this.
151  // Make sure the copy ctor for DofObject works!!
152  this->old_dof_object = new DofObject(*this);
153 }
unique_id_type & libMesh::DofObject::set_unique_id ( )
inlineinherited
Returns
the globally unique_id for this DofObject as a writeable reference.

Definition at line 641 of file dof_object.h.

References libMesh::DofObject::_unique_id.

Referenced by libMesh::SerialMesh::add_elem(), libMesh::ParallelMesh::add_elem(), libMesh::SerialMesh::add_node(), libMesh::ParallelMesh::add_node(), libMesh::CheckpointIO::read_connectivity(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), and libMesh::Parallel::unpack().

642 {
643 #ifdef LIBMESH_ENABLE_UNIQUE_ID
644  return _unique_id;
645 #else
646  libmesh_error();
647 #endif
648 }
void libMesh::DofObject::set_vg_dof_base ( const unsigned int  s,
const unsigned int  vg,
const dof_id_type  db 
)
inlineinherited

VariableGroup DoF indices are indexed as id = base + var_in_vg*ncomp + comp This method allows for direct access to the base.

Definition at line 881 of file dof_object.h.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::start_idx(), and libMesh::DofObject::vg_dof_base().

Referenced by libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofObject::invalidate_dofs(), libMesh::DofMap::reinit(), and libMesh::DofMap::set_nonlocal_dof_objects().

884 {
885  libmesh_assert_less (s, this->n_systems());
886  libmesh_assert_less (vg, this->n_var_groups(s));
887 
888  const unsigned int
889  start_idx_sys = this->start_idx(s);
890 
891  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
892 
893  _idx_buf[start_idx_sys + 2*vg + 1] = db;
894 
895  libmesh_assert_equal_to (this->vg_dof_base(s,vg), db);
896 }
Real libMesh::TypeVector< Real >::size ( ) const
inherited

Returns the magnitude of the vector, i.e. the square-root of the sum of the elements squared.

Real libMesh::TypeVector< Real >::size_sq ( ) const
inherited

Returns the magnitude of the vector squared, i.e. the sum of the element magnitudes squared.

const Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i) const
inlineinherited

Definition at line 123 of file type_vector.h.

123 { return (*this)(i); }
Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i)
inlineinherited

Definition at line 130 of file type_vector.h.

130 { return (*this)(i); }
void libMesh::TypeVector< Real >::subtract ( const TypeVector< T2 > &  )
inherited

Subtract from this vector without creating a temporary.

void libMesh::TypeVector< Real >::subtract_scaled ( const TypeVector< T2 > &  ,
const Real   
)
inherited

Subtract a scaled value from this vector without creating a temporary.

unique_id_type libMesh::DofObject::unique_id ( ) const
inlineinherited
Returns
the globally unique_id for this DofObject

Definition at line 628 of file dof_object.h.

References libMesh::DofObject::_unique_id, libMesh::DofObject::invalid_unique_id, libMesh::libmesh_assert(), and libMesh::DofObject::valid_unique_id().

Referenced by libMesh::Parallel::pack(), libMesh::XdrIO::pack_element(), libMesh::CheckpointIO::write_connectivity(), and libMesh::CheckpointIO::write_nodes().

629 {
630 #ifdef LIBMESH_ENABLE_UNIQUE_ID
632  return _unique_id;
633 #else
634  return invalid_unique_id;
635 #endif
636 }
TypeVector<Real > libMesh::TypeVector< Real >::unit ( ) const
inherited

Think of a vector as a dim dimensional vector. This will return a unit vector aligned in that direction.

void libMesh::DofObject::unpack_indexing ( std::vector< largest_id_type >::const_iterator  begin)
inherited

A method for creating our index buffer from packed data - basically with our current implementation we investigate the size term and then copy.

Definition at line 485 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::clear_old_dof_object(), libMesh::DofObject::DofObject(), libMesh::libmesh_assert(), libMesh::DofObject::old_dof_object, and libMesh::DofObject::unpack_indexing().

Referenced by libMesh::Node::PackedNode::unpack(), libMesh::Parallel::unpack(), libMesh::Elem::PackedElem::unpack(), and libMesh::DofObject::unpack_indexing().

486 {
487  _idx_buf.clear();
488 
489 #ifdef LIBMESH_ENABLE_AMR
490  this->clear_old_dof_object();
491  const int has_old_dof_object = *begin++;
492  libmesh_assert(has_old_dof_object == 1 ||
493  has_old_dof_object == 0);
494 #endif
495 
496  const int size = *begin++;
497  _idx_buf.reserve(size);
498  std::copy(begin, begin+size, back_inserter(_idx_buf));
499 
500  // Check as best we can for internal consistency now
501  libmesh_assert(_idx_buf.empty() ||
502  (_idx_buf[0] <= _idx_buf.size()));
503 #ifdef DEBUG
504  if (!_idx_buf.empty())
505  for (unsigned int i=1; i < _idx_buf[0]; ++i)
506  {
507  libmesh_assert_greater_equal (_idx_buf[i], _idx_buf[i-1]);
508  libmesh_assert_equal_to ((_idx_buf[i] - _idx_buf[i-1])%2, 0);
509  libmesh_assert_less_equal (_idx_buf[i], _idx_buf.size());
510  }
511 #endif
512 
513 #ifdef LIBMESH_ENABLE_AMR
514  if (has_old_dof_object)
515  {
516  this->old_dof_object = new DofObject();
517  this->old_dof_object->unpack_indexing(begin+size);
518  }
519 #endif
520 }
unsigned int libMesh::DofObject::unpackable_indexing_size ( std::vector< largest_id_type >::const_iterator  begin)
staticinherited

If we have indices packed into an buffer for communications, how much of that buffer applies to this dof object?

Definition at line 463 of file dof_object.C.

References libMesh::libmesh_assert().

Referenced by libMesh::Parallel::pack(), libMesh::Parallel::packed_size(), libMesh::Elem::PackedElem::packed_size(), and libMesh::Parallel::unpack().

464 {
465 #ifdef LIBMESH_ENABLE_AMR
466  const int has_old_dof_object = *begin++;
467 
468  // Either we have an old_dof_object or we don't
469  libmesh_assert(has_old_dof_object == 1 || has_old_dof_object == 0);
470  static const int dof_header_size = 2;
471 #else
472  static const bool has_old_dof_object = false;
473  static const int dof_header_size = 1;
474 #endif
475 
476  const int this_indexing_size = *begin++;
477 
478  return dof_header_size + this_indexing_size +
479  (has_old_dof_object ?
480  unpackable_indexing_size(begin+this_indexing_size) : 0);
481 }
bool libMesh::DofObject::valid_id ( ) const
inlineinherited
bool libMesh::DofObject::valid_processor_id ( ) const
inlineinherited
Returns
true if this DofObject has a valid id set, false otherwise.

Definition at line 697 of file dof_object.h.

References libMesh::DofObject::_processor_id, and libMesh::DofObject::invalid_processor_id.

698 {
700 }
bool libMesh::DofObject::valid_unique_id ( ) const
inlineinherited
Returns
true if this DofObject has a valid unique_id set, false otherwise.

Definition at line 661 of file dof_object.h.

References libMesh::DofObject::_unique_id, and libMesh::DofObject::invalid_unique_id.

Referenced by libMesh::SerialMesh::add_elem(), libMesh::ParallelMesh::add_elem(), libMesh::SerialMesh::add_node(), libMesh::ParallelMesh::add_node(), libMesh::Parallel::pack(), and libMesh::DofObject::unique_id().

662 {
663 #ifdef LIBMESH_ENABLE_UNIQUE_ID
665 #else
666  return false;
667 #endif
668 }
dof_id_type libMesh::DofObject::vg_dof_base ( const unsigned int  s,
const unsigned int  vg 
) const
inlineinherited

VariableGroup DoF indices are indexed as id = base + var_in_vg*ncomp + comp This method allows for direct access to the base.

Definition at line 901 of file dof_object.h.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::n_systems(), libMesh::DofObject::n_var_groups(), and libMesh::DofObject::start_idx().

Referenced by libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::reinit(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::DofObject::set_vg_dof_base().

903 {
904  libmesh_assert_less (s, this->n_systems());
905  libmesh_assert_less (vg, this->n_var_groups(s));
906 
907  const unsigned int
908  start_idx_sys = this->start_idx(s);
909 
910  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
911 
912 // #ifdef DEBUG
913 // std::cout << " [ ";
914 // for (unsigned int i=0; i<_idx_buf.size(); i++)
915 // std::cout << _idx_buf[i] << " ";
916 // std::cout << "]\n";
917 // #endif
918 
919  return _idx_buf[start_idx_sys + 2*vg + 1];
920 }
void libMesh::TypeVector< Real >::write_unformatted ( std::ostream &  out,
const bool  newline = true 
) const
inherited

Unformatted print to the stream out. Simply prints the elements of the vector separated by spaces. Optionally prints a newline, which it does by default.

void libMesh::TypeVector< Real >::zero ( )
inherited

Zero the vector in any dimension.

Friends And Related Function Documentation

friend class Elem
friend

Definition at line 228 of file node.h.

friend class MeshRefinement
friend

This class need access to the node key information, but no one else should be able to mess with it.

Definition at line 227 of file node.h.

Member Data Documentation

Real libMesh::TypeVector< Real >::_coords[LIBMESH_DIM]
protectedinherited

The coordinates of the TypeVector

Definition at line 347 of file type_vector.h.

ReferenceCounter::Counts libMesh::ReferenceCounter::_counts
staticprotectedinherited
ReferenceCounter::Counts libMesh::ReferenceCounter::_counts
staticprotectedinherited
bool libMesh::ReferenceCounter::_enable_print_counter = true
staticprotectedinherited

Flag to control whether reference count information is printed when print_info is called.

Definition at line 137 of file reference_counter.h.

Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().

bool libMesh::ReferenceCounter::_enable_print_counter = true
staticprotectedinherited

Flag to control whether reference count information is printed when print_info is called.

Definition at line 137 of file reference_counter.h.

Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().

Threads::spin_mutex libMesh::ReferenceCounter::_mutex
staticprotectedinherited

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 131 of file reference_counter.h.

Threads::spin_mutex libMesh::ReferenceCounter::_mutex
staticprotectedinherited

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 131 of file reference_counter.h.

Threads::atomic< unsigned int > libMesh::ReferenceCounter::_n_objects
staticprotectedinherited

The number of objects. Print the reference count information when the number returns to 0.

Definition at line 126 of file reference_counter.h.

Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().

Threads::atomic< unsigned int > libMesh::ReferenceCounter::_n_objects
staticprotectedinherited

The number of objects. Print the reference count information when the number returns to 0.

Definition at line 126 of file reference_counter.h.

Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().

const processor_id_type libMesh::DofObject::invalid_processor_id = static_cast<processor_id_type>(-1)
staticinherited

An invalid processor_id to distinguish DoFs that have not been assigned to a processor.

Definition at line 346 of file dof_object.h.

Referenced by libMesh::ParallelMesh::add_elem(), libMesh::ParallelMesh::add_node(), libMesh::MeshCommunication::allgather(), libMesh::MeshTools::bounding_box(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::Elem::Elem(), libMesh::MeshCommunication::find_global_indices(), libMesh::DofObject::invalidate_processor_id(), libMesh::ParallelMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::ParallelMesh::n_active_elem(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::n_unpartitioned_nodes(), libMesh::Elem::PackedElem::processor_id(), libMesh::CheckpointIO::read_connectivity(), libMesh::ParallelMesh::renumber_dof_objects(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_dofobject_data_by_xyz(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::MeshTools::total_weight(), libMesh::Node::PackedNode::unpack(), libMesh::Parallel::unpack(), libMesh::SerialMesh::unpartitioned_elements_begin(), libMesh::ParallelMesh::unpartitioned_elements_begin(), libMesh::SerialMesh::unpartitioned_elements_end(), libMesh::ParallelMesh::unpartitioned_elements_end(), libMesh::DofObject::valid_processor_id(), and libMesh::CheckpointIO::write_connectivity().

const unique_id_type libMesh::DofObject::invalid_unique_id = static_cast<unique_id_type>(-1)
staticinherited

An invaild unique_id to distinguish an uninitialized DofObject

Definition at line 340 of file dof_object.h.

Referenced by libMesh::Parallel::pack(), libMesh::ParallelMesh::renumber_dof_objects(), libMesh::DofObject::unique_id(), and libMesh::DofObject::valid_unique_id().


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

Site Created By: libMesh Developers
Last modified: February 07 2014 16:58:01 UTC

Hosted By:
SourceForge.net Logo