libMesh::Node Class Reference

A geometric point in (x,y,z) space associated with a DOF. More...

#include <node.h>

Inheritance diagram for libMesh::Node:

Public Types

typedef Real value_type
 

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
 
unsigned int valence () const
 
void set_valence (unsigned int val)
 
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 norm () const
 
Real size_sq () const
 
Real norm_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 print_dof_info () const
 
void set_buffer (const std::vector< dof_id_type > &buf)
 

Static Public Member Functions

static UniquePtr< Nodebuild (const Node &n)
 
static UniquePtr< Nodebuild (const Point &p, const dof_id_type id)
 
static UniquePtr< 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
 

Private Types

typedef unsigned char valence_idx_t
 

Private Attributes

valence_idx_t _valence
 

Friends

class MeshRefinement
 
class Elem
 

Detailed Description

A geometric point in (x,y,z) space associated with a DOF.

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 52 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 110 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 110 of file reference_counter.h.

typedef unsigned char libMesh::Node::valence_idx_t
private

Type used to store node valence.

Definition at line 184 of file node.h.

typedef Real libMesh::TypeVector< Real >::value_type
inherited

Helper typedef for C++98 generic programming

Definition at line 111 of file type_vector.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 212 of file node.h.

References _valence, libMesh::DofObject::DofObject(), libMesh::DofObject::invalid_id, libMesh::Point::Point(), libMesh::DofObject::set_id(), and ~Node().

Referenced by build().

