The DofObject
defines an abstract base class for objects that have degrees of freedom associated with them.
更多...
#include <dof_object.h>
Public 成员函数 | |
~DofObject ()=default | |
Destructor. 更多... | |
DofObject * | get_old_dof_object () |
Pointer accessor for previously public old_dof_object. 更多... | |
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. 更多... | |
const DofObject & | get_old_dof_object_ref () const |
void | clear_old_dof_object () |
Sets the old_dof_object to nullptr. 更多... | |
void | set_old_dof_object () |
Sets the old_dof_object to a copy of this . 更多... | |
void | clear_dofs () |
Clear the DofMap data structures holding degree of freedom data. 更多... | |
void | invalidate_dofs (const unsigned int sys_num=libMesh::invalid_uint) |
Sets all degree of freedom numbers to invalid_id . 更多... | |
void | invalidate_id () |
Sets the id to invalid_id . 更多... | |
void | invalidate_processor_id () |
Sets the processor id to invalid_processor_id . 更多... | |
void | invalidate () |
Invalidates all the indices for this DofObject . 更多... | |
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 . 更多... | |
void | set_id (const dof_id_type dofid) |
Sets the id for this DofObject . 更多... | |
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 . 更多... | |
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 . 更多... | |
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 . 更多... | |
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 . 更多... | |
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. 更多... | |
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. 更多... | |
void | add_system () |
Adds an additional system to the DofObject . 更多... | |
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 . 更多... | |
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 . 更多... | |
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 . 更多... | |
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 . 更多... | |
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. 更多... | |
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. 更多... | |
void | add_extra_integers (const unsigned int n_integers) |
Assigns a set of extra integers to this DofObject . 更多... | |
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 . 更多... | |
unsigned int | n_extra_integers () const |
Returns how many extra integers are associated to the DofObject . 更多... | |
bool | has_extra_integers () const |
Returns whether extra integers are associated to the DofObject . 更多... | |
unsigned int | packed_indexing_size () const |
If we pack our indices into an buffer for communications, how many ints do we need? 更多... | |
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. 更多... | |
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. 更多... | |
void | debug_buffer () const |
Print our buffer for debugging. 更多... | |
void | print_dof_info () const |
Print out info for debugging. 更多... | |
void | set_buffer (const std::vector< dof_id_type > &buf) |
静态 Public 成员函数 | |
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? 更多... | |
static std::string | get_info () |
Gets a string containing the reference information. 更多... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . 更多... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. 更多... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() 更多... | |
static void | disable_print_counter_info () |
静态 Public 属性 | |
static const dof_id_type | invalid_id = static_cast<dof_id_type>(-1) |
An invalid id to distinguish an uninitialized DofObject . 更多... | |
static const unique_id_type | invalid_unique_id = static_cast<unique_id_type>(-1) |
An invalid unique_id to distinguish an uninitialized DofObject . 更多... | |
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. 更多... | |
Protected 类型 | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. 更多... | |
Protected 成员函数 | |
DofObject () | |
Constructor. 更多... | |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. 更多... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. 更多... | |
Protected 属性 | |
std::unique_ptr< DofObject > | old_dof_object |
This object on the last mesh. 更多... | |
静态 Protected 属性 | |
static Counts | _counts |
Actually holds the data. 更多... | |
static Threads::atomic < unsigned int > | _n_objects |
The number of objects. 更多... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. 更多... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. 更多... | |
Private 类型 | |
typedef dof_id_type | index_t |
DoF index information. 更多... | |
typedef std::vector< index_t > | index_buffer_t |
Private 成员函数 | |
DofObject (const DofObject &) | |
"Copy"-constructor. 更多... | |
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. 更多... | |
DofObject & | operator= (const DofObject &dof_obj) |
Deep-copying assignment operator. 更多... | |
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. 更多... | |
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. 更多... | |
unsigned int | start_idx (const unsigned int s) const |
The starting index for system s . 更多... | |
unsigned int | end_idx (const unsigned int s) const |
The ending index for system s . 更多... | |
unsigned int | start_idx_ints () const |
The starting index for an extra_integers pseudosystem. 更多... | |
unsigned int | end_idx_ints () const |
The ending index for an extra_integers pseudosystem. 更多... | |
Private 属性 | |
unique_id_type | _unique_id |
A globally unique id, guaranteed not to change as the mesh is repartitioned or adapted. 更多... | |
dof_id_type | _id |
The id of the DofObject . 更多... | |
processor_id_type | _processor_id |
The processor_id of the DofObject . 更多... | |
index_buffer_t | _idx_buf |
静态 Private 属性 | |
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. 更多... | |
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.
在文件 dof_object.h 第 54 行定义.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
在文件 reference_counter.h 第 119 行定义.
|
private |
在文件 dof_object.h 第 674 行定义.
|
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] *
在文件 dof_object.h 第 673 行定义.
|
inlineprotected |
Constructor.
Protected so that you can't instantiate one of these except as a part of a Node or Elem.
在文件 dof_object.h 第 722 行定义.
参考 invalidate().
参考自 construct().
|
default |
Destructor.
|
private |
"Copy"-constructor.
Does not copy old_dof_object, but leaves it null in the new object.
在文件 dof_object.C 第 35 行定义.
参考 dof_number(), n_comp(), n_systems(), n_var_groups() , 以及 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
.
在文件 dof_object.C 第 490 行定义.
参考 _idx_buf, invalid_id , 以及 n_extra_integers().
参考自 add_extra_integers().
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.
在文件 dof_object.C 第 542 行定义.
参考 _idx_buf, add_extra_integers() , 以及 n_extra_integers().
void libMesh::DofObject::add_system | ( | ) |
Adds an additional system to the DofObject
.
在文件 dof_object.C 第 195 行定义.
参考 _idx_buf, has_extra_integers(), n_systems(), n_var_groups(), n_vars() , 以及 set_n_systems().
|
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.
在文件 dof_object.h 第 793 行定义.
参考 set_n_systems().
void libMesh::DofObject::clear_old_dof_object | ( | ) |
Sets the old_dof_object
to nullptr.
在文件 dof_object.C 第 128 行定义.
参考 old_dof_object.
参考自 operator=(), set_old_dof_object() , 以及 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.
在文件 dof_object.h 第 736 行定义.
参考 DofObject().
参考自 operator=(), set_old_dof_object() , 以及 unpack_indexing().
void libMesh::DofObject::debug_buffer | ( | ) | const |
Print our buffer for debugging.
在文件 dof_object.C 第 660 行定义.
参考 _idx_buf , 以及 libMesh::out.
|
staticinherited |
在文件 reference_counter.C 第 100 行定义.
参考 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.
在文件 dof_object.h 第 1025 行定义.
参考 n_comp(), n_comp_group(), n_systems(), n_vars() , 以及 var_to_vg_and_offset().
参考自 libMesh::DofMap::_node_dof_indices(), libMesh::DofMap::distribute_dofs(), DofObject(), libMesh::DofMap::old_dof_indices(), operator=(), print_dof_info(), set_dof_number() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
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.
在文件 dof_object.h 第 1046 行定义.
参考 _idx_buf, invalid_id, n_systems(), n_var_groups(), n_vars() , 以及 start_idx().
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
在文件 reference_counter.C 第 94 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter.
|
inlineprivate |
The ending index for system s
.
在文件 dof_object.h 第 1253 行定义.
参考 _idx_buf, n_pseudo_systems() , 以及 n_systems().
参考自 n_var_groups() , 以及 set_n_vars_per_group().
|
inlineprivate |
The ending index for an extra_integers pseudosystem.
在文件 dof_object.h 第 1280 行定义.
参考 _idx_buf , 以及 has_extra_integers().
|
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.
在文件 dof_object.h 第 1139 行定义.
参考 _idx_buf, n_extra_integers(), n_systems() , 以及 start_idx_ints().
|
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
.
在文件 dof_object.h 第 1095 行定义.
参考 _idx_buf, n_extra_integers(), n_systems() , 以及 start_idx_ints().
|
staticinherited |
Gets a string containing the reference information.
在文件 reference_counter.C 第 47 行定义.
参考 libMesh::ReferenceCounter::_counts.
参考自 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.
在文件 dof_object.h 第 96 行定义.
参考 old_dof_object.
参考自 operator=().
|
inline |
在文件 dof_object.h 第 97 行定义.
参考 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.
在文件 dof_object.h 第 104 行定义.
参考 old_dof_object.
参考自 libMesh::DofMap::old_dof_indices().
|
inline |
在文件 dof_object.h 第 110 行定义.
参考 old_dof_object.
|
inline |
true
if any system has variables which have been assigned, false
otherwise. 在文件 dof_object.h 第 1219 行定义.
参考 libMesh::invalid_uint, n_systems() , 以及 n_vars().
|
inline |
Returns whether extra integers are associated to the DofObject
.
在文件 dof_object.h 第 1181 行定义.
参考 _idx_buf.
参考自 add_system(), end_idx_ints(), set_n_vars_per_group() , 以及 start_idx_ints().
|
inline |
id
for this DofObject
在文件 dof_object.h 第 823 行定义.
参考 _id.
参考自 libMesh::CompareDofObjectsByID::operator()(), libMesh::CompareDofObjectsByPIDAndThenID::operator()(), print_dof_info() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
inlineprotectednoexceptinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
在文件 reference_counter.h 第 183 行定义.
参考 libMesh::err.
参考自 libMesh::ReferenceCountedObject< SparseMatrix< T > >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
在文件 reference_counter.h 第 207 行定义.
参考 libMesh::err.
参考自 libMesh::ReferenceCountedObject< SparseMatrix< T > >::~ReferenceCountedObject().
|
inline |
Invalidates all the indices for this DofObject
.
在文件 dof_object.h 第 783 行定义.
参考 invalidate_dofs(), invalidate_id() , 以及 invalidate_processor_id().
参考自 DofObject().
|
inline |
Sets all degree of freedom numbers to invalid_id
.
在文件 dof_object.h 第 746 行定义.
参考 invalid_id, n_comp_group(), n_systems(), n_var_groups() , 以及 set_vg_dof_base().
参考自 invalidate().
|
inline |
Sets the id to invalid_id
.
在文件 dof_object.h 第 767 行定义.
参考 invalid_id , 以及 set_id().
参考自 invalidate().
|
inline |
Sets the processor id to invalid_processor_id
.
在文件 dof_object.h 第 775 行定义.
参考 invalid_processor_id , 以及 processor_id().
参考自 invalidate().
|
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
. 在文件 dof_object.h 第 995 行定义.
参考 n_comp_group(), n_systems(), n_vars() , 以及 var_to_vg().
参考自 libMesh::DofMap::distribute_dofs(), dof_number(), DofObject(), n_dofs(), operator=(), print_dof_info(), set_dof_number(), set_n_vars_per_group() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
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
. 在文件 dof_object.h 第 1008 行定义.
参考 _idx_buf, n_systems(), n_var_groups(), ncv_magic , 以及 start_idx().
参考自 libMesh::DofMap::_node_dof_indices(), dof_number(), invalidate_dofs(), n_comp(), libMesh::DofMap::old_dof_indices(), set_dof_number(), set_n_comp_group(), set_n_vars_per_group() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
inline |
s
for this object. Optionally only counts degrees of freedom for variable number var
在文件 dof_object.h 第 801 行定义.
参考 libMesh::invalid_uint, n_comp(), n_systems() , 以及 n_vars().
|
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.
在文件 dof_object.h 第 1163 行定义.
参考 _idx_buf , 以及 start_idx_ints().
参考自 add_extra_integers(), get_extra_datum(), get_extra_integer(), set_extra_datum(), set_extra_integer(), set_n_systems() , 以及 set_n_vars_per_group().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
在文件 reference_counter.h 第 85 行定义.
参考 libMesh::ReferenceCounter::_n_objects.
参考自 libMesh::LibMeshInit::~LibMeshInit().
|
inline |
DofObject
: n_systems(), plus one iff this->has_extra_integers()
在文件 dof_object.h 第 940 行定义.
参考 _idx_buf , 以及 std::abs().
参考自 end_idx(), set_extra_datum() , 以及 set_extra_integer().
|
inline |
DofObject
在文件 dof_object.h 第 930 行定义.
参考 _idx_buf.
参考自 add_system(), dof_number(), DofObject(), end_idx(), get_extra_datum(), get_extra_integer(), 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(), 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() , 以及 vg_dof_base().
|
inline |
VariableGroup
variable groups associated with system s
for this DofObject
在文件 dof_object.h 第 950 行定义.
参考 end_idx(), n_systems() , 以及 start_idx().
参考自 add_system(), dof_number(), DofObject(), invalidate_dofs(), n_comp_group(), n_vars(), operator=(), set_n_comp_group(), set_n_systems(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects(), set_vg_dof_base(), var_to_vg(), var_to_vg_and_offset() , 以及 vg_dof_base().
|
inline |
Variable
variables associated with VariableGroup
vg
in system s
for this DofObject
在文件 dof_object.h 第 960 行定义.
参考 _idx_buf, n_systems(), n_var_groups(), ncv_magic_exp , 以及 start_idx().
参考自 add_system(), libMesh::DofMap::distribute_dofs(), dof_number(), DofObject(), has_dofs(), n_comp(), n_dofs(), n_vars(), 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(), var_to_vg() , 以及 var_to_vg_and_offset().
|
inline |
在文件 dof_object.h 第 977 行定义.
参考 n_systems(), n_var_groups() , 以及 n_vars().
Deep-copying assignment operator.
在文件 dof_object.C 第 77 行定义.
参考 _id, _idx_buf, _processor_id, _unique_id, clear_old_dof_object(), construct(), dof_number(), get_old_dof_object(), n_comp(), n_systems(), n_var_groups(), n_vars() , 以及 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.
在文件 dof_object.C 第 642 行定义.
参考 _idx_buf , 以及 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?
在文件 dof_object.C 第 560 行定义.
参考 _idx_buf , 以及 old_dof_object.
void libMesh::DofObject::print_dof_info | ( | ) | const |
Print out info for debugging.
在文件 dof_object.C 第 670 行定义.
参考 dof_number(), id(), n_comp(), n_systems(), n_vars() , 以及 libMesh::out.
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
在文件 reference_counter.C 第 81 行定义.
参考 libMesh::ReferenceCounter::_enable_print_counter , 以及 libMesh::ReferenceCounter::get_info().
参考自 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.
在文件 dof_object.h 第 898 行定义.
参考 _processor_id.
参考自 libMesh::DofMap::distribute_dofs(), invalidate_processor_id(), libMesh::CompareDofObjectsByPIDAndThenID::operator()(), processor_id() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
inline |
在文件 dof_object.h 第 906 行定义.
参考 _processor_id.
|
inline |
|
inline |
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
.
在文件 dof_object.C 第 454 行定义.
参考 _idx_buf, dof_number(), invalid_id, n_comp(), n_comp_group(), n_systems(), n_vars(), start_idx(), system_var_to_vg_var() , 以及 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.
在文件 dof_object.h 第 1119 行定义.
参考 _idx_buf, n_extra_integers(), n_pseudo_systems() , 以及 start_idx_ints().
|
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
.
在文件 dof_object.h 第 1079 行定义.
参考 _idx_buf, n_extra_integers(), n_pseudo_systems() , 以及 start_idx_ints().
|
inline |
id
for this DofObject
as a writable reference. 在文件 dof_object.h 第 831 行定义.
参考 _id.
参考自 invalidate_id() , 以及 set_id().
|
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
.
在文件 dof_object.C 第 385 行定义.
参考 n_systems(), n_vars(), set_n_comp_group() , 以及 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
.
在文件 dof_object.C 第 397 行定义.
参考 _idx_buf, invalid_id, n_comp_group(), n_systems(), n_var_groups(), n_vars(), ncv_magic , 以及 start_idx().
参考自 set_n_comp(), set_n_vars_per_group() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
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.
在文件 dof_object.C 第 150 行定义.
参考 _idx_buf, n_extra_integers(), n_systems(), n_var_groups(), n_vars() , 以及 start_idx_ints().
参考自 add_system() , 以及 clear_dofs().
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)).
在文件 dof_object.C 第 247 行定义.
参考 _idx_buf, end_idx(), get_extra_integer(), has_extra_integers(), invalid_id, n_comp(), n_comp_group(), n_extra_integers(), n_systems(), n_var_groups(), n_vars(), ncv_magic, set_n_comp_group() , 以及 start_idx().
void libMesh::DofObject::set_old_dof_object | ( | ) |
Sets the old_dof_object
to a copy of this
.
在文件 dof_object.C 第 135 行定义.
参考 clear_old_dof_object(), construct() , 以及 old_dof_object.
|
inline |
unique_id
for this DofObject
as a writable reference. Deprecated; use the API taking an input instead. 在文件 dof_object.h 第 852 行定义.
参考 _unique_id.
|
inline |
Sets the unique_id
for this DofObject
.
在文件 dof_object.h 第 865 行定义.
参考 _unique_id , 以及 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.
在文件 dof_object.h 第 1290 行定义.
参考 _idx_buf, n_systems(), n_var_groups(), start_idx() , 以及 vg_dof_base().
参考自 invalidate_dofs() , 以及 libMesh::DofMap::set_nonlocal_dof_objects().
|
inlineprivate |
The starting index for system s
.
在文件 dof_object.h 第 1242 行定义.
参考 _idx_buf, std::abs() , 以及 n_systems().
参考自 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() , 以及 vg_dof_base().
|
inlineprivate |
The starting index for an extra_integers pseudosystem.
在文件 dof_object.h 第 1266 行定义.
参考 _idx_buf, has_extra_integers() , 以及 n_systems().
参考自 get_extra_datum(), get_extra_integer(), n_extra_integers(), set_extra_datum(), set_extra_integer() , 以及 set_n_systems().
|
inlineprivate |
Utility function - for variable var
in system s
, figure out what variable group it lives in.
在文件 dof_object.h 第 1352 行定义.
参考 n_vars().
参考自 set_dof_number().
|
inline |
unique_id
for this DofObject
在文件 dof_object.h 第 839 行定义.
参考 _unique_id, invalid_unique_id , 以及 valid_unique_id().
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.
在文件 dof_object.C 第 595 行定义.
参考 _idx_buf, std::abs(), clear_old_dof_object(), construct() , 以及 old_dof_object.
|
static |
If we have indices packed into an buffer for communications, how much of that buffer applies to this dof object?
在文件 dof_object.C 第 575 行定义.
|
inline |
true
if this DofObject
has a valid id
set, false
otherwise. 在文件 dof_object.h 第 878 行定义.
参考 _id , 以及 invalid_id.
|
inline |
true
if this DofObject
has a valid id
set, false
otherwise. 在文件 dof_object.h 第 922 行定义.
参考 _processor_id , 以及 invalid_processor_id.
|
inline |
true
if this DofObject
has a valid unique_id
set, false
otherwise. 在文件 dof_object.h 第 886 行定义.
参考 _unique_id , 以及 invalid_unique_id.
参考自 unique_id().
|
inlineprivate |
Utility function - for variable var
in system s
, figure out what variable group it lives in.
在文件 dof_object.h 第 1334 行定义.
参考 n_var_groups() , 以及 n_vars().
参考自 n_comp(), set_dof_number() , 以及 set_n_comp().
|
inline |
var
on system s
associated with this DofObject
在文件 dof_object.h 第 1193 行定义.
参考 n_var_groups() , 以及 n_vars().
参考自 libMesh::DofMap::_node_dof_indices() , 以及 dof_number().
|
inline |
VariableGroup
DoF indices are indexed as id = base + var_in_vg*ncomp + comp This method allows for direct access to the base.
在文件 dof_object.h 第 1310 行定义.
参考 _idx_buf, n_systems(), n_var_groups() , 以及 start_idx().
参考自 libMesh::DofMap::set_nonlocal_dof_objects() , 以及 set_vg_dof_base().
|
staticprotectedinherited |
Actually holds the data.
在文件 reference_counter.h 第 124 行定义.
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
在文件 reference_counter.h 第 143 行定义.
参考自 libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info() , 以及 libMesh::ReferenceCounter::print_info().
|
private |
The id
of the DofObject
.
在文件 dof_object.h 第 578 行定义.
参考自 id(), operator=(), set_id() , 以及 valid_id().
|
private |
在文件 dof_object.h 第 675 行定义.
参考自 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() , 以及 vg_dof_base().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
在文件 reference_counter.h 第 137 行定义.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
在文件 reference_counter.h 第 132 行定义.
参考自 libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter() , 以及 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??
在文件 dof_object.h 第 589 行定义.
参考自 operator=(), processor_id() , 以及 valid_processor_id().
|
private |
A globally unique id, guaranteed not to change as the mesh is repartitioned or adapted.
在文件 dof_object.h 第 572 行定义.
参考自 operator=(), set_unique_id(), unique_id() , 以及 valid_unique_id().
|
static |
An invalid id
to distinguish an uninitialized DofObject
.
在文件 dof_object.h 第 477 行定义.
参考自 libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), add_extra_integers(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::assert_no_nodes_missed(), 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::DofMap::gather_constraints(), invalidate_dofs(), invalidate_id(), libMesh::DofMap::old_dof_indices(), libMesh::DofMap::SCALAR_dof_indices(), set_dof_number(), set_n_comp_group(), set_n_vars_per_group(), libMesh::DofMap::set_nonlocal_dof_objects() , 以及 valid_id().
|
static |
An invalid processor_id
to distinguish DoFs that have not been assigned to a processor.
在文件 dof_object.h 第 488 行定义.
参考自 invalidate_processor_id(), libMesh::SparsityPattern::Build::operator()(), libMesh::DofMap::set_nonlocal_dof_objects() , 以及 valid_processor_id().
|
static |
An invalid unique_id
to distinguish an uninitialized DofObject
.
在文件 dof_object.h 第 482 行定义.
参考自 unique_id() , 以及 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
在文件 dof_object.h 第 686 行定义.
参考自 n_comp_group(), set_n_comp_group() , 以及 set_n_vars_per_group().
|
staticprivate |
在文件 dof_object.h 第 687 行定义.
参考自 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.
在文件 dof_object.h 第 88 行定义.
参考自 clear_old_dof_object(), get_old_dof_object(), get_old_dof_object_ref(), operator=(), pack_indexing(), packed_indexing_size(), set_old_dof_object() , 以及 unpack_indexing().