libMesh::Node Class Reference

#include <node.h>

Inheritance diagram for libMesh::Node:

List of all members.

Classes

struct  PackedNode

Public Member Functions

 Node (const Real x=0, const Real y=0, const Real z=0, const dof_id_type id=invalid_id)
 Node (const Node &n)
 Node (const Point &p, const dof_id_type id=invalid_id)
 ~Node ()
Nodeoperator= (const Point &p)
bool active () const
bool operator== (const Node &rhs) const
void print_info (std::ostream &os=libMesh::out) const
std::string get_info () const
unsigned int packed_size () const
void assign (const TypeVector< T2 > &)
const Realoperator() (const unsigned int i) const
Realoperator() (const unsigned int i)
const Realslice (const unsigned int i) const
Realslice (const unsigned int i)
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
operator+ (const TypeVector< T2 > &) const
const TypeVector< Real > & operator+= (const TypeVector< T2 > &)
void add (const TypeVector< T2 > &)
void add_scaled (const TypeVector< T2 > &, const Real)
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
operator- (const TypeVector< T2 > &) const
TypeVector< Realoperator- () const
const TypeVector< Real > & operator-= (const TypeVector< T2 > &)
void subtract (const TypeVector< T2 > &)
void subtract_scaled (const TypeVector< T2 > &, const Real)
boostcopy::enable_if_c
< ScalarTraits< Scalar >
::value, TypeVector< typename
CompareTypes< Real, Scalar >
::supertype > >::type 
operator* (const Scalar) const
CompareTypes< Real, T2 >::supertype operator* (const TypeVector< T2 > &) const
const TypeVector< Real > & operator*= (const Real)
boostcopy::enable_if_c
< ScalarTraits< Scalar >
::value, TypeVector< typename
CompareTypes< Real, Scalar >
::supertype > >::type 
operator/ (const Scalar) const
const TypeVector< Real > & operator/= (const Real)
CompareTypes< Real, T2 >::supertype contract (const TypeVector< T2 > &) const
TypeVector< typename
CompareTypes< Real, T2 >
::supertype > 
cross (const TypeVector< T2 > &) const
TypeVector< Realunit () const
Real size () const
Real size_sq () const
void zero ()
bool relative_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
bool absolute_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
bool operator!= (const TypeVector< Real > &rhs) const
bool operator< (const TypeVector< Real > &rhs) const
bool operator<= (const TypeVector< Real > &rhs) const
bool operator> (const TypeVector< Real > &rhs) const
bool operator>= (const TypeVector< Real > &rhs) const
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)
bool valid_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< int >::const_iterator begin)
void pack_indexing (std::back_insert_iterator< std::vector< int > > target) const
void debug_buffer () const
void set_buffer (const std::vector< dof_id_type > &buf)

Static Public Member Functions

static AutoPtr< Nodebuild (const Node &n)
static AutoPtr< Nodebuild (const Point &p, const dof_id_type id)
static AutoPtr< Nodebuild (const Real x, const Real y, const Real z, const dof_id_type id)
static unsigned int unpackable_indexing_size (std::vector< int >::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 processor_id_type invalid_processor_id = static_cast<processor_id_type>(-1)

Protected Types

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

Protected Member Functions

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

Protected Attributes

Real _coords [LIBMESH_DIM]

Static Protected Attributes

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

Friends

class MeshRefinement
class Elem
class Node
std::ostream & operator<< (std::ostream &os, const TypeVector< Real > &t)

Detailed Description

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

Author:
Benjamin S. Kirk
Date:
2003

Definition at line 54 of file node.h.


Member Typedef Documentation

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts [protected, inherited]

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

Definition at line 113 of file reference_counter.h.

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts [protected, inherited]

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

Definition at line 113 of file reference_counter.h.


Constructor & Destructor Documentation

libMesh::Node::Node ( const Real  x = 0,
const Real  y = 0,
const Real  z = 0,
const dof_id_type  id = invalid_id 
) [inline, explicit]

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

Definition at line 248 of file node.h.

References libMesh::DofObject::set_id().

Referenced by build(), and libMesh::Node::PackedNode::build_node().

00251                                      :
00252   Point(x,y,z)
00253 {
00254   this->set_id() = dofid;
00255 }

libMesh::Node::Node ( const Node n  )  [inline]

Copy-constructor.

Definition at line 260 of file node.h.

00260                          :
00261   Point(n),
00262   DofObject(n),
00263   ReferenceCountedObject<Node>()
00264 {
00265 }

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

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

Definition at line 270 of file node.h.

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

00271                                      :
00272   Point(p)
00273 {
00274   // optionally assign the id.  We have
00275   // to do it like this otherwise
00276   // Node n = Point p would erase
00277   // the id!
00278   if (dofid != invalid_id)
00279     this->set_id() = dofid;
00280 }

libMesh::Node::~Node (  )  [inline]

Destructor.

Definition at line 285 of file node.h.

00286 {
00287 }


Member Function Documentation

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

Definition at line 340 of file node.h.

References libMesh::DofObject::invalid_id.

00341 {
00342   return (this->id() != Node::invalid_id);
00343 }

void libMesh::TypeVector< Real >::add ( const TypeVector< T2 > &   )  [inline, inherited]

Add to this vector without creating a temporary.

void libMesh::TypeVector< Real >::add_scaled ( const TypeVector< T2 > &  ,
const  T 
) [inline, 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 182 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().

00183 {
00184   // quick return?
00185   if (this->n_systems() == 0)
00186     {
00187       this->set_n_systems(1);
00188       return;
00189     }
00190 
00191   DofObject::index_buffer_t::iterator it = _idx_buf.begin();
00192 
00193   std::advance(it, this->n_systems());
00194 
00195   // this inserts the current vector size at the position for the new system - creating the
00196   // entry we need for the new system indicating there are 0 variables.
00197   _idx_buf.insert(it, _idx_buf.size());
00198 
00199   // cache this value before we screw it up!
00200   const unsigned int ns_orig = this->n_systems();
00201 
00202   // incriment the number of systems and the offsets for each of
00203   // the systems including the new one we just added.
00204   for (unsigned int i=0; i<ns_orig+1; i++)
00205     _idx_buf[i]++;
00206 
00207   libmesh_assert_equal_to (this->n_systems(), (ns_orig+1));
00208   libmesh_assert_equal_to (this->n_vars(ns_orig), 0);
00209   libmesh_assert_equal_to (this->n_var_groups(ns_orig), 0);
00210 }

void libMesh::TypeVector< Real >::assign ( const TypeVector< T2 > &   )  [inline, inherited]

Assign to a vector without creating a temporary.

AutoPtr< Node > libMesh::Node::build ( const Real  x,
const Real  y,
const Real  z,
const dof_id_type  id 
) [inline, static]

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

Definition at line 328 of file node.h.

References Node().

00332 {
00333   AutoPtr<Node> ap(new Node(x,y,z,id));
00334   return ap;
00335 }

AutoPtr< Node > libMesh::Node::build ( const Point p,
const dof_id_type  id 
) [inline, static]

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

Definition at line 317 of file node.h.

References Node().

00319 {
00320 
00321   AutoPtr<Node> ap(new Node(p,id));
00322   return ap;
00323 }

AutoPtr< Node > libMesh::Node::build ( const Node n  )  [inline, static]

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

Definition at line 308 of file node.h.

References Node().

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

00309 {
00310   AutoPtr<Node> ap(new Node(n));
00311   return ap;
00312 }

void libMesh::DofObject::clear_dofs (  )  [inline, inherited]

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

Definition at line 535 of file dof_object.h.

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

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

00536 {
00537   // vector swap trick to force deallocation
00538   index_buffer_t().swap(_idx_buf);
00539 
00540   libmesh_assert_equal_to (this->n_systems(), 0);
00541   libmesh_assert (_idx_buf.empty());
00542 }

void libMesh::DofObject::clear_old_dof_object (  )  [inherited]

Sets the old_dof_object to NULL

Definition at line 124 of file dof_object.C.

References libMesh::DofObject::old_dof_object.

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

00125 {
00126   // If we have been called before...
00127   // prevent a memory leak
00128   if (old_dof_object != NULL)
00129     {
00130       delete this->old_dof_object;
00131       this->old_dof_object = NULL;
00132     }
00133 }

CompareTypes<Real , T2>::supertype libMesh::TypeVector< Real >::contract ( const TypeVector< T2 > &   )  const [inline, 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 [inline, inherited]

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

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

Print our buffer for debugging.

Definition at line 534 of file dof_object.C.

References libMesh::DofObject::_idx_buf.

00535 {
00536   std::cout << " [ ";
00537   for (unsigned int i=0; i<_idx_buf.size(); i++)
00538     std::cout << _idx_buf[i] << " ";
00539   std::cout << "]\n";
00540 }

void libMesh::ReferenceCounter::disable_print_counter_info (  )  [static, inherited]

Definition at line 106 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

00107 {
00108   _enable_print_counter = false;
00109   return;
00110 }

void libMesh::ReferenceCounter::disable_print_counter_info (  )  [static, inherited]

Definition at line 106 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

00107 {
00108   _enable_print_counter = false;
00109   return;
00110 }

dof_id_type libMesh::DofObject::dof_number ( const unsigned int  s,
const unsigned int  var,
const unsigned int  comp 
) const [inline, inherited]
Returns:
the global degree of freedom number for variable var, component comp for system s associated with this DofObject

Definition at line 709 of file dof_object.h.

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

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

00712 {
00713   libmesh_assert_less (s,    this->n_systems());
00714   libmesh_assert_less (var,  this->n_vars(s));
00715   libmesh_assert_less (comp, this->n_comp(s,var));
00716 
00717   const unsigned int
00718     vg            = this->var_to_vg(s,var),
00719     start_idx_sys = this->start_idx(s);
00720 
00721   libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
00722 
00723   const dof_id_type
00724     base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
00725 
00726   // if the first component is invalid, they
00727   // are all invalid
00728   if (base_idx == invalid_id)
00729     return invalid_id;
00730 
00731   // otherwise the index is the first component
00732   // index augemented by the component number
00733   else
00734     {
00735       const unsigned int
00736         ncg = this->n_comp_group(s,vg),
00737         vig = this->system_var_to_vg_var(s,vg,var);
00738 
00739       // std::cout << "base_idx, var, vg, vig, ncg, comp="
00740       //                << base_idx << " "
00741       //                << var << " "
00742       //                << vg << " "
00743       //                << vig << " "
00744       //                << ncg << " "
00745       //                << comp << '\n';
00746 
00747       return libmesh_cast_int<dof_id_type>(base_idx + vig*ncg + comp);
00748     }
00749 }

void libMesh::ReferenceCounter::enable_print_counter_info (  )  [static, inherited]

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.

00101 {
00102   _enable_print_counter = true;
00103   return;
00104 }

void libMesh::ReferenceCounter::enable_print_counter_info (  )  [static, inherited]

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.

00101 {
00102   _enable_print_counter = true;
00103   return;
00104 }

std::string libMesh::ReferenceCounter::get_info (  )  [static, inherited]

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().

00048 {
00049 #if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
00050 
00051   std::ostringstream oss;
00052 
00053   oss << '\n'
00054       << " ---------------------------------------------------------------------------- \n"
00055       << "| Reference count information                                                |\n"
00056       << " ---------------------------------------------------------------------------- \n";
00057 
00058   for (Counts::iterator it = _counts.begin();
00059        it != _counts.end(); ++it)
00060     {
00061       const std::string name(it->first);
00062       const unsigned int creations    = it->second.first;
00063       const unsigned int destructions = it->second.second;
00064 
00065       oss << "| " << name << " reference count information:\n"
00066           << "|  Creations:    " << creations    << '\n'
00067           << "|  Destructions: " << destructions << '\n';
00068     }
00069 
00070   oss << " ---------------------------------------------------------------------------- \n";
00071 
00072   return oss.str();
00073 
00074 #else
00075 
00076   return "";
00077 
00078 #endif
00079 }

std::string libMesh::ReferenceCounter::get_info (  )  [static, inherited]

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().

00048 {
00049 #if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
00050 
00051   std::ostringstream oss;
00052 
00053   oss << '\n'
00054       << " ---------------------------------------------------------------------------- \n"
00055       << "| Reference count information                                                |\n"
00056       << " ---------------------------------------------------------------------------- \n";
00057 
00058   for (Counts::iterator it = _counts.begin();
00059        it != _counts.end(); ++it)
00060     {
00061       const std::string name(it->first);
00062       const unsigned int creations    = it->second.first;
00063       const unsigned int destructions = it->second.second;
00064 
00065       oss << "| " << name << " reference count information:\n"
00066           << "|  Creations:    " << creations    << '\n'
00067           << "|  Destructions: " << destructions << '\n';
00068     }
00069 
00070   oss << " ---------------------------------------------------------------------------- \n";
00071 
00072   return oss.str();
00073 
00074 #else
00075 
00076   return "";
00077 
00078 #endif
00079 }

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().

00054 {
00055   std::ostringstream oss;
00056 
00057   oss << "  Node id()=";
00058 
00059   if (this->valid_id())
00060     oss << this->id();
00061   else
00062     oss << "invalid";
00063 
00064   oss << ", processor_id()=" << this->processor_id() << 
00065          ", Point=" << *static_cast<const Point*>(this) << '\n';
00066 
00067   oss << "    DoFs=";
00068   for (unsigned int s=0; s != this->n_systems(); ++s)
00069     for (unsigned int v=0; v != this->n_vars(s); ++v)
00070       for (unsigned int c=0; c != this->n_comp(s,v); ++c)
00071         oss << '(' << s << '/' << v << '/' << this->dof_number(s,v,c) << ") ";
00072 
00073   return oss.str();
00074 }

bool libMesh::DofObject::has_dofs ( const unsigned int  s = libMesh::invalid_uint  )  const [inline, inherited]
Returns:
true if any system has variables which have been assigned, false otherwise

Definition at line 754 of file dof_object.h.

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

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

00755 {
00756   if (sys == libMesh::invalid_uint)
00757     {
00758       for (unsigned int s=0; s<this->n_systems(); s++)
00759         if (this->n_vars(s))
00760           return true;
00761     }
00762 
00763   else
00764     {
00765       libmesh_assert_less (sys, this->n_systems());
00766 
00767       if (this->n_vars(sys))
00768         return true;
00769     }
00770 
00771   return false;
00772 }

dof_id_type libMesh::DofObject::id (  )  const [inline, inherited]
Returns:
the id for this DofObject

Definition at line 569 of file dof_object.h.

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

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

00570 {
00571   libmesh_assert (this->valid_id());
00572   return _id;
00573 }

void libMesh::ReferenceCounter::increment_constructor_count ( const std::string &  name  )  [inline, protected, inherited]

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

Definition at line 163 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, and libMesh::Threads::spin_mtx.

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

00164 {
00165   Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
00166   std::pair<unsigned int, unsigned int>& p = _counts[name];
00167 
00168   p.first++;
00169 }

void libMesh::ReferenceCounter::increment_constructor_count ( const std::string &  name  )  [inline, protected, inherited]

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

Definition at line 163 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, and libMesh::Threads::spin_mtx.

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

00164 {
00165   Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
00166   std::pair<unsigned int, unsigned int>& p = _counts[name];
00167 
00168   p.first++;
00169 }

void libMesh::ReferenceCounter::increment_destructor_count ( const std::string &  name  )  [inline, protected, inherited]

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

Definition at line 176 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, and libMesh::Threads::spin_mtx.

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

00177 {
00178   Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
00179   std::pair<unsigned int, unsigned int>& p = _counts[name];
00180 
00181   p.second++;
00182 }

void libMesh::ReferenceCounter::increment_destructor_count ( const std::string &  name  )  [inline, protected, inherited]

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

Definition at line 176 of file reference_counter.h.

References libMesh::ReferenceCounter::_counts, and libMesh::Threads::spin_mtx.

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

00177 {
00178   Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
00179   std::pair<unsigned int, unsigned int>& p = _counts[name];
00180 
00181   p.second++;
00182 }

void libMesh::DofObject::invalidate (  )  [inline, inherited]

Invalidates all the indices for this DofObject

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

00526 {
00527   this->invalidate_dofs ();
00528   this->invalidate_id ();
00529   this->invalidate_processor_id ();
00530 }

void libMesh::DofObject::invalidate_dofs ( const unsigned int  sys_num = libMesh::invalid_uint  )  [inline, inherited]

Sets all degree of freedom numbers to invalid_id

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

00490 {
00491   // If the user does not specify the system number...
00492   if (sys_num >= this->n_systems())
00493     {
00494       for (unsigned int s=0; s<this->n_systems(); s++)
00495         for (unsigned int vg=0; vg<this->n_var_groups(s); vg++)
00496           if (this->n_comp_group(s,vg))
00497             this->set_vg_dof_base(s,vg,invalid_id);
00498     }
00499   // ...otherwise invalidate the dofs for all systems
00500   else
00501     for (unsigned int vg=0; vg<this->n_var_groups(sys_num); vg++)
00502       if (this->n_comp_group(sys_num,vg))
00503         this->set_vg_dof_base(sys_num,vg,invalid_id);
00504 }

void libMesh::DofObject::invalidate_id (  )  [inline, inherited]

Sets the id to invalid_id

Definition at line 509 of file dof_object.h.

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

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

00510 {
00511   this->set_id (invalid_id);
00512 }

void libMesh::DofObject::invalidate_processor_id (  )  [inline, inherited]
unsigned int libMesh::DofObject::n_comp ( const unsigned int  s,
const unsigned int  var 
) const [inline, inherited]
Returns:
the number of components for variable var of system s associated with this DofObject. For example, the HIERARCHIC shape functions may have multiple dof's associated with one node. Another example is the MONOMIALs, where only the elements hold the dof's, but for the different spatial directions, and orders, see FE.

Definition at line 679 of file dof_object.h.

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

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

00681 {
00682   libmesh_assert_less (s,   this->n_systems());
00683   libmesh_assert_less (var, this->n_vars(s));
00684 
00685   return this->n_comp_group(s,this->var_to_vg(s,var));
00686 }

unsigned int libMesh::DofObject::n_comp_group ( const unsigned int  s,
const unsigned int  vg 
) const [inline, inherited]
Returns:
the number of components for VariableGroup vg of system s associated with this DofObject. For example, the HIERARCHIC shape functions may have multiple dof's associated with one node. Another example is the MONOMIALs, where only the elements hold the dof's, but for the different spatial directions, and orders, see FE.

Definition at line 692 of file dof_object.h.

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

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

00694 {
00695   libmesh_assert_less (s,  this->n_systems());
00696   libmesh_assert_less (vg, this->n_var_groups(s));
00697 
00698   const unsigned int
00699     start_idx_sys = this->start_idx(s);
00700 
00701   libmesh_assert_less ((start_idx_sys + 2*vg), _idx_buf.size());
00702 
00703   return (_idx_buf[start_idx_sys + 2*vg] % ncv_magic);
00704 }

unsigned int libMesh::DofObject::n_dofs ( const unsigned int  s,
const unsigned int  var = libMesh::invalid_uint 
) const [inline, inherited]
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 547 of file dof_object.h.

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

00549 {
00550   libmesh_assert_less (s, this->n_systems());
00551 
00552   unsigned int num = 0;
00553 
00554   // Count all variables
00555   if (var == libMesh::invalid_uint)
00556     for (unsigned int v=0; v<this->n_vars(s); v++)
00557       num += this->n_comp(s,v);
00558 
00559   // Only count specified variable
00560   else
00561     num = this->n_comp(s,var);
00562 
00563   return num;
00564 }

static unsigned int libMesh::ReferenceCounter::n_objects (  )  [inline, static, inherited]

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

Definition at line 79 of file reference_counter.h.

References libMesh::ReferenceCounter::_n_objects.

00080   { return _n_objects; }

static unsigned int libMesh::ReferenceCounter::n_objects (  )  [inline, static, inherited]

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

Definition at line 79 of file reference_counter.h.

References libMesh::ReferenceCounter::_n_objects.

00080   { return _n_objects; }

unsigned int libMesh::DofObject::n_vars ( const unsigned int  s  )  const [inline, inherited]
Returns:
the number of Variable variables associated with system s for this DofObject

Definition at line 661 of file dof_object.h.

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

00662 {
00663   libmesh_assert_less (s, this->n_systems());
00664 
00665   const unsigned int nvg = this->n_var_groups(s);
00666     
00667   unsigned int val=0;
00668 
00669   for (unsigned int vg=0; vg<nvg; vg++)
00670     val += this->n_vars(s,vg);
00671 
00672   return val;
00673 }

unsigned int libMesh::DofObject::n_vars ( const unsigned int  s,
const unsigned int  vg 
) const [inline, inherited]
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.
Real & libMesh::TypeVector< Real >::operator() ( const unsigned int  i  )  [inherited]

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

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

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

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

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

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

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

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

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

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

Add two vectors.

const TypeVector<Real >& libMesh::TypeVector< Real >::operator+= ( const TypeVector< T2 > &   )  [inline, inherited]

Add to this vector.

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

Return the opposite of a vector

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

Subtract two vectors.

const TypeVector<Real >& libMesh::TypeVector< Real >::operator-= ( const TypeVector< T2 > &   )  [inline, 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 [inline, inherited]

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

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

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

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

Assign to a node from a point

Definition at line 292 of file node.h.

00293 {
00294   (*this)(0) = p(0);
00295 #if LIBMESH_DIM > 1
00296   (*this)(1) = p(1);
00297 #endif
00298 #if LIBMESH_DIM > 2
00299   (*this)(2) = p(2);
00300 #endif
00301 
00302   return *this;
00303 }

bool libMesh::Node::operator== ( const Node rhs  )  const
Returns:
true if this node equals rhs, false otherwise.

Reimplemented from libMesh::TypeVector< Real >.

Definition at line 37 of file node.C.

00038 {
00039   // Explicitly calling the operator== defined in Point
00040   return this->Point::operator==(rhs);
00041 }

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

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

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

00517 {
00518 #ifdef LIBMESH_ENABLE_AMR
00519   // We might need to pack old_dof_object too
00520   *target++ = (old_dof_object == NULL) ? 0 : 1;
00521 #endif
00522 
00523   *target++ = _idx_buf.size();
00524   std::copy(_idx_buf.begin(), _idx_buf.end(), target);
00525 
00526 #ifdef LIBMESH_ENABLE_AMR
00527   if (old_dof_object)
00528     old_dof_object->pack_indexing(target);
00529 #endif
00530 }

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

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

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

00442 {
00443   return 
00444 #ifdef LIBMESH_ENABLE_AMR
00445     ((old_dof_object == NULL) ? 0 : old_dof_object->packed_indexing_size()) + 2 +
00446 #else
00447     1 +
00448 #endif
00449     _idx_buf.size();
00450 }

unsigned int libMesh::Node::packed_size (  )  const [inline]

Definition at line 209 of file node.h.

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

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

00210 {
00211   // use "(a+b-1)/b" trick to get a/b to round up
00212   static const unsigned int ints_per_Real = 
00213     (sizeof(Real) + sizeof(int) - 1) / sizeof(int);
00214 
00215   return PackedNode::header_size + LIBMESH_DIM*ints_per_Real +
00216          this->packed_indexing_size();
00217 }

void libMesh::TypeVector< Real >::print ( std::ostream &  os = libMesh::out  )  const [inherited]

Formatted print, by default to libMesh::out.

void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out  )  [static, inherited]

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().

00089 {
00090   if( _enable_print_counter ) out_stream << ReferenceCounter::get_info();
00091 }

void libMesh::ReferenceCounter::print_info ( std::ostream &  out = libMesh::out  )  [static, inherited]

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().

00089 {
00090   if( _enable_print_counter ) out_stream << ReferenceCounter::get_info();
00091 }

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<<().

00046 {
00047   os << this->get_info()
00048      << std::endl;
00049 }

void libMesh::DofObject::processor_id ( const processor_id_type  pid  )  [inline, inherited]

Sets the processor_id for this DofObject.

Definition at line 609 of file dof_object.h.

References libMesh::DofObject::processor_id().

00610 {
00611   this->processor_id() = pid;
00612 }

processor_id_type & libMesh::DofObject::processor_id (  )  [inline, inherited]
Returns:
the processor that this element belongs to as a writeable reference.

Definition at line 601 of file dof_object.h.

References libMesh::DofObject::_processor_id.

00602 {
00603   return _processor_id;
00604 }

processor_id_type libMesh::DofObject::processor_id (  )  const [inline, inherited]
Returns:
the processor that this element belongs to.

Definition at line 593 of file dof_object.h.

References libMesh::DofObject::_processor_id.

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

00594 {
00595   return _processor_id;
00596 }

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  )  [inline, inherited]

Definition at line 452 of file dof_object.h.

References libMesh::DofObject::_idx_buf.

00453   { _idx_buf = buf; }

void libMesh::DofObject::set_dof_number ( const unsigned int  s,
const unsigned int  var,
const unsigned int  comp,
const dof_id_type  dn 
) [inherited]

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

Definition at line 400 of file dof_object.C.

References libMesh::DofObject::_idx_buf, libMesh::DofObject::dof_number(), 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().

00404 {
00405   libmesh_assert_less (s,    this->n_systems());
00406   libmesh_assert_less (var,  this->n_vars(s));
00407   libmesh_assert_less (comp, this->n_comp(s,var));
00408 
00409   const unsigned int
00410     vg            = this->var_to_vg(s,var),
00411     ncg           = this->n_comp_group(s,vg),
00412     vig           = this->system_var_to_vg_var(s,vg,var),
00413     start_idx_sys = this->start_idx(s);
00414 
00415   libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
00416 
00417   dof_id_type &base_idx = _idx_buf[start_idx_sys + 2*vg + 1];
00418 
00419   // We intend to change all dof numbers together or not at all
00420   if (comp || vig)
00421     libmesh_assert ((dn == invalid_id && base_idx == invalid_id) ||
00422                     (dn == base_idx + vig*ncg + comp));
00423   
00424   // only explicitly store the base index for vig==0, comp==0
00425   else
00426     base_idx = dn;
00427 
00428 // #ifdef DEBUG
00429 //   std::cout << " [ ";
00430 //   for (unsigned int i=0; i<_idx_buf.size(); i++)
00431 //     std::cout << _idx_buf[i] << " ";
00432 //   std::cout << "]\n";
00433 // #endif
00434 
00435   libmesh_assert_equal_to (this->dof_number(s, var, comp), dn);
00436 }

void libMesh::DofObject::set_id ( const dof_id_type  dofid  )  [inline, inherited]

Sets the id for this DofObject

Definition at line 151 of file dof_object.h.

References libMesh::DofObject::set_id().

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

00152   { this->set_id() = dofid; }

void libMesh::DofObject::set_n_comp ( const unsigned int  s,
const unsigned int  var,
const unsigned int  ncomp 
) [inherited]

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

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

00336 {
00337   libmesh_assert_less (s,   this->n_systems());
00338   libmesh_assert_less (var, this->n_vars(s));
00339 
00340   this->set_n_comp_group(s, this->var_to_vg(s,var), ncomp);
00341 }

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

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

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

00348 {
00349   libmesh_assert_less (s,  this->n_systems());
00350   libmesh_assert_less (vg, this->n_var_groups(s));
00351   
00352   // Check for trivial return
00353   if (ncomp == this->n_comp_group(s,vg)) return;
00354 
00355 #ifndef NDEBUG
00356   if (ncomp >= ncv_magic)
00357     {
00358       const index_t ncvm = ncv_magic;
00359       libMesh::err << "ERROR: ncomp must be less than DofObject::ncv_magic!\n"
00360                    << "ncomp = " << ncomp << ", ncv_magic = " << ncvm
00361                    << "\nrecompile and try again!\n";
00362       libmesh_error();
00363     }
00364 #endif
00365   
00366   const unsigned int
00367     start_idx_sys = this->start_idx(s),
00368     n_vars_group  = this->n_vars(s,vg),
00369     base_offset   = start_idx_sys + 2*vg;
00370 
00371   libmesh_assert_less ((base_offset + 1), _idx_buf.size());
00372 
00373   // if (ncomp)
00374   //   std::cout << "s,vg,ncomp=" 
00375   //          << s  << ","
00376   //          << vg << ","
00377   //          << ncomp << '\n';
00378 
00379   // set the number of components, maintaining the number
00380   // of variables in the group
00381   _idx_buf[base_offset] = ncv_magic*n_vars_group + ncomp;
00382 
00383   // We use (invalid_id - 1) to signify no
00384   // components for this object
00385   _idx_buf[base_offset + 1] = (ncomp == 0) ? invalid_id - 1 : invalid_id;
00386   
00387   // this->debug_buffer();
00388   // std::cout << "s,vg = " << s << "," << vg << '\n'
00389   //        << "base_offset=" << base_offset << '\n'
00390   //        << "this->n_comp(s,vg)=" << this->n_comp(s,vg) << '\n'
00391   //        << "this->n_comp_group(s,vg)=" << this->n_comp_group(s,vg) << '\n'
00392   //        << "this->n_vars(s,vg)=" << this->n_vars(s,vg) << '\n'
00393   //        << "this->n_var_groups(s)=" << this->n_var_groups(s) << '\n';
00394 
00395   libmesh_assert_equal_to (ncomp, this->n_comp_group(s,vg));
00396 }

void libMesh::DofObject::set_n_systems ( const unsigned int  s  )  [inherited]

Sets the number of systems for this DofObject

Definition at line 152 of file dof_object.C.

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

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

00153 {
00154   // Check for trivial return
00155   if (ns == this->n_systems())
00156     return;
00157 
00158   // Clear any existing data.  This is safe to call
00159   // even if we don't have any data.
00160   this->clear_dofs();
00161 
00162   // Set the new number of systems
00163   _idx_buf.resize(ns, ns);
00164   _idx_buf[0] = ns;
00165 
00166 
00167 #ifdef DEBUG
00168 
00169   // check that all systems now exist and that they have 0 size
00170   libmesh_assert_equal_to (ns, this->n_systems());
00171   for (unsigned int s=0; s<this->n_systems(); s++)
00172     {
00173       libmesh_assert_equal_to (this->n_vars(s),       0);
00174       libmesh_assert_equal_to (this->n_var_groups(s), 0);
00175     }
00176   
00177 #endif
00178 }

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 214 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().

00216 {
00217   
00218   libmesh_assert_less (s, this->n_systems());
00219 
00220   // number of varaible groups for this system - inferred
00221   const unsigned int nvg = libmesh_cast_int<unsigned int>(nvpg.size());
00222   
00223   // BSK - note that for compatibility with the previous implementation
00224   // calling this method when (nvars == this->n_vars()) requires that
00225   // we invalidate the DOF indices and set the number of components to 0.
00226   // Note this was a bit of a suprise to me - there was no quick return in
00227   // the old method, which caused removal and readdition of the DOF indices
00228   // even in the case of (nvars == this->n_vars()), resulting in n_comp(s,v)
00229   // implicitly becoming 0 regardless of any previous value.
00230   // quick return?
00231   if (nvg == this->n_var_groups(s))
00232     {
00233       for (unsigned int vg=0; vg<nvg; vg++)
00234         {
00235           this->set_n_comp_group(s,vg,0);
00236           libmesh_assert_equal_to (this->n_vars(s,vg), nvpg[vg]);
00237         }
00238       return;
00239     }
00240 
00241   // since there is ample opportunity to screw up other systems, let us
00242   // cache their current sizes and later assert that they are unchanged.
00243 #ifdef DEBUG
00244   DofObject::index_buffer_t old_system_sizes;
00245   old_system_sizes.reserve(this->n_systems());
00246 
00247   for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
00248     old_system_sizes.push_back(this->n_var_groups(s_ctr));
00249 #endif
00250 
00251   // remove current indices if we have some
00252   if (this->n_var_groups(s) != 0)
00253     {
00254       const unsigned int old_nvg_s = this->n_var_groups(s);
00255 
00256       DofObject::index_buffer_t::iterator
00257         it  = _idx_buf.begin(),
00258         end = _idx_buf.begin();
00259 
00260       std::advance(it,  this->start_idx(s));
00261       std::advance(end, this->end_idx(s));
00262       _idx_buf.erase(it,end);
00263 
00264       for (unsigned int ctr=(s+1); ctr<this->n_systems(); ctr++)
00265         _idx_buf[ctr] -= 2*old_nvg_s;
00266     }
00267 
00268   // better not have any now!
00269   libmesh_assert_equal_to (this->n_var_groups(s), 0);
00270 
00271   // had better not screwed up any of our sizes!
00272 #ifdef DEBUG
00273   for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
00274     if (s_ctr != s)
00275       libmesh_assert_equal_to (this->n_var_groups(s_ctr), old_system_sizes[s_ctr]);
00276 #endif
00277 
00278   // OK, if the user requested 0 that is what we have
00279   if (nvg == 0)
00280     return;
00281 
00282   {
00283     // array to hold new indices
00284     DofObject::index_buffer_t var_idxs(2*nvg);
00285     for (unsigned int vg=0; vg<nvg; vg++)
00286       { 
00287         var_idxs[2*vg    ] = ncv_magic*nvpg[vg] + 0;
00288         var_idxs[2*vg + 1] = invalid_id - 1;
00289       }
00290 
00291     DofObject::index_buffer_t::iterator it = _idx_buf.begin();
00292     std::advance(it, this->end_idx(s));
00293     _idx_buf.insert(it, var_idxs.begin(), var_idxs.end());
00294 
00295     for (unsigned int ctr=(s+1); ctr<this->n_systems(); ctr++)
00296       _idx_buf[ctr] += 2*nvg;
00297 
00298     // resize _idx_buf to fit so no memory is wasted.
00299     DofObject::index_buffer_t(_idx_buf).swap(_idx_buf);
00300   }
00301 
00302   // that better had worked.  Assert stuff.
00303   libmesh_assert_equal_to (nvg, this->n_var_groups(s));
00304   
00305 #ifdef DEBUG
00306 
00307   // std::cout << " [ ";
00308   // for (unsigned int i=0; i<_idx_buf.size(); i++)
00309   //   std::cout << _idx_buf[i] << " ";
00310   // std::cout << "]\n";
00311 
00312   libmesh_assert_equal_to (this->n_var_groups(s), nvpg.size());
00313 
00314   for (unsigned int vg=0; vg<this->n_var_groups(s); vg++)
00315     {
00316       libmesh_assert_equal_to (this->n_vars(s,vg), nvpg[vg]);
00317       libmesh_assert_equal_to (this->n_comp_group(s,vg), 0);
00318     }
00319 
00320   for (unsigned int v=0; v<this->n_vars(s); v++)
00321     libmesh_assert_equal_to (this->n_comp(s,v), 0);
00322   
00323   // again, all other system sizes shoudl be unchanged!
00324   for (unsigned int s_ctr=0; s_ctr<this->n_systems(); s_ctr++)
00325     if (s_ctr != s)
00326       libmesh_assert_equal_to (this->n_var_groups(s_ctr), old_system_sizes[s_ctr]);
00327 
00328 #endif
00329 }

void libMesh::DofObject::set_old_dof_object (  )  [inherited]

Sets the old_dof_object to a copy of this

Definition at line 137 of file dof_object.C.

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

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

00138 {
00139   this->clear_old_dof_object();
00140 
00141   libmesh_assert (!this->old_dof_object);
00142 
00143   // Make a new DofObject, assign a copy of \p this.
00144   // Make sure the copy ctor for DofObject works!!
00145   this->old_dof_object = new DofObject(*this);
00146 }

void libMesh::DofObject::set_vg_dof_base ( const unsigned int  s,
const unsigned int  vg,
const dof_id_type  db 
) [inline, inherited]

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 801 of file dof_object.h.

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

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

00804 {
00805   libmesh_assert_less (s,  this->n_systems());
00806   libmesh_assert_less (vg, this->n_var_groups(s));
00807 
00808   const unsigned int
00809     start_idx_sys = this->start_idx(s);
00810 
00811   libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
00812 
00813   _idx_buf[start_idx_sys + 2*vg + 1] = db;
00814 
00815   libmesh_assert_equal_to (this->vg_dof_base(s,vg), db);
00816 }

Real libMesh::TypeVector< Real >::size (  )  const [inherited]

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

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

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

Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i  )  [inline, inherited]

Definition at line 130 of file type_vector.h.

00130 { return (*this)(i); }

const Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i  )  const [inline, inherited]

