libMesh::Node Class Reference
#include <node.h>

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 () | |
| Node & | operator= (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 Real & | operator() (const unsigned int i) const |
| Real & | operator() (const unsigned int i) |
| const Real & | slice (const unsigned int i) const |
| Real & | slice (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< Real > | operator- () 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< Real > | unit () 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_type & | set_id () |
| void | set_id (const dof_id_type dofid) |
| bool | valid_id () const |
| processor_id_type | processor_id () const |
| processor_id_type & | processor_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< Node > | build (const Node &n) |
| static AutoPtr< Node > | build (const Point &p, const dof_id_type id) |
| static AutoPtr< Node > | build (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 | |
| DofObject * | old_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.
- 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().
| libMesh::Node::Node | ( | const Node & | n | ) | [inline] |
| 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] |
Member Function Documentation
| bool libMesh::TypeVector< Real >::absolute_fuzzy_equals | ( | const TypeVector< Real > & | rhs, | |
| Real | tol = TOLERANCE | |||
| ) | const [inherited] |
- Returns:
trueiff two vectors occupy approximately the same physical location in space, to within an absolute tolerance oftol.
| bool libMesh::Node::active | ( | ) | const [inline] |
- Returns:
trueif the node is active. An active node is defined as one for whichid()is notNode::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 Point & | p, | |
| const dof_id_type | id | |||
| ) | [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.
| 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, componentcompfor systemsassociated with thisDofObject
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
idfor thisDofObject
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().
| 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] |
Sets the processor id to invalid_processor_id
Definition at line 517 of file dof_object.h.
References libMesh::DofObject::invalid_processor_id, and libMesh::DofObject::processor_id().
Referenced by libMesh::MeshTools::correct_node_proc_ids(), libMesh::DofObject::invalidate(), and libMesh::Partitioner::set_node_processor_ids().
00518 { 00519 this->processor_id (invalid_processor_id); 00520 }
| unsigned int libMesh::DofObject::n_comp | ( | const unsigned int | s, | |
| const unsigned int | var | |||
| ) | const [inline, inherited] |
- Returns:
- the number of components for variable
varof systemsassociated with thisDofObject. For example, theHIERARCHICshape functions may have multiple dof's associated with one node. Another example is theMONOMIALs, where only the elements hold the dof's, but for the different spatial directions, and orders, seeFE.
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
VariableGroupvgof systemsassociated with thisDofObject. For example, theHIERARCHICshape functions may have multiple dof's associated with one node. Another example is theMONOMIALs, where only the elements hold the dof's, but for the different spatial directions, and orders, seeFE.
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
sfor this object. Optionally only counts degrees of freedom for variable numbervar
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_systems | ( | ) | const [inline, inherited] |
- Returns:
- the number of systems associated with this
DofObject
Definition at line 625 of file dof_object.h.
References libMesh::DofObject::_idx_buf.
Referenced by libMesh::DofObject::add_system(), libMesh::DofObject::clear_dofs(), libMesh::DofMap::dof_indices(), libMesh::DofObject::dof_number(), libMesh::DofObject::DofObject(), libMesh::DofObject::end_idx(), get_info(), libMesh::Elem::get_info(), libMesh::DofObject::has_dofs(), libMesh::DofObject::invalidate_dofs(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_dofs(), libMesh::DofObject::n_var_groups(), libMesh::DofObject::n_vars(), libMesh::DofMap::old_dof_indices(), libMesh::DofObject::operator=(), libMesh::Elem::refine(), libMesh::EquationSystems::reinit(), libMesh::DofObject::set_dof_number(), libMesh::DofObject::set_n_comp(), libMesh::DofObject::set_n_comp_group(), libMesh::DofObject::set_n_systems(), libMesh::DofObject::set_n_vars_per_group(), libMesh::DofObject::set_vg_dof_base(), libMesh::DofObject::start_idx(), and libMesh::DofObject::vg_dof_base().
| unsigned int libMesh::DofObject::n_var_groups | ( | const unsigned int | s | ) | const [inline, inherited] |
- Returns:
- the number of
VariableGroupvariable groups associated with systemsfor thisDofObject
Definition at line 634 of file dof_object.h.
References libMesh::DofObject::end_idx(), libMesh::DofObject::n_systems(), and libMesh::DofObject::start_idx().
Referenced by libMesh::DofObject::add_system(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofObject::DofObject(), libMesh::DofObject::invalidate_dofs(), libMesh::DofObject::n_comp_group(), libMesh::DofObject::n_vars(), libMesh::DofObject::operator=(), 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::set_vg_dof_base(), libMesh::DofObject::var_to_vg(), and libMesh::DofObject::vg_dof_base().
| unsigned int libMesh::DofObject::n_vars | ( | const unsigned int | s | ) | const [inline, inherited] |
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] |
- Returns:
- the number of
Variablevariables associated withVariableGroupvgin systemsfor thisDofObject
Definition at line 644 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::add_neighbors_to_send_list(), libMesh::DofObject::add_system(), libMesh::DofObject::dof_number(), libMesh::DofObject::DofObject(), get_info(), libMesh::Elem::get_info(), libMesh::DofObject::has_dofs(), libMesh::DofObject::n_comp(), libMesh::DofObject::n_dofs(), libMesh::DofObject::n_vars(), libMesh::DofObject::operator=(), libMesh::DofObject::set_dof_number(), 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().
00646 { 00647 libmesh_assert_less (s, this->n_systems()); 00648 libmesh_assert_less (vg, this->n_var_groups(s)); 00649 00650 const unsigned int start_idx_sys = this->start_idx(s); 00651 00652 libmesh_assert_less ((start_idx_sys + 2*vg), _idx_buf.size()); 00653 00654 return (libmesh_cast_int<unsigned int> 00655 (_idx_buf[start_idx_sys + 2*vg]) / ncv_magic); 00656 }
| bool libMesh::TypeVector< Real >::operator!= | ( | const TypeVector< Real > & | rhs | ) | const [inherited] |
- Returns:
trueiff 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
element of the vector.
| const Real & libMesh::TypeVector< Real >::operator() | ( | const unsigned int | i | ) | const [inherited] |
Return the
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:
trueif 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:
trueif this vector is "less" than or equal to another. Useful for sorting. Also used for choosing some arbitrary constraint equation directions
| bool libMesh::Node::operator== | ( | const Node & | rhs | ) | const |
- Returns:
trueif 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:
trueif 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:
trueif 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:
trueiff two vectors occupy approximately the same physical location in space, to within a relative tolerance oftol.
| 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; }
| dof_id_type & libMesh::DofObject::set_id | ( | ) | [inline, inherited] |
- Returns:
- the
idfor thisDofObjectas a writeable reference.
Definition at line 578 of file dof_object.h.
References libMesh::DofObject::_id.
Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::SerialMesh::add_elem(), libMesh::ParallelMesh::add_elem(), libMesh::SerialMesh::add_node(), libMesh::ParallelMesh::add_node(), libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::UNVIO::element_in(), libMesh::MeshTools::Modification::flatten(), libMesh::DofObject::invalidate_id(), Node(), libMesh::VTKIO::read(), libMesh::Nemesis_IO::read(), libMesh::UCDIO::read_implementation(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::RemoteElem::RemoteElem(), libMesh::SerialMesh::renumber_elem(), libMesh::ParallelMesh::renumber_elem(), libMesh::SerialMesh::renumber_node(), libMesh::ParallelMesh::renumber_node(), libMesh::SerialMesh::renumber_nodes_and_elements(), libMesh::SerialMesh::stitch_meshes(), libMesh::Parallel::unpack(), libMesh::Node::PackedNode::unpack(), and libMesh::Elem::PackedElem::unpack().
00579 { 00580 return _id; 00581 }
| 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.
| const Real & libMesh::TypeVector< Real >::slice | ( | const unsigned int | i | ) | const [inline, inherited] |
Definition at line 123 of file type_vector.h.
| 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] |
- Returns:
trueif thisDofObjecthas a valididset,falseotherwise.
Definition at line 586 of file dof_object.h.
References libMesh::DofObject::_id, and libMesh::DofObject::invalid_id.
Referenced by libMesh::SerialMesh::add_elem(), libMesh::ParallelMesh::add_elem(), libMesh::SerialMesh::add_node(), libMesh::ParallelMesh::add_node(), get_info(), libMesh::Elem::get_info(), libMesh::DofObject::id(), and libMesh::Elem::libmesh_assert_valid_node_pointers().
00587 { 00588 return (DofObject::invalid_id != _id); 00589 }
| bool libMesh::DofObject::valid_processor_id | ( | ) | const [inline, inherited] |
- Returns:
trueif thisDofObjecthas a valididset,falseotherwise.
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 MeshRefinement [friend] |
friend class Node [friend, inherited] |
| 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.
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.
ReferenceCounter::Counts libMesh::ReferenceCounter::_counts [static, protected, inherited] |
Actually holds the data.
Definition at line 118 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info(), libMesh::ReferenceCounter::increment_constructor_count(), and libMesh::ReferenceCounter::increment_destructor_count().
ReferenceCounter::Counts libMesh::ReferenceCounter::_counts [static, protected, inherited] |
Actually holds the data.
Definition at line 118 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info(), libMesh::ReferenceCounter::increment_constructor_count(), and libMesh::ReferenceCounter::increment_destructor_count().
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().
Threads::spin_mutex libMesh::ReferenceCounter::_mutex [static, protected, inherited] |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 131 of file reference_counter.h.
Threads::spin_mutex libMesh::ReferenceCounter::_mutex [static, protected, inherited] |
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().
const dof_id_type libMesh::DofObject::invalid_id = static_cast<dof_id_type>(-1) [static, inherited] |
An invaild id to distinguish an uninitialized DofObject
Definition at line 310 of file dof_object.h.
Referenced by active(), libMesh::SerialMesh::add_point(), libMesh::MeshRefinement::add_point(), libMesh::UnstructuredMesh::all_second_order(), libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), libMesh::FEGenericBase< OutputType >::compute_proj_constraints(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::dof_indices(), libMesh::DofObject::dof_number(), libMesh::DofObject::invalidate_dofs(), libMesh::DofObject::invalidate_id(), libMesh::ParallelMesh::libmesh_assert_valid_parallel_object_ids(), Node(), libMesh::Elem::node(), libMesh::DofMap::old_dof_indices(), libMesh::Elem::point(), libMesh::System::read_legacy_data(), libMesh::System::read_parallel_data(), 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::unpack(), libMesh::Elem::PackedElem::unpack(), libMesh::DofObject::valid_id(), and libMesh::System::write_parallel_data().
const processor_id_type libMesh::DofObject::invalid_processor_id = static_cast<processor_id_type>(-1) [static, inherited] |
An invalid processor_id to distinguish DOFs that have not been assigned to a processor.
Definition at line 316 of file dof_object.h.
Referenced by libMesh::ParallelMesh::add_elem(), libMesh::ParallelMesh::add_node(), libMesh::MeshTools::bounding_box(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::Elem::Elem(), libMesh::MeshCommunication::find_global_indices(), libMesh::DofObject::invalidate_processor_id(), libMesh::ParallelMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::ParallelMesh::n_active_elem(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::n_unpartitioned_nodes(), libMesh::Elem::PackedElem::processor_id(), libMesh::ParallelMesh::renumber_dof_objects(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_dofobject_data_by_xyz(), libMesh::MeshTools::total_weight(), libMesh::Parallel::unpack(), libMesh::Node::PackedNode::unpack(), libMesh::SerialMesh::unpartitioned_elements_begin(), libMesh::ParallelMesh::unpartitioned_elements_begin(), libMesh::SerialMesh::unpartitioned_elements_end(), libMesh::ParallelMesh::unpartitioned_elements_end(), and libMesh::DofObject::valid_processor_id().
DofObject* libMesh::DofObject::old_dof_object [inherited] |
This object on the last mesh. Useful for projecting solutions from one mesh to another.
Definition at line 89 of file dof_object.h.
Referenced by libMesh::DofObject::clear_old_dof_object(), libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::DofMap::old_dof_indices(), libMesh::DofObject::operator=(), libMesh::DofObject::pack_indexing(), libMesh::DofObject::packed_indexing_size(), libMesh::DofMap::reinit(), libMesh::DofObject::set_old_dof_object(), and libMesh::DofObject::unpack_indexing().
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: