PPL Logo

FEM_Entity_Types< T > Class Template Reference
[ParFUM Unstructured Mesh Framework]

This class describes several different types of a certain kind of entity. More...

#include <fem_mesh.h>

Inheritance diagram for FEM_Entity_Types< T >:

Inheritance graph
[legend]
Collaboration diagram for FEM_Entity_Types< T >:

Collaboration graph
[legend]

Public Member Functions

 FEM_Entity_Types (const FEM_Mesh &mesh_, const char *name_)
void pup (PUP::er &p)
 ~FEM_Entity_Types ()
int size (void) const
 Return the number of different entity types.
const T & get (int type, const char *caller="") const
 Return a read-only copy of this type, or else abort if type isn't set.
bool has (int type) const
 Return true if we have a type t, and false otherwise.
T & set (int type, const char *caller="")
 Return a writable copy of this type, calling new T(mesh) if it's not there.
T & operator[] (int type)
 Read-only and write-only operator[]'s:.
const T & operator[] (int type) const
 FEM_Entity_Types (const FEM_Mesh &mesh_, const char *name_)
void pup (PUP::er &p)
 ~FEM_Entity_Types ()
int size (void) const
 Return the number of different entity types.
const T & get (int type, const char *caller="") const
 Return a read-only copy of this type, or else abort if type isn't set.
bool has (int type) const
 Return true if we have a type t, and false otherwise, can return true for empty entity.
bool hasNonEmpty (int type) const
 Return true if we have a type t, and the type contains more than zero entities.
T & set (int type, const char *caller="")
 Return a writable copy of this type, calling new T(mesh) if it's not there.
T & operator[] (int type)
 Read-only and write-only operator[]'s:.
const T & operator[] (int type) const

Private Attributes

CkVec< T * > types
const FEM_Meshmesh
const char * name
CkVec< T * > types
const FEM_Meshmesh
const char * name

Detailed Description

template<class T>
class FEM_Entity_Types< T >

This class describes several different types of a certain kind of entity.

This class describes several different types of a certain kind of entity.

For example, there might be a FEM_Entity_Types<FEM_Elem> that lists the different kinds of element.

This class exists to provide a nice "demand-creation" semantics, where the user assigns array indices (the e in FEM_ELEM+e), so we don't know that we're setting the first copy when we set it.

It's not clear this class has any right to exist--it should either be folded into FEM_Mesh or generalized into a "userNumberedVec" or some such.

Definition at line 1074 of file fem_mesh.h.


Constructor & Destructor Documentation

template<class T>
FEM_Entity_Types< T >::FEM_Entity_Types ( const FEM_Mesh mesh_,
const char *  name_ 
) [inline]

Definition at line 1080 of file fem_mesh.h.

template<class T>
FEM_Entity_Types< T >::~FEM_Entity_Types (  )  [inline]

Definition at line 1093 of file fem_mesh.h.

template<class T>
FEM_Entity_Types< T >::FEM_Entity_Types ( const FEM_Mesh mesh_,
const char *  name_ 
) [inline]

Definition at line 1214 of file ParFUM_internals.h.

template<class T>
FEM_Entity_Types< T >::~FEM_Entity_Types (  )  [inline]

Definition at line 1227 of file ParFUM_internals.h.


Member Function Documentation

template<class T>
void FEM_Entity_Types< T >::pup ( PUP::er p  )  [inline]

Definition at line 1082 of file fem_mesh.h.

Referenced by FEM_Mesh::pup().

Here is the caller graph for this function:

template<class T>
int FEM_Entity_Types< T >::size ( void   )  const [inline]

template<class T>
const T& FEM_Entity_Types< T >::get ( int  type,
const char *  caller = "" 
) const [inline]

template<class T>
bool FEM_Entity_Types< T >::has ( int  type  )  const [inline]

template<class T>
T& FEM_Entity_Types< T >::set ( int  type,
const char *  caller = "" 
) [inline]

Return a writable copy of this type, calling new T(mesh) if it's not there.

Definition at line 1116 of file fem_mesh.h.

Referenced by FEM_Mesh::copyShape(), FEM_master_parallel_part(), FEM_Mesh_assemble(), FEM_Mesh::lookup(), and splitter::separateSparse().

Here is the caller graph for this function:

template<class T>
T& FEM_Entity_Types< T >::operator[] ( int  type  )  [inline]

Read-only and write-only operator[]'s:.

Definition at line 1127 of file fem_mesh.h.

template<class T>
const T& FEM_Entity_Types< T >::operator[] ( int  type  )  const [inline]

Definition at line 1128 of file fem_mesh.h.

template<class T>
void FEM_Entity_Types< T >::pup ( PUP::er p  )  [inline]

Definition at line 1216 of file ParFUM_internals.h.

template<class T>
int FEM_Entity_Types< T >::size ( void   )  const [inline]

Return the number of different entity types.

Definition at line 1233 of file ParFUM_internals.h.

template<class T>
const T& FEM_Entity_Types< T >::get ( int  type,
const char *  caller = "" 
) const [inline]

Return a read-only copy of this type, or else abort if type isn't set.

Definition at line 1236 of file ParFUM_internals.h.

template<class T>
bool FEM_Entity_Types< T >::has ( int  type  )  const [inline]

Return true if we have a type t, and false otherwise, can return true for empty entity.

Definition at line 1244 of file ParFUM_internals.h.

template<class T>
bool FEM_Entity_Types< T >::hasNonEmpty ( int  type  )  const [inline]

Return true if we have a type t, and the type contains more than zero entities.

Definition at line 1249 of file ParFUM_internals.h.

template<class T>
T& FEM_Entity_Types< T >::set ( int  type,
const char *  caller = "" 
) [inline]

Return a writable copy of this type, calling new T(mesh) if it's not there.

Definition at line 1254 of file ParFUM_internals.h.

template<class T>
T& FEM_Entity_Types< T >::operator[] ( int  type  )  [inline]

Read-only and write-only operator[]'s:.

Definition at line 1265 of file ParFUM_internals.h.

template<class T>
const T& FEM_Entity_Types< T >::operator[] ( int  type  )  const [inline]

Definition at line 1266 of file ParFUM_internals.h.


Field Documentation

template<class T>
CkVec<T *> FEM_Entity_Types< T >::types [private]

Definition at line 1075 of file fem_mesh.h.

template<class T>
const FEM_Mesh& FEM_Entity_Types< T >::mesh [private]

Definition at line 1076 of file fem_mesh.h.

template<class T>
const char* FEM_Entity_Types< T >::name [private]

Definition at line 1077 of file fem_mesh.h.

template<class T>
CkVec<T *> FEM_Entity_Types< T >::types [private]

Definition at line 1209 of file ParFUM_internals.h.

template<class T>
const FEM_Mesh& FEM_Entity_Types< T >::mesh [private]

Definition at line 1210 of file ParFUM_internals.h.

template<class T>
const char* FEM_Entity_Types< T >::name [private]

Definition at line 1211 of file ParFUM_internals.h.


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

Generated on Mon Sep 21 08:24:12 2020 for Charm++ by  doxygen 1.5.5