libMesh
|
The DofObject
defines an abstract base class for objects that have degrees of freedom associated with them.
More...
#include <dof_object.h>
Public Member Functions | |
~DofObject ()=default | |
Destructor. More... | |
DofObject * | get_old_dof_object () |
Pointer accessor for previously public old_dof_object. More... | |
const DofObject * | get_old_dof_object () const |
DofObject & | get_old_dof_object_ref () |
As above, but do not use in situations where the old_dof_object may be nullptr, since this function asserts that the old_dof_object is valid before returning a reference to it. More... | |
const DofObject & | get_old_dof_object_ref () const |
void | clear_old_dof_object () |
Sets the old_dof_object to nullptr. More... | |
void | set_old_dof_object () |
Sets the old_dof_object to a copy of this . More... | |
void | clear_dofs () |
Clear the DofMap data structures holding degree of freedom data. More... | |
void | invalidate_dofs (const unsigned int sys_num=libMesh::invalid_uint) |
Sets all degree of freedom numbers to invalid_id . More... | |
void | invalidate_id () |
Sets the id to invalid_id . More... | |
void | invalidate_processor_id () |
Sets the processor id to invalid_processor_id . More... | |
void | invalidate () |
Invalidates all the indices for this DofObject . More... | |
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 () |
unique_id_type | unique_id () const |
unique_id_type & | set_unique_id () |
void | set_unique_id (unique_id_type new_id) |
Sets the unique_id for this DofObject . More... | |
void | set_id (const dof_id_type dofid) |
Sets the id for this DofObject . More... | |
bool | valid_id () const |
bool | valid_unique_id () const |
processor_id_type | processor_id () const |
processor_id_type & | processor_id () |
void | processor_id (const processor_id_type pid) |
Sets the processor_id for this DofObject . More... | |
bool | valid_processor_id () const |
unsigned int | n_systems () const |
unsigned int | n_pseudo_systems () const |
void | set_n_systems (const unsigned int s) |
Sets the number of systems for this DofObject . More... | |
void | set_extra_integer (const unsigned int index, const dof_id_type value) |
Sets the value on this object of the extra integer associated with index , which should have been obtained via a call to MeshBase::add_elem_integer or MeshBase::add_node_integer . More... | |
dof_id_type | get_extra_integer (const unsigned int index) const |
Gets the value on this object of the extra integer associated with index , which should have been obtained via a call to MeshBase::add_elem_integer or MeshBase::add_node_integer . More... | |
template<typename T > | |
void | set_extra_datum (const unsigned int index, const T value) |
Sets the value on this object of the extra datum associated with index , which should have been obtained via a call to MeshBase::add_elem_datum or MeshBase::add_node_datum using the same type T. More... | |
template<typename T > | |
T | get_extra_datum (const unsigned int index) const |
Gets the value on this object of the extra datum associated with index , which should have been obtained via a call to MeshBase::add_elem_datum or MeshBase::add_node_datum using the same type T. More... | |
void | add_system () |
Adds an additional system to the DofObject . More... | |
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) |
Sets number of variables in each group associated with system s for this DofObject . More... | |
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) |
Sets the number of components for Variable var of system s associated with this DofObject . More... | |
void | set_n_comp_group (const unsigned int s, const unsigned int vg, const unsigned int ncomp) |
Sets the number of components for VariableGroup vg of system s associated with this DofObject . More... | |
dof_id_type | dof_number (const unsigned int s, const unsigned int var, const unsigned int comp) const |
dof_id_type | dof_number (const unsigned int s, const unsigned int vg, const unsigned int vig, const unsigned int comp, const unsigned int n_comp) const |
std::pair< unsigned int, unsigned int > | var_to_vg_and_offset (const unsigned int s, const unsigned int var) const |
void | set_dof_number (const unsigned int s, const unsigned int var, const unsigned int comp, const dof_id_type dn) |
Sets the global degree of freedom number for variable var , component comp for system s associated with this DofObject . More... | |
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) |
VariableGroup DoF indices are indexed as id = base + var_in_vg*ncomp + comp This method allows for direct access to the base. More... | |
dof_id_type | vg_dof_base (const unsigned int s, const unsigned int vg) const |
VariableGroup DoF indices are indexed as id = base + var_in_vg*ncomp + comp This method allows for direct access to the base. More... | |
void | add_extra_integers (const unsigned int n_integers) |
Assigns a set of extra integers to this DofObject . More... | |
void | add_extra_integers (const unsigned int n_integers, const std::vector< dof_id_type > &default_values) |
Assigns a set of extra integers to this DofObject . More... | |
unsigned int | n_extra_integers () const |
Returns how many extra integers are associated to the DofObject . More... | |
bool | has_extra_integers () const |
Returns whether extra integers are associated to the DofObject . More... | |
unsigned int | packed_indexing_size () const |
If we pack our indices into an buffer for communications, how many ints do we need? More... | |
void | unpack_indexing (std::vector< largest_id_type >::const_iterator begin) |
A method for creating our index buffer from packed data - basically with our current implementation we investigate the size term and then copy. More... | |
void | pack_indexing (std::back_insert_iterator< std::vector< largest_id_type >> target) const |
A method for creating packed data from our index buffer - basically a copy with prepended size with our current implementation. More... | |
void | debug_buffer () const |
Print our buffer for debugging. More... | |
void | print_dof_info () const |
Print out info for debugging. More... | |
void | set_buffer (const std::vector< dof_id_type > &buf) |
Static Public Member Functions | |
static unsigned int | unpackable_indexing_size (std::vector< largest_id_type >::const_iterator begin) |
If we have indices packed into an buffer for communications, how much of that buffer applies to this dof object? More... | |
static std::string | get_info () |
Gets a string containing the reference information. More... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . More... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. More... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() More... | |
static void | disable_print_counter_info () |
Static Public Attributes | |
static const dof_id_type | invalid_id = static_cast<dof_id_type>(-1) |
An invalid id to distinguish an uninitialized DofObject . More... | |
static const unique_id_type | invalid_unique_id = static_cast<unique_id_type>(-1) |
An invalid unique_id to distinguish an uninitialized DofObject . More... | |
static const processor_id_type | invalid_processor_id = static_cast<processor_id_type>(-1) |
An invalid processor_id to distinguish DoFs that have not been assigned to a processor. More... | |
Protected Types | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. More... | |
Protected Member Functions | |
DofObject () | |
Constructor. More... | |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. More... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. More... | |
Protected Attributes | |
std::unique_ptr< DofObject > | old_dof_object |
This object on the last mesh. More... | |
Static Protected Attributes | |
static Counts | _counts |
Actually holds the data. More... | |
static Threads::atomic< unsigned int > | _n_objects |
The number of objects. More... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. More... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. More... | |
Private Types | |
typedef dof_id_type | index_t |
DoF index information. More... | |
typedef std::vector< index_t > | index_buffer_t |
Private Member Functions | |
DofObject (const DofObject &) | |
"Copy"-constructor. More... | |
std::unique_ptr< DofObject > | construct (const DofObject *other=nullptr) |
Convenient factory function that calls either the (deep) copy constructor or the default constructor depending on the input arg. More... | |
DofObject & | operator= (const DofObject &dof_obj) |
Deep-copying assignment operator. More... | |
unsigned int | var_to_vg (const unsigned int s, const unsigned int var) const |
Utility function - for variable var in system s , figure out what variable group it lives in. More... | |
unsigned int | system_var_to_vg_var (const unsigned int s, const unsigned int vg, const unsigned int var) const |
Utility function - for variable var in system s , figure out what variable group it lives in. More... | |
unsigned int | start_idx (const unsigned int s) const |
The starting index for system s . More... | |
unsigned int | end_idx (const unsigned int s) const |
The ending index for system s . More... | |
unsigned int | start_idx_ints () const |
The starting index for an extra_integers pseudosystem. More... | |
unsigned int | end_idx_ints () const |
The ending index for an extra_integers pseudosystem. More... | |
Private Attributes | |
unique_id_type | _unique_id |
A globally unique id, guaranteed not to change as the mesh is repartitioned or adapted. More... | |
dof_id_type | _id |
The id of the DofObject . More... | |
processor_id_type | _processor_id |
The processor_id of the DofObject . More... | |
index_buffer_t | _idx_buf |
Static Private Attributes | |
static const index_t | ncv_magic = 256 |
Above we introduced the chimera ncv, which is a hybrid of the form ncv = ncv_magic*nv + nc where nv are the number of identical variables of a given type, and nc is the number of components for this set of variables. More... | |
static const index_t | ncv_magic_exp = 8 |
The DofObject
defines an abstract base class for objects that have degrees of freedom associated with them.
Examples of such objects are the Node
and Elem
classes. This class can not be instantiated, only derived from.
Definition at line 54 of file dof_object.h.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 119 of file reference_counter.h.
|
private |
Definition at line 674 of file dof_object.h.
|
private |
DoF index information.
This is packed into a contiguous buffer of the following format:
* [hdr end_0 end_1 ... end_{nps-2} (ncv_0 idx_0 ncv_1 idx_1 ... ncv_nv idx_nv)_0 * (ncv_0 idx_0 ncv_1 idx_1 ... ncv_nv idx_nv)_1 * ... * (ncv_0 idx_0 ncv_1 idx_1 ... ncv_nv idx_nv)_{nps-2} ] *
'hdr' determines whether this DofObject
has_extra_integers()
associated with it; iff so then it is negative.
The total number of "pseudo systems" is nps := abs(hdr).
The total number of true systems is
* ns = hdr, hdr >= 0 * = abs(hdr) - 1, otherwise. *
'end_s' is the index past the end of the variable group (or integer) storage for (pseudo) system s
.
As a first example, consider the case of 4 systems, with 3, 0, 1, 2 variable groups, respectively. The _idx_buf then looks like:
* [4 10 10 12 () (ncv_0 idx_0 ncv_1 idx_1 ncv_2 idx_2) () (ncv_0 idx_0) (ncv_0 idx_0 ncv_1 idx_1)] * [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] *
The ending index for each (pseudo) system is then given by:
* end_s = _idx_buf.size(), s == (nps-1), * = _idx_buf[s+1] + has_extra_integers(), otherwise. *
The starting indices are not specifically stored, but rather inferred as follows:
start_s = abs(_idx_buf[s])
Now, the defining characteristic of the VariableGroup
is that it supports an arbitrary number of variables of the same type. At the DofObject
level, what that means is that each Variable
in the VariableGroup
will have the same number of nonzero components, and they can all be indexed from the same base number. We use this information in the ncv_# and idx_# entries as follows:
ncv_# = n_vars*ncv_magic + n_comp for variable group # idx_# = base_offset for variable group #
the DoF index for a particular component c of variable v within that group is then given by
idx_var = idx_# + n_comp*v + c
When hdr is negative when cast to a signed type, then we interpret that to mean there exists one pseudo-system following the true systems, one for which the _idx_buf data stores the values associated with add_extra_integer entries, not ncv and idx data associated with system variables. We still return only the number of true systems for n_systems(), but we report has_extra_integers() as true iff hdr is negative, and abs(hdr) will reflect the total number of pseudo-systems, n_systems()+1.
E.g. if we had added two extra integers to the example case above, the _idx_buf then looks like:
* [-5 11 11 13 17 () (ncv_0 idx_0 ncv_1 idx_1 ncv_2 idx_2) () (ncv_0 idx_0) (ncv_0 idx_0 ncv_1 idx_1) (xtra1 xtra2)] * [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18] *
Definition at line 673 of file dof_object.h.
|
inlineprotected |
Constructor.
Protected so that you can't instantiate one of these except as a part of a Node or Elem.
Definition at line 722 of file dof_object.h.
References invalidate().
Referenced by construct().
|
default |
Destructor.
|
private |
"Copy"-constructor.
Does not copy old_dof_object, but leaves it null in the new object.
Definition at line 35 of file dof_object.C.
References dof_number(), libMesh::make_range(), n_comp(), n_systems(), n_var_groups(), and n_vars().
void libMesh::DofObject::add_extra_integers | ( | const unsigned int | n_integers | ) |
Assigns a set of extra integers to this DofObject
.
There will now be n_integers
associated; this replaces, not augments, any previous count.
Any newly-added values will initially be DofObject::invalid_id
If non-integer data is in the set, each datum of type T should be counted sizeof(T)/sizeof(dof_id_type) times in n_integers
.
Definition at line 490 of file dof_object.C.
References _idx_buf, invalid_id, and n_extra_integers().
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), add_extra_integers(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), DofObjectTest< Node >::testSetNSystemsExtraInts(), and DofObjectTest< Node >::testSetNVariableGroupsExtraInts().
void libMesh::DofObject::add_extra_integers | ( | const unsigned int | n_integers, |
const std::vector< dof_id_type > & | default_values | ||
) |
Assigns a set of extra integers to this DofObject
.
There will now be n_integers
associated; this replaces, not augments, any previous count.
Any newly-added values will be copied from default_values
.
If non-integer data is in the set, each datum of type T should be counted sizeof(T)/sizeof(dof_id_type) times in n_integers
, and its data should be expressed in default_values
as per memcpy.
Definition at line 542 of file dof_object.C.
References _idx_buf, add_extra_integers(), and n_extra_integers().
void libMesh::DofObject::add_system | ( | ) |
Adds an additional system to the DofObject
.
Definition at line 195 of file dof_object.C.
References _idx_buf, has_extra_integers(), n_systems(), n_var_groups(), n_vars(), and set_n_systems().
Referenced by DofObjectTest< Node >::testAddSystemExtraInts().
|
inline |
Clear the DofMap
data structures holding degree of freedom data.
If any extra integers are associated with this DofObject
, their count and values are unchanged.
Definition at line 793 of file dof_object.h.
References set_n_systems().
void libMesh::DofObject::clear_old_dof_object | ( | ) |
Sets the old_dof_object
to nullptr.
Definition at line 128 of file dof_object.C.
References old_dof_object.
Referenced by operator=(), set_old_dof_object(), and unpack_indexing().
|
inlineprivate |
Convenient factory function that calls either the (deep) copy constructor or the default constructor depending on the input arg.
Like the copy constructor, this function is also private. We can't use std::make_unique to construct a DofObject since the copy constructor is private, but we can at least encapsulate the code which calls "new" directly.
Definition at line 736 of file dof_object.h.
References DofObject().
Referenced by operator=(), set_old_dof_object(), and unpack_indexing().
void libMesh::DofObject::debug_buffer | ( | ) | const |
Print our buffer for debugging.
Definition at line 660 of file dof_object.C.
References _idx_buf, libMesh::MeshTools::Generation::Private::idx(), and libMesh::out.
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
inline |
var
, component comp
for system s
associated with this DofObject
When partitioning and DoF numbering have been performed by libMesh, every current DoF on this DofObject will belong to its processor.
Definition at line 1025 of file dof_object.h.
References n_comp(), n_comp_group(), n_systems(), n_vars(), and var_to_vg_and_offset().
Referenced by libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), libMesh::DofMap::allgather_recursive_constraints(), assemble_matrix_and_rhs(), assemble_shell(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::DofMap::constrain_p_dofs(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::dof_indices(), DofObject(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), libMesh::OldSolutionCoefs< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionValue< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), fill_dirichlet_bc(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::DofMap::local_variable_indices(), main(), libMesh::DofMap::old_dof_indices(), libMesh::BuildProjectionList::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), operator=(), print_dof_info(), libMesh::DofMap::process_mesh_constraint_rows(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::HPCoarsenTest::select_refinement(), set_dof_number(), libMesh::DofMap::set_nonlocal_dof_objects(), ParsedFEMFunctionTest::setUp(), DofObjectTest< Node >::testJensEftangBug(), DofObjectTest< Node >::testManualDofCalculation(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::DTKAdapter::update_variable_values(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
|
inline |
vg
, variable index vig
within the group, component comp
out of n_comp
, for system s
on this DofObject
Even users who need to call dof_number from user code probably don't want to call this overload.
Definition at line 1046 of file dof_object.h.
References _idx_buf, invalid_id, n_comp(), n_systems(), n_var_groups(), n_vars(), and start_idx().
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 94 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
The ending index for system s
.
Definition at line 1253 of file dof_object.h.
References _idx_buf, n_pseudo_systems(), and n_systems().
Referenced by n_var_groups(), and set_n_vars_per_group().
|
inlineprivate |
The ending index for an extra_integers pseudosystem.
Definition at line 1280 of file dof_object.h.
References _idx_buf, has_extra_integers(), and libMesh::libmesh_assert().
|
inline |
Gets the value on this object of the extra datum associated with index
, which should have been obtained via a call to MeshBase::add_elem_datum
or MeshBase::add_node_datum
using the same type T.
Definition at line 1139 of file dof_object.h.
References _idx_buf, n_extra_integers(), n_systems(), and start_idx_ints().
Referenced by libMesh::Elem::get_info(), libMesh::VTKIO::nodes_to_vtk(), libMesh::rational_fe_shape(), libMesh::rational_fe_shape_deriv(), libMesh::rational_fe_shape_second_deriv(), libMesh::rational_fe_weighted_shapes(), libMesh::rational_fe_weighted_shapes_derivs(), and DofObjectTest< Node >::testAddExtraData().
|
inline |
Gets the value on this object of the extra integer associated with index
, which should have been obtained via a call to MeshBase::add_elem_integer
or MeshBase::add_node_integer
.
Definition at line 1095 of file dof_object.h.
References _idx_buf, n_extra_integers(), n_systems(), and start_idx_ints().
Referenced by libMesh::MeshTools::Modification::all_tri(), WriteElemsetData::checkByCentroid(), libMesh::MeshTools::Modification::flatten(), libMesh::SyncElementIntegers::gather_data(), libMesh::XdrIO::pack_element(), libMesh::CheckpointIO::read_connectivity(), set_n_vars_per_group(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), ExtraIntegersTest::testExtraIntegersExodusReading(), DofObjectTest< Node >::testSetNSystemsExtraInts(), DofObjectTest< Node >::testSetNVariableGroupsExtraInts(), and libMesh::XdrIO::write_serialized_nodes().
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().
Referenced by libMesh::ReferenceCounter::print_info().
|
inline |
Pointer accessor for previously public old_dof_object.
If you want to assert that the old_dof_object pointer is valid as well, consider using the get_old_dof_object_ref() accessor instead.
Definition at line 96 of file dof_object.h.
References old_dof_object.
Referenced by libMesh::OldSolutionBase< Output, point_output >::check_old_context(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), libMesh::OldSolutionCoefs< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionValue< Output, point_output >::eval_mixed_derivatives(), libMesh::DofMap::old_dof_indices(), libMesh::BuildProjectionList::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), and operator=().
|
inline |
Definition at line 97 of file dof_object.h.
References old_dof_object.
|
inline |
As above, but do not use in situations where the old_dof_object may be nullptr, since this function asserts that the old_dof_object is valid before returning a reference to it.
Definition at line 104 of file dof_object.h.
References libMesh::libmesh_assert(), and old_dof_object.
Referenced by libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), and libMesh::DofMap::old_dof_indices().
|
inline |
Definition at line 110 of file dof_object.h.
References libMesh::libmesh_assert(), and old_dof_object.
|
inline |
true
if any system has variables which have been assigned, false
otherwise. Definition at line 1219 of file dof_object.h.
References libMesh::invalid_uint, libMesh::make_range(), n_systems(), and n_vars().
Referenced by libMesh::DofMap::old_dof_indices().
|
inline |
Returns whether extra integers are associated to the DofObject
.
Definition at line 1181 of file dof_object.h.
References _idx_buf.
Referenced by add_system(), end_idx_ints(), set_n_vars_per_group(), start_idx_ints(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), and DofObjectTest< Node >::testSetNSystemsExtraInts().
|
inline |
id
for this DofObject
Definition at line 823 of file dof_object.h.
References _id.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), add_cube_convex_hull_to_mesh(), libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::TopologyMap::add_node(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::add_point(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), assemble_ellipticdg(), libMesh::Node::build(), libMesh::MeshTools::Generation::build_cube(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::EquationSystems::build_parallel_solution_vector(), compute_jacobian(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::FEAbstract::compute_periodic_node_constraints(), compute_residual(), libMesh::InfFE< Dim, T_radial, T_map >::compute_shape_functions(), libMesh::FEMap::compute_single_point_map(), libMesh::connect_families(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DTKAdapter::DTKAdapter(), libMesh::UNVIO::elements_out(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), 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::MeshTools::Modification::flatten(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::ReplicatedMesh::get_disconnected_subdomains(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::MeshBase::get_info(), libMesh::ParmetisPartitioner::initialize(), libMesh::TreeNode< N >::insert(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), libMesh::Poly2TriTriangulator::insert_refinement_points(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), libMesh::Elem::interior_parent(), libMesh::FEMap::inverse_map(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::Tri3Subdivision::local_node_number(), main(), ExodusTest< elem_type >::meshes_equal_enough(), LinearElasticityWithContact::move_mesh(), libMesh::Elem::node_id(), libMesh::TriangulatorInterface::nodes_to_segments(), libMesh::VTKIO::nodes_to_vtk(), libMesh::CompareElemIdsByLevel::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::CompareDofObjectsByID::operator()(), libMesh::CompareDofObjectsByPIDAndThenID::operator()(), libMesh::BoundaryInfo::operator==(), libMesh::DistributedMesh::own_node(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::MetisPartitioner::partition_range(), print_dof_info(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::DistributedMesh::query_elem_ptr(), libMesh::query_ghosting_functors(), libMesh::DistributedMesh::query_node_ptr(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::EquationSystems::redundant_added_side(), libMesh::DistributedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_node(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), FETestBase< order, family, elem_type, 1 >::setUp(), libMesh::MeshTools::Modification::smooth(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id_once(), ElemTest< elem_type >::test_orient_elements(), DefaultCouplingTest::testCoupling(), MixedDimensionMeshTest::testPointLocatorTree(), InfFERadialTest::testRefinement(), DofObjectTest< Node >::testSetId(), libMesh::Elem::topologically_equal(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), and libMesh::XdrIO::write_serialized_nodes().
|
inlineprotectednoexceptinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 183 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 207 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
|
inline |
Invalidates all the indices for this DofObject
.
Definition at line 783 of file dof_object.h.
References invalidate_dofs(), invalidate_id(), and invalidate_processor_id().
Referenced by DofObject().
|
inline |
Sets all degree of freedom numbers to invalid_id
.
Definition at line 746 of file dof_object.h.
References invalid_id, libMesh::make_range(), n_comp_group(), n_systems(), n_var_groups(), and set_vg_dof_base().
Referenced by invalidate().
|
inline |
Sets the id to invalid_id
.
Definition at line 767 of file dof_object.h.
References invalid_id, and set_id().
Referenced by invalidate(), and DofObjectTest< Node >::testInvalidateId().
|
inline |
Sets the processor id to invalid_processor_id
.
Definition at line 775 of file dof_object.h.
References invalid_processor_id, and processor_id().
Referenced by invalidate(), libMesh::Partitioner::set_parent_processor_ids(), and DofObjectTest< Node >::testInvalidateProcId().
|
inline |
var
of system s
associated with this DofObject
. For example, the HIERARCHIC
shape functions may have multiple DoFs associated with one node. Another example is the MONOMIALs
, where only the elements hold the DoFs. For the different spatial directions, and orders, see FE
. Definition at line 995 of file dof_object.h.
References n_comp_group(), n_systems(), n_vars(), and var_to_vg().
Referenced by libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::DofMap::constrain_p_dofs(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::DofMap::distribute_dofs(), dof_number(), DofObject(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), libMesh::OldSolutionCoefs< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionValue< Output, point_output >::eval_mixed_derivatives(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::DofMap::local_variable_indices(), main(), n_dofs(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), operator=(), print_dof_info(), set_dof_number(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
|
inline |
VariableGroup
vg
of system s
associated with this DofObject
. For example, the HIERARCHIC
shape functions may have multiple DoFs associated with one node. Another example is the MONOMIALs
, where only the elements hold the DoFs. For the different spatial directions, and orders, see FE
. Definition at line 1008 of file dof_object.h.
References _idx_buf, n_systems(), n_var_groups(), ncv_magic, and start_idx().
Referenced by libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::dof_indices(), dof_number(), libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), invalidate_dofs(), n_comp(), libMesh::DofMap::old_dof_indices(), libMesh::BuildProjectionList::operator()(), libMesh::DofMap::reinit(), set_dof_number(), set_n_comp_group(), set_n_vars_per_group(), and libMesh::DofMap::set_nonlocal_dof_objects().
|
inline |
s
for this object. Optionally only counts degrees of freedom for variable number var
Definition at line 801 of file dof_object.h.
References libMesh::invalid_uint, libMesh::make_range(), n_comp(), n_systems(), and n_vars().
Referenced by libMesh::PetscDMWrapper::add_dofs_helper(), and libMesh::EquationSystems::build_parallel_solution_vector().
|
inline |
Returns how many extra integers are associated to the DofObject
.
If non-integer data has been associated, each datum of type T counts for sizeof(T)/sizeof(dof_id_type) times in the return value.
Definition at line 1163 of file dof_object.h.
References _idx_buf, and start_idx_ints().
Referenced by add_extra_integers(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Modification::flatten(), get_extra_datum(), get_extra_integer(), libMesh::CheckpointIO::read_connectivity(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::Elem::refine(), set_extra_datum(), set_extra_integer(), set_n_systems(), set_n_vars_per_group(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), DofObjectTest< Node >::testSetNSystemsExtraInts(), and DofObjectTest< Node >::testSetNVariableGroupsExtraInts().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 85 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inline |
DofObject
: n_systems(), plus one iff this->has_extra_integers()
Definition at line 940 of file dof_object.h.
References _idx_buf, and std::abs().
Referenced by end_idx(), set_extra_datum(), and set_extra_integer().
|
inline |
DofObject
Definition at line 930 of file dof_object.h.
References _idx_buf.
Referenced by libMesh::DofMap::_dof_indices(), add_system(), dof_number(), DofObject(), end_idx(), libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), get_extra_datum(), get_extra_integer(), libMesh::Node::get_info(), libMesh::Elem::get_info(), has_dofs(), invalidate_dofs(), n_comp(), n_comp_group(), n_dofs(), n_var_groups(), n_vars(), libMesh::DofMap::old_dof_indices(), operator=(), print_dof_info(), libMesh::Elem::refine(), set_dof_number(), set_n_comp(), set_n_comp_group(), set_n_systems(), set_n_vars_per_group(), set_vg_dof_base(), start_idx(), start_idx_ints(), DofObjectTest< Node >::testAddSystemExtraInts(), DofObjectTest< Node >::testSetNSystems(), DofObjectTest< Node >::testSetNSystemsExtraInts(), and vg_dof_base().
VariableGroup
variable groups associated with system s
for this DofObject
Definition at line 950 of file dof_object.h.
References end_idx(), n_systems(), and start_idx().
Referenced by add_system(), dof_number(), DofObject(), invalidate_dofs(), n_comp_group(), n_vars(), libMesh::BuildProjectionList::operator()(), operator=(), set_n_comp_group(), set_n_systems(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), set_vg_dof_base(), DofObjectTest< Node >::testSetNVariableGroups(), DofObjectTest< Node >::testSetNVariableGroupsExtraInts(), var_to_vg(), var_to_vg_and_offset(), and vg_dof_base().
|
inline |
Variable
variables associated with VariableGroup
vg
in system s
for this DofObject
Definition at line 960 of file dof_object.h.
References _idx_buf, n_systems(), n_var_groups(), ncv_magic_exp, and start_idx().
Referenced by add_system(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::distribute_dofs(), dof_number(), DofObject(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), libMesh::OldSolutionCoefs< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionValue< Output, point_output >::eval_mixed_derivatives(), libMesh::Node::get_info(), libMesh::Elem::get_info(), has_dofs(), n_comp(), n_dofs(), n_vars(), libMesh::BuildProjectionList::operator()(), operator=(), print_dof_info(), set_dof_number(), set_n_comp(), set_n_comp_group(), set_n_systems(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), system_var_to_vg_var(), DofObjectTest< Node >::testAddSystemExtraInts(), DofObjectTest< Node >::testSetNVariableGroups(), DofObjectTest< Node >::testSetNVariableGroupsExtraInts(), var_to_vg(), and var_to_vg_and_offset().
Definition at line 977 of file dof_object.h.
References n_systems(), n_var_groups(), and n_vars().
Deep-copying assignment operator.
Definition at line 77 of file dof_object.C.
References _id, _idx_buf, _processor_id, _unique_id, clear_old_dof_object(), construct(), dof_number(), get_old_dof_object(), libMesh::make_range(), n_comp(), n_systems(), n_var_groups(), n_vars(), and old_dof_object.
void libMesh::DofObject::pack_indexing | ( | std::back_insert_iterator< std::vector< largest_id_type >> | target | ) | const |
A method for creating packed data from our index buffer - basically a copy with prepended size with our current implementation.
Definition at line 642 of file dof_object.C.
References _idx_buf, and old_dof_object.
unsigned int libMesh::DofObject::packed_indexing_size | ( | ) | const |
If we pack our indices into an buffer for communications, how many ints do we need?
Definition at line 560 of file dof_object.C.
References _idx_buf, and old_dof_object.
Referenced by libMesh::Node::packed_size().
void libMesh::DofObject::print_dof_info | ( | ) | const |
Print out info for debugging.
Definition at line 670 of file dof_object.C.
References dof_number(), id(), libMesh::make_range(), n_comp(), n_systems(), n_vars(), and libMesh::out.
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
Definition at line 81 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inline |
When partitioning and DoF numbering have been performed by libMesh, every current DoF on this DofObject will belong to its processor.
Definition at line 898 of file dof_object.h.
References _processor_id.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::DistributedMesh::add_point(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::Patch::build_around_element(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::Elem::Elem(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshFunction::find_element(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::DistributedMesh::insert_elem(), invalidate_processor_id(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), AugmentSparsityOnInterface::mesh_reinit(), ExodusTest< elem_type >::meshes_equal_enough(), libMesh::PeriodicBoundaries::neighbor(), libMesh::RBEIMEvaluation::node_distribute_bfs(), OverlappingCouplingFunctor::operator()(), AugmentSparsityOnInterface::operator()(), AugmentSparsityOnNodes::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), libMesh::CompareDofObjectsByPIDAndThenID::operator()(), libMesh::DistributedMesh::own_node(), libMesh::XdrIO::pack_element(), libMesh::LinearPartitioner::partition_range(), libMesh::SFCPartitioner::partition_range(), libMesh::CentroidPartitioner::partition_range(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::process_mesh_constraint_rows(), processor_id(), libMesh::CheckpointIO::read_connectivity(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), ParsedFEMFunctionTest::setUp(), libMesh::Partitioner::single_partition_range(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id_once(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), DofObjectTest< Node >::testInvalidateProcId(), EquationSystemsTest::testPostInitAddElem(), DofObjectTest< Node >::testSetProcId(), BoundaryInfoTest::testShellFaceConstraints(), DofObjectTest< Node >::testValidProcId(), libMesh::DTKAdapter::update_variable_values(), libMesh::GmshIO::write_mesh(), and libMesh::Nemesis_IO_Helper::write_sidesets().
|
inline |
Definition at line 906 of file dof_object.h.
References _processor_id.
|
inline |
Sets the processor_id
for this DofObject
.
Definition at line 914 of file dof_object.h.
References processor_id().
|
inline |
Definition at line 712 of file dof_object.h.
References _idx_buf.
Referenced by DofObjectTest< Node >::testJensEftangBug().
void libMesh::DofObject::set_dof_number | ( | const unsigned int | s, |
const unsigned int | var, | ||
const unsigned int | comp, | ||
const dof_id_type | dn | ||
) |
Sets the global degree of freedom number for variable var
, component comp
for system s
associated with this DofObject
.
Definition at line 454 of file dof_object.C.
References _idx_buf, dof_number(), invalid_id, libMesh::libmesh_assert(), n_comp(), n_comp_group(), n_systems(), n_vars(), start_idx(), system_var_to_vg_var(), and var_to_vg().
|
inline |
Sets the value on this object of the extra datum associated with index
, which should have been obtained via a call to MeshBase::add_elem_datum
or MeshBase::add_node_datum
using the same type T.
Definition at line 1119 of file dof_object.h.
References _idx_buf, n_extra_integers(), n_pseudo_systems(), start_idx_ints(), and value.
Referenced by libMesh::ExodusII_IO::read(), libMesh::DynaIO::read_mesh(), and DofObjectTest< Node >::testAddExtraData().
|
inline |
Sets the value on this object of the extra integer associated with index
, which should have been obtained via a call to MeshBase::add_elem_integer
or MeshBase::add_node_integer
.
Definition at line 1079 of file dof_object.h.
References _idx_buf, n_extra_integers(), n_pseudo_systems(), start_idx_ints(), and value.
Referenced by libMesh::SyncElementIntegers::act_on_data(), libMesh::BoundaryInfo::add_elements(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::create_submesh(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::Elem::refine(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), DofObjectTest< Node >::testSetNSystemsExtraInts(), and DofObjectTest< Node >::testSetNVariableGroupsExtraInts().
|
inline |
id
for this DofObject
as a writable reference. Definition at line 831 of file dof_object.h.
References _id.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::UnstructuredMesh::all_first_order(), libMesh::DistributedMesh::fix_broken_node_and_element_numbering(), invalidate_id(), libMesh::Node::Node(), libMesh::DistributedMesh::own_node(), libMesh::VTKIO::read(), libMesh::RemoteElem::RemoteElem(), libMesh::ReplicatedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_elem(), libMesh::ReplicatedMesh::renumber_node(), libMesh::DistributedMesh::renumber_node(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), set_id(), DofObjectTest< Node >::testInvalidateId(), DofObjectTest< Node >::testSetId(), and DofObjectTest< Node >::testValidId().
|
inline |
void libMesh::DofObject::set_n_comp | ( | const unsigned int | s, |
const unsigned int | var, | ||
const unsigned int | ncomp | ||
) |
Sets the number of components for Variable
var
of system s
associated with this DofObject
.
Definition at line 385 of file dof_object.C.
References n_systems(), n_vars(), set_n_comp_group(), and var_to_vg().
void libMesh::DofObject::set_n_comp_group | ( | const unsigned int | s, |
const unsigned int | vg, | ||
const unsigned int | ncomp | ||
) |
Sets the number of components for VariableGroup
vg
of system s
associated with this DofObject
.
Definition at line 397 of file dof_object.C.
References _idx_buf, invalid_id, n_comp_group(), n_systems(), n_var_groups(), n_vars(), ncv_magic, and start_idx().
Referenced by libMesh::DofMap::reinit(), set_n_comp(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), and DofObjectTest< Node >::testManualDofCalculation().
void libMesh::DofObject::set_n_systems | ( | const unsigned int | s | ) |
Sets the number of systems for this DofObject
.
If this number is a change, also clears all variable count and DoF indexing associated with this DofObject
.
If any extra integers are associated with this DofObject
, their count and values are unchanged.
Definition at line 150 of file dof_object.C.
References _idx_buf, libMesh::make_range(), n_extra_integers(), n_systems(), n_var_groups(), n_vars(), and start_idx_ints().
Referenced by add_system(), clear_dofs(), libMesh::Elem::refine(), DofObjectTest< Node >::testManualDofCalculation(), DofObjectTest< Node >::testSetNSystems(), DofObjectTest< Node >::testSetNSystemsExtraInts(), DofObjectTest< Node >::testSetNVariableGroups(), and DofObjectTest< Node >::testSetNVariableGroupsExtraInts().
void libMesh::DofObject::set_n_vars_per_group | ( | const unsigned int | s, |
const std::vector< unsigned int > & | nvpg | ||
) |
Sets number of variables in each group associated with system s
for this DofObject
.
Implicit in this is also 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 247 of file dof_object.C.
References _idx_buf, end_idx(), get_extra_integer(), has_extra_integers(), invalid_id, libMesh::make_range(), n_comp(), n_comp_group(), n_extra_integers(), n_systems(), n_var_groups(), n_vars(), ncv_magic, set_n_comp_group(), and start_idx().
Referenced by DofObjectTest< Node >::testManualDofCalculation(), DofObjectTest< Node >::testSetNVariableGroups(), and DofObjectTest< Node >::testSetNVariableGroupsExtraInts().
void libMesh::DofObject::set_old_dof_object | ( | ) |
Sets the old_dof_object
to a copy of this
.
Definition at line 135 of file dof_object.C.
References clear_old_dof_object(), construct(), libMesh::libmesh_assert(), and old_dof_object.
|
inline |
unique_id
for this DofObject
as a writable reference. Deprecated; use the API taking an input instead. Definition at line 852 of file dof_object.h.
References _unique_id.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::create_submesh(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), ExodusTest< elem_type >::meshes_equal_enough(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read_nodes(), and libMesh::XdrIO::read_serialized_nodes().
|
inline |
Sets the unique_id
for this DofObject
.
Definition at line 865 of file dof_object.h.
References _unique_id, and libMesh::libmesh_ignore().
|
inline |
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 1290 of file dof_object.h.
References _idx_buf, n_systems(), n_var_groups(), start_idx(), and vg_dof_base().
Referenced by libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), invalidate_dofs(), libMesh::DofMap::reinit(), libMesh::DofMap::set_nonlocal_dof_objects(), and DofObjectTest< Node >::testManualDofCalculation().
The starting index for system s
.
Definition at line 1242 of file dof_object.h.
References _idx_buf, std::abs(), and n_systems().
Referenced by dof_number(), n_comp_group(), n_var_groups(), n_vars(), set_dof_number(), set_n_comp_group(), set_n_vars_per_group(), set_vg_dof_base(), and vg_dof_base().
|
inlineprivate |
The starting index for an extra_integers pseudosystem.
Definition at line 1266 of file dof_object.h.
References _idx_buf, has_extra_integers(), libMesh::libmesh_assert(), and n_systems().
Referenced by get_extra_datum(), get_extra_integer(), n_extra_integers(), set_extra_datum(), set_extra_integer(), and set_n_systems().
|
inlineprivate |
Utility function - for variable var
in system s
, figure out what variable group it lives in.
Definition at line 1352 of file dof_object.h.
References n_vars().
Referenced by set_dof_number().
|
inline |
unique_id
for this DofObject
Definition at line 839 of file dof_object.h.
References _unique_id, invalid_unique_id, libMesh::libmesh_assert(), and valid_unique_id().
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Modification::flatten(), libMesh::Elem::get_info(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), libMesh::XdrIO::pack_element(), libMesh::ExodusII_IO::read_elemental_variable(), SlitMeshRefinedSystemTest::testRestart(), and libMesh::XdrIO::write_serialized_nodes().
void libMesh::DofObject::unpack_indexing | ( | std::vector< largest_id_type >::const_iterator | begin | ) |
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 595 of file dof_object.C.
References _idx_buf, std::abs(), clear_old_dof_object(), construct(), libMesh::libmesh_assert(), and old_dof_object.
|
static |
If we have indices packed into an buffer for communications, how much of that buffer applies to this dof object?
Definition at line 575 of file dof_object.C.
|
inline |
true
if this DofObject
has a valid id
set, false
otherwise. Definition at line 878 of file dof_object.h.
References _id, and invalid_id.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::ReplicatedMesh::insert_node(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Elem::libmesh_assert_valid_node_pointers(), DofObjectTest< Node >::testInvalidateId(), and DofObjectTest< Node >::testValidId().
|
inline |
true
if this DofObject
has a valid id
set, false
otherwise. Definition at line 922 of file dof_object.h.
References _processor_id, and invalid_processor_id.
Referenced by DofObjectTest< Node >::testInvalidateProcId(), and DofObjectTest< Node >::testValidProcId().
|
inline |
true
if this DofObject
has a valid unique_id
set, false
otherwise. Definition at line 886 of file dof_object.h.
References _unique_id, and invalid_unique_id.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::Elem::get_info(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), and unique_id().
|
inlineprivate |
Utility function - for variable var
in system s
, figure out what variable group it lives in.
Definition at line 1334 of file dof_object.h.
References n_var_groups(), and n_vars().
Referenced by n_comp(), set_dof_number(), and set_n_comp().
|
inline |
var
on system s
associated with this DofObject
Definition at line 1193 of file dof_object.h.
References n_var_groups(), and n_vars().
Referenced by libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), dof_number(), libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), and libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs().
|
inline |
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 1310 of file dof_object.h.
References _idx_buf, n_systems(), n_var_groups(), and 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(), set_vg_dof_base(), and DofObjectTest< Node >::testManualDofCalculation().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 143 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
private |
The id
of the DofObject
.
Definition at line 578 of file dof_object.h.
Referenced by id(), operator=(), set_id(), and valid_id().
|
private |
Definition at line 675 of file dof_object.h.
Referenced by add_extra_integers(), add_system(), debug_buffer(), dof_number(), end_idx(), end_idx_ints(), get_extra_datum(), get_extra_integer(), has_extra_integers(), n_comp_group(), n_extra_integers(), n_pseudo_systems(), n_systems(), n_vars(), operator=(), pack_indexing(), packed_indexing_size(), set_buffer(), set_dof_number(), set_extra_datum(), set_extra_integer(), set_n_comp_group(), set_n_systems(), set_n_vars_per_group(), set_vg_dof_base(), start_idx(), start_idx_ints(), unpack_indexing(), and vg_dof_base().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 137 of file reference_counter.h.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
Definition at line 132 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
private |
The processor_id
of the DofObject
.
Degrees of freedom are wholly owned by processors, however they may be duplicated on other processors.
This is stored as an unsigned short int since we cannot expect to be solving on 65000+ processors any time soon, can we??
Definition at line 589 of file dof_object.h.
Referenced by operator=(), processor_id(), and valid_processor_id().
|
private |
A globally unique id, guaranteed not to change as the mesh is repartitioned or adapted.
Definition at line 572 of file dof_object.h.
Referenced by operator=(), set_unique_id(), unique_id(), and valid_unique_id().
|
static |
An invalid id
to distinguish an uninitialized DofObject
.
Definition at line 477 of file dof_object.h.
Referenced by libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), libMesh::Node::active(), libMesh::MeshBase::add_elem_datum(), libMesh::MeshBase::add_elem_integers(), add_extra_integers(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::TopologyMap::add_node(), libMesh::MeshRefinement::add_node(), libMesh::MeshBase::add_node_datum(), libMesh::MeshBase::add_node_integers(), libMesh::ReplicatedMesh::add_point(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::assert_no_nodes_missed(), libMesh::Elem::bracketing_nodes(), ExtraIntegersTest::checkpoint_helper(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::dof_indices(), dof_number(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), libMesh::TopologyMap::find(), libMesh::DofMap::gather_constraints(), libMesh::MeshBase::get_elemset_code(), libMesh::ReplicatedMesh::insert_node(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Elem::interior_parent(), invalidate_dofs(), invalidate_id(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::Node::Node(), libMesh::Elem::node_id(), libMesh::DofMap::old_dof_indices(), libMesh::DistributedMesh::own_node(), libMesh::XdrIO::pack_element(), libMesh::SFCPartitioner::partition_range(), libMesh::Elem::point(), libMesh::ExodusII_IO::read(), libMesh::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::System::read_parallel_data(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::DofMap::SCALAR_dof_indices(), set_dof_number(), set_n_comp_group(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Parallel::sync_node_data_by_element_id_once(), ExtraIntegersTest::test_and_set_initial_data(), DofObjectTest< Node >::testAddExtraData(), DofObjectTest< Node >::testAddSystemExtraInts(), NodalNeighborsTest::testEdge2(), NodalNeighborsTest::testEdge3(), NodalNeighborsTest::testEdge4(), ExtraIntegersTest::testExtraIntegersExodusReading(), InfFERadialTest::testRefinement(), DofObjectTest< Node >::testSetNSystemsExtraInts(), DofObjectTest< Node >::testSetNVariableGroupsExtraInts(), DofObjectTest< Node >::testValidId(), WriteElemsetData::testWriteImpl(), libMesh::Poly2TriTriangulator::triangulate_current_points(), valid_id(), libMesh::System::write_parallel_data(), and libMesh::XdrIO::write_serialized_connectivity().
|
static |
An invalid processor_id
to distinguish DoFs that have not been assigned to a processor.
Definition at line 488 of file dof_object.h.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::MeshCommunication::allgather(), libMesh::Node::choose_processor_id(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::Elem::Elem(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshCommunication::find_global_indices(), libMesh::MeshBase::get_info(), libMesh::DistributedMesh::insert_elem(), invalidate_processor_id(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::n_unpartitioned_nodes(), libMesh::SparsityPattern::Build::operator()(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), OverlappingFunctorTest::run_coupling_functor_test(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_dofobject_data_by_xyz(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id_once(), DofObjectTest< Node >::testValidProcId(), libMesh::MeshTools::total_weight(), valid_processor_id(), and libMesh::CheckpointIO::write().
|
static |
An invalid unique_id
to distinguish an uninitialized DofObject
.
Definition at line 482 of file dof_object.h.
Referenced by libMesh::DistributedMesh::renumber_dof_objects(), unique_id(), and valid_unique_id().
|
staticprivate |
Above we introduced the chimera ncv, which is a hybrid of the form ncv = ncv_magic*nv + nc where nv are the number of identical variables of a given type, and nc is the number of components for this set of variables.
It is hoped that by setting this to a power of two, an optimizing compiler will recognize later that #/ncv_magic is simply a bitshift
Definition at line 686 of file dof_object.h.
Referenced by n_comp_group(), set_n_comp_group(), and set_n_vars_per_group().
|
staticprivate |
Definition at line 687 of file dof_object.h.
Referenced by n_vars().
|
protected |
This object on the last mesh.
Useful for projecting solutions from one mesh to another.
Public access to old_dof_object is now officially deprecated and will be removed in future libMesh versions. Use the get_old_dof_object()
accessor instead.
Definition at line 88 of file dof_object.h.
Referenced by clear_old_dof_object(), get_old_dof_object(), get_old_dof_object_ref(), operator=(), pack_indexing(), packed_indexing_size(), set_old_dof_object(), and unpack_indexing().