FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
fei_set_dof_mappings.hpp
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright 2009 Sandia Corporation. */
3/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4/* non-exclusive license for use of this work by or on behalf */
5/* of the U.S. Government. Export of this program may require */
6/* a license from the United States Government. */
7/*--------------------------------------------------------------------*/
8
9#ifndef _fei_set_dof_mappings_hpp_
10#define _fei_set_dof_mappings_hpp_
11
12#include <fei_macros.hpp>
13
14#include <fei_DofMapper.hpp>
15
16namespace fei {
17
18template<class LocalOrdinal,class GlobalOrdinal,class DofOrder>
19void set_dof_mappings(GlobalOrdinal first_index,
21{
24
25 typename DofMap::iterator
26 d_iter = dof_mapper.begin_dof(), d_end = dof_mapper.end_dof();
27
28 IdxMap& idxmap = dof_mapper.get_idx_dof_map();
29
30 GlobalOrdinal index = first_index;
31 for(; d_iter != d_end; ++d_iter) {
32 LocalOrdinal fieldsize = dof_mapper.getFieldSize(d_iter->first.field());
33 d_iter->second = index;
34 idxmap.insert(std::make_pair(index, &(d_iter->first)));
35 index += fieldsize;
36 }
37 dof_mapper.set_maps_are_valid(true);
38}
39
40}//namespace fei
41
42#endif
43
DofMap::const_iterator end_dof() const
void set_maps_are_valid(bool flag)
LocalOrdinal getFieldSize(LocalOrdinal field) const
std::map< Dof< LocalOrdinal, GlobalOrdinal >, GlobalOrdinal, DofOrder > DofMap
const IdxMap & get_idx_dof_map() const
std::map< GlobalOrdinal, const Dof< LocalOrdinal, GlobalOrdinal > * > IdxMap
DofMap::const_iterator begin_dof() const
void set_dof_mappings(GlobalOrdinal first_index, fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder > &dof_mapper)