Definition at line 123 of file type_vector.h.

00123 { return (*this)(i); }

void libMesh::TypeVector< Real >::subtract ( const TypeVector< T2 > &   )  [inline, inherited]

Subtract from this vector without creating a temporary.

void libMesh::TypeVector< Real >::subtract_scaled ( const TypeVector< T2 > &  ,
const  T 
) [inline, 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< int >::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 477 of file dof_object.C.

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

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

00478 {
00479   _idx_buf.clear();
00480 
00481 #ifdef LIBMESH_ENABLE_AMR
00482   this->clear_old_dof_object();
00483   const int has_old_dof_object = *begin++;
00484   libmesh_assert(has_old_dof_object == 1 ||
00485                  has_old_dof_object == 0);
00486 #endif
00487 
00488   const int size = *begin++;
00489   _idx_buf.reserve(size);
00490   std::copy(begin, begin+size, back_inserter(_idx_buf));
00491 
00492   // Check as best we can for internal consistency now
00493   libmesh_assert(_idx_buf.empty() ||
00494                  (_idx_buf[0] <= _idx_buf.size()));
00495 #ifdef DEBUG
00496   if (!_idx_buf.empty())
00497     for (unsigned int i=1; i < _idx_buf[0]; ++i)
00498       {
00499         libmesh_assert_greater_equal (_idx_buf[i], _idx_buf[i-1]);
00500         libmesh_assert_equal_to ((_idx_buf[i] - _idx_buf[i-1])%2, 0);
00501         libmesh_assert_less_equal (_idx_buf[i], _idx_buf.size());
00502       }
00503 #endif
00504 
00505 #ifdef LIBMESH_ENABLE_AMR
00506   if (has_old_dof_object)
00507     {
00508       this->old_dof_object = new DofObject();
00509       this->old_dof_object->unpack_indexing(begin+size);
00510     }
00511 #endif
00512 }

unsigned int libMesh::DofObject::unpackable_indexing_size ( std::vector< int >::const_iterator  begin  )  [static, inherited]

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

Definition at line 455 of file dof_object.C.

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

00456 {
00457 #ifdef LIBMESH_ENABLE_AMR
00458   const int has_old_dof_object = *begin++;
00459 
00460   // Either we have an old_dof_object or we don't
00461   libmesh_assert(has_old_dof_object == 1 || has_old_dof_object == 0);
00462   static const int dof_header_size = 2;
00463 #else
00464   static const bool has_old_dof_object = false;
00465   static const int dof_header_size = 1;
00466 #endif
00467 
00468   const int this_indexing_size = *begin++;
00469 
00470   return dof_header_size + this_indexing_size +
00471     (has_old_dof_object ?
00472       unpackable_indexing_size(begin+this_indexing_size) : 0);
00473 }

bool libMesh::DofObject::valid_id (  )  const [inline, inherited]
bool libMesh::DofObject::valid_processor_id (  )  const [inline, inherited]
Returns:
true if this DofObject has a valid id set, false otherwise.

Definition at line 617 of file dof_object.h.

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

00618 {
00619   return (DofObject::invalid_processor_id != _processor_id);
00620 }

dof_id_type libMesh::DofObject::vg_dof_base ( const unsigned int  s,
const unsigned int  vg 
) const [inline, inherited]

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 821 of file dof_object.h.

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

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

00823 {
00824   libmesh_assert_less (s,  this->n_systems());
00825   libmesh_assert_less (vg, this->n_var_groups(s));
00826 
00827   const unsigned int
00828     start_idx_sys = this->start_idx(s);
00829 
00830   libmesh_assert_less ((start_idx_sys + 2*vg + 1), _idx_buf.size());
00831 
00832 // #ifdef DEBUG
00833 //   std::cout << " [ ";
00834 //   for (unsigned int i=0; i<_idx_buf.size(); i++)
00835 //     std::cout << _idx_buf[i] << " ";
00836 //   std::cout << "]\n";
00837 // #endif
00838 
00839   return _idx_buf[start_idx_sys + 2*vg + 1];
00840 }

void libMesh::TypeVector< Real >::write_unformatted ( std::ostream &  out,
const bool  newline = true 
) const [inherited]

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

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

Zero the vector in any dimension.


Friends And Related Function Documentation

friend class Elem [friend]

Definition at line 228 of file node.h.

friend class MeshRefinement [friend]

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

Definition at line 227 of file node.h.

friend class Node [friend, inherited]
Returns:
a key associated with this point. Useful for sorting. Make the derived class a friend

Definition at line 81 of file point.h.

std::ostream& operator<< ( std::ostream &  os,
const TypeVector< Real > &  t 
) [friend, inherited]

Formatted print as above but allows you to do Point p(1,2,3); std::cout << p << std::endl;

Definition at line 329 of file type_vector.h.

00330   {
00331     t.print(os);
00332     return os;
00333   }


Member Data Documentation

Real libMesh::TypeVector< Real >::_coords[LIBMESH_DIM] [protected, inherited]

The coordinates of the TypeVector

Definition at line 347 of file type_vector.h.

bool libMesh::ReferenceCounter::_enable_print_counter = true [static, protected, inherited]

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

Definition at line 137 of file reference_counter.h.

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

bool libMesh::ReferenceCounter::_enable_print_counter = true [static, protected, inherited]

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

Definition at line 137 of file reference_counter.h.

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

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 131 of file reference_counter.h.

Mutual exclusion object to enable thread-safe reference counting.

Definition at line 131 of file reference_counter.h.

Threads::atomic< unsigned int > libMesh::ReferenceCounter::_n_objects [static, protected, inherited]

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

Definition at line 126 of file reference_counter.h.

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

Threads::atomic< unsigned int > libMesh::ReferenceCounter::_n_objects [static, protected, inherited]

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

Definition at line 126 of file reference_counter.h.

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


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

Site Created By: libMesh Developers
Last modified: February 05 2013 19:55:31 UTC

Hosted By:
SourceForge.net Logo