$extrastylesheet
libMesh::BuildProjectionList Class Reference

List of all members.

Public Member Functions

 BuildProjectionList (const System &system_in)
 BuildProjectionList (BuildProjectionList &other, Threads::split)
void unique ()
void operator() (const ConstElemRange &range)
void join (const BuildProjectionList &other)

Public Attributes

std::vector< dof_id_typesend_list

Private Attributes

const Systemsystem

Detailed Description

This class builds the send_list of old dof indices whose coefficients are needed to perform a projection. This may be executed in parallel on multiple threads. The end result is a send_list vector which is unsorted and may contain duplicate elements. The unique() method can be used to sort and create a unique list.

Definition at line 81 of file system_projection.C.


Constructor & Destructor Documentation

Definition at line 87 of file system_projection.C.

                                                :
    system(system_in),
    send_list()
  {}

Definition at line 92 of file system_projection.C.

                                                                 :
    system(other.system),
    send_list()
  {}

Member Function Documentation

Definition at line 1261 of file system_projection.C.

References send_list.

{
  // Joining simply requires I add the dof indices from the other object
  this->send_list.insert(this->send_list.end(),
                         other.send_list.begin(),
                         other.send_list.end());
}
void libMesh::BuildProjectionList::operator() ( const ConstElemRange range)

Definition at line 1184 of file system_projection.C.

{
  libmesh_not_implemented();
}

Definition at line 1163 of file system_projection.C.

References send_list, and libMesh::swap().

Referenced by libMesh::System::project_vector().

{
  // Sort the send list.  After this duplicated
  // elements will be adjacent in the vector
  std::sort(this->send_list.begin(),
            this->send_list.end());

  // Now use std::unique to remove duplicate entries
  std::vector<dof_id_type>::iterator new_end =
    std::unique (this->send_list.begin(),
                 this->send_list.end());

  // Remove the end of the send_list.  Use the "swap trick"
  // from Effective STL
  std::vector<dof_id_type>
    (this->send_list.begin(), new_end).swap (this->send_list);
}

Member Data Documentation

Definition at line 84 of file system_projection.C.


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