Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer,
es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Die Konten der externen Nutzer:innen sind über den Reiter "Standard" erreichbar.
Die Administratoren


Dear Gitlab user,
it is now possible to log in to our service using the ZIH login/LDAP. The accounts of external users can be accessed via the "Standard" tab.
The administrators

RefinementManager3d.h 3.24 KB
Newer Older
1 2 3 4 5 6
// ============================================================================
// ==                                                                        ==
// == AMDiS - Adaptive multidimensional simulations                          ==
// ==                                                                        ==
// ============================================================================
// ==                                                                        ==
7
// ==  TU Dresden                                                            ==
8
// ==                                                                        ==
9 10 11
// ==  Institut fr Wissenschaftliches Rechnen                               ==
// ==  Zellescher Weg 12-14                                                  ==
// ==  01069 Dresden                                                         ==
12 13 14 15
// ==  germany                                                               ==
// ==                                                                        ==
// ============================================================================
// ==                                                                        ==
16
// ==  https://gforge.zih.tu-dresden.de/projects/amdis/                      ==
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
// ==                                                                        ==
// ============================================================================

/** \file RefinementManager3d.h */

#ifndef AMDIS_REFINEMENT_MANAGER_3D_H
#define AMDIS_REFINEMENT_MANAGER_3D_H

namespace AMDiS {

  /** \ingroup Adaption 
   * \brief
   * Implements a RefinementManager for 3-dimensional meshes.
   */
  class RefinementManager3d : public RefinementManager
  {
  public:
34
    /// Calls base class constructor.
35 36
    RefinementManager3d() 
      : RefinementManager()
Thomas Witkowski's avatar
Thomas Witkowski committed
37
    {}
38

39
    /// destructor 
Thomas Witkowski's avatar
Thomas Witkowski committed
40
    virtual ~RefinementManager3d() {}
41 42

  protected:
43
    /// Used by \ref setNewCoords
44 45
    int newCoordsFct(ElInfo *el_info);

46
    /// Implements RefinementManager::setNewCoords
47
    void setNewCoords(int macroEl = -1);
48 49

    /** \brief
50 51 52 53 54 55 56
     * Gets the elements around the refinement edge with vertices node[0] and
     * node[1]. Refines those elements at this edge that are not compatible 
     * devisible. The function returns 1 if the domain's boundary is reached
     * while looping around the refinement edge, otherwise 0.
     * 
     * \param[in] direction   Determines the direction of the first neighbour
     *  
57
     */
58 59 60 61 62
    int getRefinePatch(ElInfo **el_info, 
		       DegreeOfFreedom *edge[2], 
		       int direction,
		       RCNeighbourList* refineList, 
		       int *n_neigh);
63

64
    /// Refines all elements in the patch.
65 66 67
    DegreeOfFreedom refinePatch(DegreeOfFreedom *edge[2], RCNeighbourList* refineList,
				int n_neigh, bool bound);

68
    /// Implements RefinementManager::refineFunction.
69 70
    ElInfo* refineFunction(ElInfo* el_info);

71
    /// Refines one Tetrahedron.
72 73 74
    void bisectTetrahedron(RCNeighbourList* refineList, int index,
			   DegreeOfFreedom *dof[3], DegreeOfFreedom *edge[2]);

75
    /// Used by \ref bisectTetrahedron
76 77 78
    void fillPatchConnectivity(RCNeighbourList* ref_list, int index);

  private:
79
    /// Refinement patch
80 81 82 83 84 85
    static RCNeighbourList* refList;
  };

}

#endif // AMDIS_REFINEMENT_MANAGER_3D_H