215  :
216  Point(x,y,z)
217 #ifdef LIBMESH_ENABLE_NODE_VALENCE
218  ,
219  _valence(0)
220 #endif
221 {
222  this->set_id() = dofid;
223 }
224 
225 
226 
227 inline
228 Node::Node (const Node & n) :
229  Point(n),
230  DofObject(n),
232 #ifdef LIBMESH_ENABLE_NODE_VALENCE
233  ,
234  _valence(n._valence)
235 #endif
236 {
237 }
238 
239 
240 
241 inline
242 Node::Node (const Point & p,
243  const dof_id_type dofid) :
244  Point(p)
245 #ifdef LIBMESH_ENABLE_NODE_VALENCE
246  ,
247  _valence(0)
248 #endif
249 {
250  // optionally assign the id. We have
251  // to do it like this otherwise
252  // Node n = Point p would erase
253  // the id!
254  if (dofid != invalid_id)
255  this->set_id() = dofid;
256 }
257 
258 
259 
260 inline
261 Node::~Node ()
262 {
263 }
valence_idx_t _valence
Definition: node.h:191
dof_id_type & set_id()
Definition: dof_object.h:633
Node(const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
Definition: node.h:212
Point(const Real x=0., const Real y=0., const Real z=0.)
Definition: point.h:46
PetscErrorCode Vec x
uint8_t dof_id_type
Definition: id_types.h:64
libMesh::Node::Node ( const Node n)

Copy-constructor.

libMesh::Node::Node ( const Point p,
const dof_id_type  id = invalid_id 
)
explicit

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

libMesh::Node::~Node ( )

Destructor.

Referenced by Node().

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 312 of file node.h.

References libMesh::DofObject::invalid_id.

313 {
314  return (this->id() != Node::invalid_id);
315 }
static const dof_id_type invalid_id
Definition: dof_object.h:335
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 187 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().

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

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

Assign to a vector without creating a temporary.

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

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

Definition at line 284 of file node.h.

References Node().

Referenced by libMesh::ReplicatedMesh::add_point(), and libMesh::DistributedMesh::add_point().

285 {
286  return UniquePtr<Node>(new Node(n));
287 }
Node(const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
Definition: node.h:212
UniquePtr< Node > libMesh::Node::build ( const Point p,
const dof_id_type  id 
)
inlinestatic

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

Definition at line 292 of file node.h.

References Node().

294 {
295  return UniquePtr<Node>(new Node(p,id));
296 }
Node(const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
Definition: node.h:212
UniquePtr< 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 UniquePtr<Node> to the newly-created object. Optionally assigned the id.

Definition at line 301 of file node.h.

References Node().

305 {
306  return UniquePtr<Node>(new Node(x,y,z,id));
307 }
Node(const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
Definition: node.h:212
PetscErrorCode Vec x
void libMesh::DofObject::clear_dofs ( )
inlineinherited

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

Definition at line 590 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().

591 {
592  // vector swap trick to force deallocation
593  index_buffer_t().swap(_idx_buf);
594 
595  libmesh_assert_equal_to (this->n_systems(), 0);
596  libmesh_assert (_idx_buf.empty());
597 }
libmesh_assert(j)
std::vector< index_t > index_buffer_t
Definition: dof_object.h:476
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
void libMesh::DofObject::clear_old_dof_object ( )
inherited

Sets the old_dof_object to libmesh_nullptr

Definition at line 134 of file dof_object.C.

References libmesh_nullptr, and libMesh::DofObject::old_dof_object.

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

135 {
136  delete this->old_dof_object;
138 }
const class libmesh_nullptr_t libmesh_nullptr
DofObject * old_dof_object
Definition: dof_object.h:89
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 542 of file dof_object.C.

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

543 {
544  libMesh::out << " [ ";
545  for (std::size_t i=0; i<_idx_buf.size(); i++)
546  libMesh::out << _idx_buf[i] << " ";
547  libMesh::out << "]\n";
548 }
index_buffer_t _idx_buf
Definition: dof_object.h:477
OStreamProxy out(std::cout)
void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited
void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited
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 802 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::_dof_indices(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEGenericBase< OutputType >::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(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::local_variable_indices(), libMesh::DofMap::old_dof_indices(), libMesh::BuildProjectionList::operator()(), libMesh::DofObject::operator=(), libMesh::DofObject::print_dof_info(), libMesh::HPCoarsenTest::select_refinement(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_id(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::System::zero_variable().

805 {
806  libmesh_assert_less (s, this->n_systems());
807  libmesh_assert_less (var, this->n_vars(s));
808  libmesh_assert_less (comp, this->n_comp(s,var));
809 
810  const unsigned int
811  vg = this->var_to_vg(s,var),
812  start_idx_sys = this->start_idx(s);
813 
814  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
815 
816  const dof_id_type
817  base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
818 
819  // if the first component is invalid, they
820  // are all invalid
821  if (base_idx == invalid_id)
822  return invalid_id;
823 
824  // otherwise the index is the first component
825  // index augemented by the component number
826  else
827  {
828  const unsigned int
829  ncg = this->n_comp_group(s,vg),
830  vig = this->system_var_to_vg_var(s,vg,var);
831 
832  // std::cout << "base_idx, var, vg, vig, ncg, comp="
833  // << base_idx << " "
834  // << var << " "
835  // << vg << " "
836  // << vig << " "
837  // << ncg << " "
838  // << comp << '\n';
839 
840  return cast_int<dof_id_type>(base_idx + vig*ncg + comp);
841  }
842 }
unsigned int n_comp_group(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:785
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
unsigned int system_var_to_vg_var(const unsigned int s, const unsigned int vg, const unsigned int var) const
Definition: dof_object.h:957
static const dof_id_type invalid_id
Definition: dof_object.h:335
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
unsigned int var_to_vg(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:938
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_comp(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:772
unsigned int n_systems() const
Definition: dof_object.h:718
uint8_t dof_id_type
Definition: id_types.h:64
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.

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

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.

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

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 name(const ElemQuality q)
Definition: elem_quality.C:39
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 name(const ElemQuality q)
Definition: elem_quality.C:39
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 valid_id() const
Definition: dof_object.h:666
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
dof_id_type dof_number(const unsigned int s, const unsigned int var, const unsigned int comp) const
Definition: dof_object.h:802
Point(const Real x=0., const Real y=0., const Real z=0.)
Definition: point.h:46
unsigned int n_comp(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:772
dof_id_type id() const
Definition: dof_object.h:624
unsigned int n_systems() const
Definition: dof_object.h:718
processor_id_type processor_id() const
Definition: dof_object.h:686
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 847 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::old_dof_indices(), libMesh::DofMap::reinit(), and libMesh::DofObject::set_id().

848 {
849  if (sys == libMesh::invalid_uint)
850  {
851  for (unsigned int s=0; s<this->n_systems(); s++)
852  if (this->n_vars(s))
853  return true;
854  }
855 
856  else
857  {
858  libmesh_assert_less (sys, this->n_systems());
859 
860  if (this->n_vars(sys))
861  return true;
862  }
863 
864  return false;
865 }
const unsigned int invalid_uint
Definition: libmesh.h:184
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
ImplicitSystem & sys
unsigned int n_systems() const
Definition: dof_object.h:718
dof_id_type libMesh::DofObject::id ( ) const
inlineinherited
Returns
the id for this DofObject

Definition at line 624 of file dof_object.h.

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

Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::TopologyMap::add_node(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::add_point(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::CheckpointIO::build_elem_list(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::ParmetisPartitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::VTKIO::cells_to_vtk(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), libMesh::FEMap::compute_single_point_map(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::UnstructuredMesh::create_submesh(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshBase::detect_interior_parents(), libMesh::UNVIO::elements_out(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::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(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::get_local_constraints(), libMesh::BoundaryInfo::get_side_and_node_maps(), libMesh::EquationSystems::get_solution(), libMesh::LaplaceMeshSmoother::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::TreeNode< N >::insert(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), libMesh::FE< Dim, T >::inverse_map(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::Tri3Subdivision::local_node_number(), libMesh::Elem::node_id(), libMesh::UNVIO::nodes_out(), libMesh::VTKIO::nodes_to_vtk(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::BoundaryInfo::operator=(), libMesh::Parallel::Packing< const Node * >::pack(), libMesh::Parallel::Packing< const Elem * >::pack(), libMesh::MetisPartitioner::partition_range(), libMesh::SFCPartitioner::partition_range(), libMesh::ErrorVector::plot_error(), libMesh::DofObject::print_dof_info(), libMesh::DistributedMesh::query_elem_ptr(), libMesh::DistributedMesh::query_node_ptr(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read_elements(), libMesh::DistributedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_node(), libMesh::DistributedMesh::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::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Parallel::Packing< Elem * >::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::GmshIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::CheckpointIO::write_nodes(), and libMesh::XdrIO::write_serialized_connectivity().

625 {
626  libmesh_assert (this->valid_id());
627  return _id;
628 }
bool valid_id() const
Definition: dof_object.h:666
dof_id_type _id
Definition: dof_object.h:412
libmesh_assert(j)
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 160 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

161 {
162  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
163  std::pair<unsigned int, unsigned int> & p = _counts[name];
164 
165  p.first++;
166 }
std::string name(const ElemQuality q)
Definition: elem_quality.C:39
spin_mutex spin_mtx
Definition: threads.C:29
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 160 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().

161 {
162  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
163  std::pair<unsigned int, unsigned int> & p = _counts[name];
164 
165  p.first++;
166 }
std::string name(const ElemQuality q)
Definition: elem_quality.C:39
spin_mutex spin_mtx
Definition: threads.C:29
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 173 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

174 {
175  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
176  std::pair<unsigned int, unsigned int> & p = _counts[name];
177 
178  p.second++;
179 }
std::string name(const ElemQuality q)
Definition: elem_quality.C:39
spin_mutex spin_mtx
Definition: threads.C:29
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 173 of file reference_counter.h.

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

Referenced by libMesh::ReferenceCounter::n_objects(), and libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().

174 {
175  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
176  std::pair<unsigned int, unsigned int> & p = _counts[name];
177 
178  p.second++;
179 }
std::string name(const ElemQuality q)
Definition: elem_quality.C:39
spin_mutex spin_mtx
Definition: threads.C:29
void libMesh::DofObject::invalidate ( )
inlineinherited

Invalidates all the indices for this DofObject

Definition at line 580 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().

581 {
582  this->invalidate_dofs ();
583  this->invalidate_id ();
584  this->invalidate_processor_id ();
585 }
void invalidate_processor_id()
Definition: dof_object.h:572
void invalidate_dofs(const unsigned int sys_num=libMesh::invalid_uint)
Definition: dof_object.h:544
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 544 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().

545 {
546  // If the user does not specify the system number...
547  if (sys_num >= this->n_systems())
548  {
549  for (unsigned int s=0; s<this->n_systems(); s++)
550  for (unsigned int vg=0; vg<this->n_var_groups(s); vg++)
551  if (this->n_comp_group(s,vg))
552  this->set_vg_dof_base(s,vg,invalid_id);
553  }
554  // ...otherwise invalidate the dofs for all systems
555  else
556  for (unsigned int vg=0; vg<this->n_var_groups(sys_num); vg++)
557  if (this->n_comp_group(sys_num,vg))
558  this->set_vg_dof_base(sys_num,vg,invalid_id);
559 }
unsigned int n_comp_group(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:785
void set_vg_dof_base(const unsigned int s, const unsigned int vg, const dof_id_type db)
Definition: dof_object.h:894
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
static const dof_id_type invalid_id
Definition: dof_object.h:335
unsigned int n_systems() const
Definition: dof_object.h:718
void libMesh::DofObject::invalidate_id ( )
inlineinherited

Sets the id to invalid_id

Definition at line 564 of file dof_object.h.

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

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

565 {
566  this->set_id (invalid_id);
567 }
dof_id_type & set_id()
Definition: dof_object.h:633
static const dof_id_type invalid_id
Definition: dof_object.h:335
void libMesh::DofObject::invalidate_processor_id ( )
inlineinherited

Sets the processor id to invalid_processor_id

Definition at line 572 of file dof_object.h.

References libMesh::DofObject::invalid_processor_id, and libMesh::DofObject::processor_id().

Referenced by libMesh::DofObject::invalidate(), libMesh::Partitioner::set_node_processor_ids(), and libMesh::Partitioner::set_parent_processor_ids().

573 {
575 }
static const processor_id_type invalid_processor_id
Definition: dof_object.h:346
processor_id_type processor_id() const
Definition: dof_object.h:686
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 772 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::_dof_indices(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEGenericBase< OutputType >::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::distribute_local_dofs_node_major(), libMesh::DofMap::dof_indices(), libMesh::DofObject::dof_number(), libMesh::DofObject::DofObject(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::local_variable_indices(), libMesh::DofObject::n_dofs(), libMesh::DofMap::old_dof_indices(), libMesh::BuildProjectionList::operator()(), libMesh::DofObject::operator=(), libMesh::DofObject::print_dof_info(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_id(), libMesh::DofObject::set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::System::zero_variable().

774 {
775  libmesh_assert_less (s, this->n_systems());
776  libmesh_assert_less (var, this->n_vars(s));
777 
778  return this->n_comp_group(s,this->var_to_vg(s,var));
779 }
unsigned int n_comp_group(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:785
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
unsigned int var_to_vg(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:938
unsigned int n_systems() const
Definition: dof_object.h:718
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 785 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_id(), libMesh::DofObject::set_n_comp_group(), libMesh::DofObject::set_n_vars_per_group(), and libMesh::DofMap::set_nonlocal_dof_objects().

787 {
788  libmesh_assert_less (s, this->n_systems());
789  libmesh_assert_less (vg, this->n_var_groups(s));
790 
791  const unsigned int
792  start_idx_sys = this->start_idx(s);
793 
794  libmesh_assert_less ((start_idx_sys + 2*vg), _idx_buf.size());
795 
796  return (_idx_buf[start_idx_sys + 2*vg] % ncv_magic);
797 }
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
static const index_t ncv_magic
Definition: dof_object.h:488
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 602 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_parallel_solution_vector().

604 {
605  libmesh_assert_less (s, this->n_systems());
606 
607  unsigned int num = 0;
608 
609  // Count all variables
610  if (var == libMesh::invalid_uint)
611  for (unsigned int v=0; v<this->n_vars(s); v++)
612  num += this->n_comp(s,v);
613 
614  // Only count specified variable
615  else
616  num = this->n_comp(s,var);
617 
618  return num;
619 }
const unsigned int invalid_uint
Definition: libmesh.h:184
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
unsigned int n_comp(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:772
unsigned int n_systems() const
Definition: dof_object.h:718
static unsigned int libMesh::ReferenceCounter::n_objects ( )
inlinestaticinherited
static unsigned int libMesh::ReferenceCounter::n_objects ( )
inlinestaticinherited
unsigned int libMesh::DofObject::n_vars ( const unsigned int  s,
const unsigned int  vg 
) const
inlineinherited
Returns
the number of Variable variables associated with VariableGroup vg in system s for this DofObject

Definition at line 737 of file dof_object.h.

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

Referenced by libMesh::DofObject::add_system(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::distribute_dofs(), libMesh::DofObject::dof_number(), libMesh::DofObject::DofObject(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), get_info(), libMesh::Elem::get_info(), libMesh::DofObject::has_dofs(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_dofs(), libMesh::DofObject::n_vars(), libMesh::BuildProjectionList::operator()(), libMesh::DofObject::operator=(), libMesh::DofObject::print_dof_info(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_id(), libMesh::DofObject::set_n_comp(), libMesh::DofObject::set_n_comp_group(), libMesh::DofObject::set_n_systems(), libMesh::DofObject::set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::DofObject::system_var_to_vg_var(), and libMesh::DofObject::var_to_vg().

739 {
740  libmesh_assert_less (s, this->n_systems());
741  libmesh_assert_less (vg, this->n_var_groups(s));
742 
743  const unsigned int start_idx_sys = this->start_idx(s);
744 
745  libmesh_assert_less ((start_idx_sys + 2*vg), _idx_buf.size());
746 
747  return (cast_int<unsigned int>
748  (_idx_buf[start_idx_sys + 2*vg]) >> ncv_magic_exp);
749 }
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
static const index_t ncv_magic_exp
Definition: dof_object.h:489
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 754 of file dof_object.h.

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

755 {
756  libmesh_assert_less (s, this->n_systems());
757 
758  const unsigned int nvg = this->n_var_groups(s);
759 
760  unsigned int val=0;
761 
762  for (unsigned int vg=0; vg<nvg; vg++)
763  val += this->n_vars(s,vg);
764 
765  return val;
766 }
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
unsigned int n_systems() const
Definition: dof_object.h:718
Real libMesh::TypeVector< Real >::norm ( ) const
inherited

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

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

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

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 268 of file node.h.

269 {
270  (*this)(0) = p(0);
271 #if LIBMESH_DIM > 1
272  (*this)(1) = p(1);
273 #endif
274 #if LIBMESH_DIM > 2
275  (*this)(2) = p(2);
276 #endif
277 
278  return *this;
279 }
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 operator==(const TypeVector< Real > &rhs) const
bool libMesh::TypeVector< Real >::operator== ( const TypeVector< Real > &  rhs) const
inherited
Returns
true iff this(i)==rhs(i) for each component of the vector. For floating point types T, the function absolute_fuzzy_equals may be a more appropriate choice.

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 524 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libmesh_nullptr, libMesh::DofObject::old_dof_object, and libMesh::DofObject::pack_indexing().

Referenced by libMesh::Parallel::Packing< const Node * >::pack(), libMesh::Parallel::Packing< const Elem * >::pack(), and libMesh::DofObject::pack_indexing().

525 {
526 #ifdef LIBMESH_ENABLE_AMR
527  // We might need to pack old_dof_object too
528  *target++ = (old_dof_object == libmesh_nullptr) ? 0 : 1;
529 #endif
530 
531  *target++ = _idx_buf.size();
532  std::copy(_idx_buf.begin(), _idx_buf.end(), target);
533 
534 #ifdef LIBMESH_ENABLE_AMR
535  if (old_dof_object)
536  old_dof_object->pack_indexing(target);
537 #endif
538 }
const class libmesh_nullptr_t libmesh_nullptr
DofObject * old_dof_object
Definition: dof_object.h:89
index_buffer_t _idx_buf
Definition: dof_object.h:477
void pack_indexing(std::back_insert_iterator< std::vector< largest_id_type > > target) const
Definition: dof_object.C:524
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 449 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libmesh_nullptr, and libMesh::DofObject::old_dof_object.

Referenced by libMesh::Parallel::Packing< const Node * >::packable_size(), libMesh::Parallel::Packing< const Elem * >::packable_size(), packed_size(), and libMesh::Parallel::Packing< Elem * >::unpack().

450 {
451  return
452  cast_int<unsigned int> (
453 #ifdef LIBMESH_ENABLE_AMR
454  ((old_dof_object == libmesh_nullptr) ? 0 : old_dof_object->packed_indexing_size()) + 2 +
455 #else
456  1 +
457 #endif
458  _idx_buf.size());
459 }
const class libmesh_nullptr_t libmesh_nullptr
DofObject * old_dof_object
Definition: dof_object.h:89
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int libMesh::Node::packed_size ( ) const
inline

Definition at line 137 of file node.h.

References libMesh::DofObject::packed_indexing_size(), and libMesh::Real.

138  {
139  const unsigned int header_size = 2;
140 
141  // use "(a+b-1)/b" trick to get a/b to round up
142  static const unsigned int idtypes_per_Real =
143  (sizeof(Real) + sizeof(largest_id_type) - 1) / sizeof(largest_id_type);
144 
145  return header_size + LIBMESH_DIM*idtypes_per_Real +
146  this->packed_indexing_size();
147  }
uint64_t largest_id_type
Definition: id_types.h:138
unsigned int packed_indexing_size() const
Definition: dof_object.C:449
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void libMesh::TypeVector< Real >::print ( std::ostream &  os = libMesh::out) const
inherited

Formatted print, by default to libMesh::out.

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

Print out info for debugging.

Definition at line 552 of file dof_object.C.

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

553 {
554  libMesh::out << this->id() << " [ ";
555 
556  for (unsigned int s=0; s<this->n_systems(); s++)
557  {
558  libMesh::out << "s:" << s << " ";
559  for (unsigned int var=0; var<this->n_vars(s); var++)
560  {
561  libMesh::out << "v:" << var << " ";
562  for (unsigned int comp=0; comp<this->n_comp(s,var); comp++)
563  {
564  libMesh::out << "c:" << comp << " dof:" << this->dof_number(s,var,comp) << " ";
565  }
566  }
567  }
568 
569  libMesh::out << "]\n";
570 }
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
dof_id_type dof_number(const unsigned int s, const unsigned int var, const unsigned int comp) const
Definition: dof_object.h:802
unsigned int n_comp(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:772
dof_id_type id() const
Definition: dof_object.h:624
unsigned int n_systems() const
Definition: dof_object.h:718
OStreamProxy out(std::cout)
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().

Referenced by libMesh::LibMeshInit::LibMeshInit().

89 {
91 }
static std::string get_info()
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().

Referenced by libMesh::LibMeshInit::LibMeshInit().

89 {
91 }
static std::string get_info()
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 }
std::string get_info() const
Definition: node.C:53
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 686 of file dof_object.h.

References libMesh::DofObject::_processor_id.

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::Patch::add_local_face_neighbors(), libMesh::Patch::add_local_point_neighbors(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::DistributedMesh::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::BoundaryInfo::build_node_list_from_side_list(), libMesh::VTKIO::cells_to_vtk(), 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::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::Elem::Elem(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), get_info(), libMesh::Elem::get_info(), libMesh::DofMap::get_info(), libMesh::DofMap::get_local_constraints(), libMesh::DistributedMesh::insert_elem(), libMesh::DofObject::invalidate_processor_id(), libMesh::Elem::is_semilocal(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::GhostPointNeighbors::operator()(), libMesh::SiblingCoupling::operator()(), libMesh::DefaultCoupling::operator()(), libMesh::PointNeighborCoupling::operator()(), libMesh::Parallel::Packing< const Node * >::pack(), libMesh::Parallel::Packing< const Elem * >::pack(), libMesh::XdrIO::pack_element(), libMesh::LinearPartitioner::partition_range(), libMesh::MetisPartitioner::partition_range(), libMesh::SFCPartitioner::partition_range(), libMesh::MappedSubdomainPartitioner::partition_range(), libMesh::CentroidPartitioner::partition_range(), 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::Elem::refine(), libMesh::DofMap::scatter_constraints(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::DofObject::set_id(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::Partitioner::single_partition_range(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::GMVIO::write_binary(), libMesh::CheckpointIO::write_connectivity(), libMesh::GmshIO::write_mesh(), libMesh::CheckpointIO::write_nodes(), libMesh::XdrIO::write_serialized_connectivity(), and libMesh::Nemesis_IO_Helper::write_sidesets().

687 {
688  return _processor_id;
689 }
processor_id_type _processor_id
Definition: dof_object.h:423
processor_id_type & libMesh::DofObject::processor_id ( )
inlineinherited
Returns
the processor that this DofObject belongs to as a writeable reference.

Definition at line 694 of file dof_object.h.

References libMesh::DofObject::_processor_id.

695 {
696  return _processor_id;
697 }
processor_id_type _processor_id
Definition: dof_object.h:423
void libMesh::DofObject::processor_id ( const processor_id_type  pid)
inlineinherited

Sets the processor_id for this DofObject.

Definition at line 702 of file dof_object.h.

References libMesh::DofObject::processor_id().

703 {
704  this->processor_id() = pid;
705 }
processor_id_type processor_id() const
Definition: dof_object.h:686
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 504 of file dof_object.h.

505  { _idx_buf = buf; }
index_buffer_t _idx_buf
Definition: dof_object.h:477
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 406 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().

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

410 {
411  libmesh_assert_less (s, this->n_systems());
412  libmesh_assert_less (var, this->n_vars(s));
413  libmesh_assert_less (comp, this->n_comp(s,var));
414 
415  const unsigned int
416  vg = this->var_to_vg(s,var),
417 #ifndef NDEBUG
418  ncg = this->n_comp_group(s,vg),
419 #endif
420  vig = this->system_var_to_vg_var(s,vg,var),
421  start_idx_sys = this->start_idx(s);
422 
423  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
424 
425  dof_id_type & base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
426 
427  // We intend to change all dof numbers together or not at all
428  if (comp || vig)
429  libmesh_assert ((dn == invalid_id && base_idx == invalid_id) ||
430  (dn == base_idx + vig*ncg + comp));
431 
432  // only explicitly store the base index for vig==0, comp==0
433  else
434  base_idx = dn;
435 
436  // #ifdef DEBUG
437  // libMesh::out << " [ ";
438  // for (std::size_t i=0; i<_idx_buf.size(); i++)
439  // libMesh::out << _idx_buf[i] << " ";
440  // libMesh::out << "]\n";
441  // #endif
442 
443  libmesh_assert_equal_to (this->dof_number(s, var, comp), dn);
444 }
unsigned int n_comp_group(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:785
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
dof_id_type dof_number(const unsigned int s, const unsigned int var, const unsigned int comp) const
Definition: dof_object.h:802
unsigned int system_var_to_vg_var(const unsigned int s, const unsigned int vg, const unsigned int var) const
Definition: dof_object.h:957
libmesh_assert(j)
static const dof_id_type invalid_id
Definition: dof_object.h:335
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
unsigned int var_to_vg(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:938
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_comp(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:772
unsigned int n_systems() const
Definition: dof_object.h:718
uint8_t dof_id_type
Definition: id_types.h:64
dof_id_type & libMesh::DofObject::set_id ( )
inlineinherited
Returns
the id for this DofObject as a writeable reference.

Definition at line 633 of file dof_object.h.

References libMesh::DofObject::_id.

Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::UnstructuredMesh::create_submesh(), libMesh::UNVIO::elements_in(), libMesh::MeshTools::Modification::flatten(), libMesh::DofObject::invalidate_id(), Node(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::RemoteElem::RemoteElem(), libMesh::ReplicatedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_elem(), libMesh::ReplicatedMesh::renumber_node(), libMesh::DistributedMesh::renumber_node(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DofObject::set_id(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::Parallel::Packing< Elem * >::unpack().

634 {
635  return _id;
636 }
dof_id_type _id
Definition: dof_object.h:412
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 337 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().

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

340 {
341  libmesh_assert_less (s, this->n_systems());
342  libmesh_assert_less (var, this->n_vars(s));
343 
344  this->set_n_comp_group(s, this->var_to_vg(s,var), ncomp);
345 }
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
void set_n_comp_group(const unsigned int s, const unsigned int vg, const unsigned int ncomp)
Definition: dof_object.C:349
unsigned int var_to_vg(const unsigned int s, const unsigned int var) const
Definition: dof_object.h:938
unsigned int n_systems() const
Definition: dof_object.h:718
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 349 of file dof_object.C.

References libMesh::DofObject::_idx_buf, 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_id(), libMesh::DofObject::set_n_comp(), libMesh::DofObject::set_n_vars_per_group(), and libMesh::DofMap::set_nonlocal_dof_objects().

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

Sets the number of systems for this DofObject

Definition at line 157 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(), libMesh::Elem::refine(), libMesh::EquationSystems::reinit(), and libMesh::DofObject::set_id().

158 {
159  // Check for trivial return
160  if (ns == this->n_systems())
161  return;
162 
163  // Clear any existing data. This is safe to call
164  // even if we don't have any data.
165  this->clear_dofs();
166 
167  // Set the new number of systems
168  _idx_buf.resize(ns, ns);
169  _idx_buf[0] = ns;
170 
171 
172 #ifdef DEBUG
173 
174  // check that all systems now exist and that they have 0 size
175  libmesh_assert_equal_to (ns, this->n_systems());
176  for (unsigned int s=0; s<this->n_systems(); s++)
177  {
178  libmesh_assert_equal_to (this->n_vars(s), 0);
179  libmesh_assert_equal_to (this->n_var_groups(s), 0);
180  }
181 
182 #endif
183 }
unsigned int n_vars(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:737
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
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 219 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().

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

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

Sets the old_dof_object to a copy of this

Definition at line 142 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().

143 {
144  this->clear_old_dof_object();
145 
147 
148  // Make a new DofObject, assign a copy of \p this.
149  // Make sure the copy ctor for DofObject works!!
150  this->old_dof_object = new DofObject(*this);
151 }
libmesh_assert(j)
void clear_old_dof_object()
Definition: dof_object.C:134
DofObject * old_dof_object
Definition: dof_object.h:89
void libMesh::Node::set_valence ( unsigned int  val)
inline

Sets the number of nodes connected with this node.

Definition at line 322 of file node.h.

References _valence.

Referenced by libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), and valence().

323 {
324  _valence = cast_int<valence_idx_t>(val);
325 }
valence_idx_t _valence
Definition: node.h:191
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 894 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(), libMesh::DofObject::set_id(), and libMesh::DofMap::set_nonlocal_dof_objects().

897 {
898  libmesh_assert_less (s, this->n_systems());
899  libmesh_assert_less (vg, this->n_var_groups(s));
900 
901  const unsigned int
902  start_idx_sys = this->start_idx(s);
903 
904  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
905 
906  _idx_buf[start_idx_sys + 2*vg + 1] = db;
907 
908  libmesh_assert_equal_to (this->vg_dof_base(s,vg), db);
909 }
dof_id_type vg_dof_base(const unsigned int s, const unsigned int vg) const
Definition: dof_object.h:914
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
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. This function is deprecated, instead call norm().

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

Returns the magnitude of the vector squared, i.e. the sum of the element magnitudes squared. This function is deprecated, instead call norm_sq().

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

Definition at line 145 of file type_vector.h.

References libMesh::TypeVector< T >::operator()().

145 { 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.

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 486 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::Parallel::Packing< Elem * >::unpack(), and libMesh::DofObject::unpack_indexing().

487 {
488  _idx_buf.clear();
489 
490 #ifdef LIBMESH_ENABLE_AMR
491  this->clear_old_dof_object();
492  const bool has_old_dof_object = cast_int<bool>(*begin++);
493 #endif
494 
495  const largest_id_type size = *begin++;
496  _idx_buf.reserve(size);
497  std::copy(begin, begin+size, back_inserter(_idx_buf));
498 
499  // Check as best we can for internal consistency now
500  libmesh_assert(_idx_buf.empty() ||
501  (_idx_buf[0] <= _idx_buf.size()));
502 #ifdef DEBUG
503  if (!_idx_buf.empty())
504  for (unsigned int i=1; i < _idx_buf[0]; ++i)
505  {
506  libmesh_assert_greater_equal (_idx_buf[i], _idx_buf[i-1]);
507  libmesh_assert_equal_to ((_idx_buf[i] - _idx_buf[i-1])%2, 0);
508  libmesh_assert_less_equal (_idx_buf[i], _idx_buf.size());
509  }
510 #endif
511 
512 #ifdef LIBMESH_ENABLE_AMR
513  if (has_old_dof_object)
514  {
515  this->old_dof_object = new DofObject();
516  this->old_dof_object->unpack_indexing(begin+size);
517  }
518 #endif
519 }
uint64_t largest_id_type
Definition: id_types.h:138
libmesh_assert(j)
void clear_old_dof_object()
Definition: dof_object.C:134
DofObject * old_dof_object
Definition: dof_object.h:89
void unpack_indexing(std::vector< largest_id_type >::const_iterator begin)
Definition: dof_object.C:486
index_buffer_t _idx_buf
Definition: dof_object.h:477
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 465 of file dof_object.C.

Referenced by libMesh::Parallel::Packing< const Elem * >::packed_size(), libMesh::Parallel::Packing< const Node * >::packed_size(), and libMesh::Parallel::Packing< Node * >::unpack().

466 {
467 #ifdef LIBMESH_ENABLE_AMR
468  const bool has_old_dof_object = cast_int<bool>(*begin++);
469 
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 largest_id_type this_indexing_size = *begin++;
477 
478  return cast_int<unsigned int>
479  (dof_header_size + this_indexing_size +
480  (has_old_dof_object ?
481  unpackable_indexing_size(begin+this_indexing_size) : 0));
482 }
static unsigned int unpackable_indexing_size(std::vector< largest_id_type >::const_iterator begin)
Definition: dof_object.C:465
uint64_t largest_id_type
Definition: id_types.h:138
unsigned int libMesh::Node::valence ( ) const
inline
Returns
the number of nodes connected with this node. Currently, this value is invalid (zero) except for subdivision meshes.

Definition at line 156 of file node.h.

References _valence, libMesh::invalid_uint, and set_valence().

Referenced by libMesh::Tri3Subdivision::get_ordered_valence().

157  {
158 #ifdef LIBMESH_ENABLE_NODE_VALENCE
159  return _valence;
160 #else
161  libmesh_not_implemented();
162  return libMesh::invalid_uint;
163 #endif
164  }
const unsigned int invalid_uint
Definition: libmesh.h:184
valence_idx_t _valence
Definition: node.h:191
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 710 of file dof_object.h.

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

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

711 {
713 }
static const processor_id_type invalid_processor_id
Definition: dof_object.h:346
processor_id_type _processor_id
Definition: dof_object.h:423
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 914 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::DofObject::set_id(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::DofObject::set_vg_dof_base().

916 {
917  libmesh_assert_less (s, this->n_systems());
918  libmesh_assert_less (vg, this->n_var_groups(s));
919 
920  const unsigned int
921  start_idx_sys = this->start_idx(s);
922 
923  libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
924 
925  // #ifdef DEBUG
926  // std::cout << " [ ";
927  // for (std:size_t i=0; i<_idx_buf.size(); i++)
928  // std::cout << _idx_buf[i] << " ";
929  // std::cout << "]\n";
930  // #endif
931 
932  return _idx_buf[start_idx_sys + 2*vg + 1];
933 }
unsigned int n_var_groups(const unsigned int s) const
Definition: dof_object.h:727
unsigned int start_idx(const unsigned int s) const
Definition: dof_object.h:870
index_buffer_t _idx_buf
Definition: dof_object.h:477
unsigned int n_systems() const
Definition: dof_object.h:718
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 178 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 177 of file node.h.

Member Data Documentation

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

The coordinates of the TypeVector

Definition at line 386 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 134 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 134 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 128 of file reference_counter.h.

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

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 128 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 123 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 123 of file reference_counter.h.

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

valence_idx_t libMesh::Node::_valence
private

The number of nodes connected with this node. Currently, this value is invalid (zero) except for subdivision meshes.

Definition at line 191 of file node.h.

Referenced by Node(), set_valence(), and valence().

const dof_id_type libMesh::DofObject::invalid_id = static_cast<dof_id_type>(-1)
staticinherited

An invaild id to distinguish an uninitialized DofObject

Definition at line 335 of file dof_object.h.

Referenced by libMesh::DofMap::_dof_indices(), active(), libMesh::TopologyMap::add_node(), libMesh::MeshRefinement::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::Elem::bracketing_nodes(), libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), libMesh::FEGenericBase< OutputType >::compute_proj_constraints(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::dof_indices(), libMesh::DofObject::dof_number(), libMesh::TopologyMap::find(), libMesh::ReplicatedMesh::insert_node(), libMesh::DofObject::invalidate_dofs(), libMesh::DofObject::invalidate_id(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), Node(), libMesh::Elem::node_id(), libMesh::DofMap::old_dof_indices(), libMesh::Parallel::Packing< const Elem * >::pack(), libMesh::XdrIO::pack_element(), libMesh::Elem::point(), libMesh::XdrIO::polynomial_level_file_name(), libMesh::MeshBase::query_elem(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::ReplicatedMesh::reserve_elem(), libMesh::DistributedMesh::reserve_elem(), libMesh::DofMap::SCALAR_dof_indices(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_n_comp_group(), libMesh::DofObject::set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Parallel::Packing< Elem * >::unpack(), and libMesh::DofObject::valid_id().

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::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::MeshCommunication::allgather(), libMesh::MeshTools::bounding_box(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::Elem::Elem(), libMesh::MeshCommunication::find_global_indices(), libMesh::DistributedMesh::insert_elem(), libMesh::DofObject::invalidate_processor_id(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::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::SparsityPattern::Build::operator()(), libMesh::MeshBase::query_elem(), libMesh::CheckpointIO::read_connectivity(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::ReplicatedMesh::reserve_elem(), libMesh::DistributedMesh::reserve_elem(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_dofobject_data_by_xyz(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::MeshTools::total_weight(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::Parallel::Packing< Elem * >::unpack(), 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

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