Liebe Gitlab-Nutzerin, 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

BoundaryCondition.h 4.37 KB
Newer Older
 Peter Gottschling committed Feb 15, 2008 1 2 3 4 // ============================================================================ // == == // == AMDiS - Adaptive multidimensional simulations == // == ==  Thomas Witkowski committed Dec 16, 2010 5 // == http://www.amdis-fem.org ==  Peter Gottschling committed Feb 15, 2008 6 7 // == == // ============================================================================  Thomas Witkowski committed Dec 16, 2010 8 9 10 11 12 13 14 15 16 17 18 19 // // Software License for AMDiS // // Copyright (c) 2010 Dresden University of Technology // All rights reserved. // Authors: Simon Vey, Thomas Witkowski et al. // // This file is part of AMDiS // // See also license.opensource.txt in the distribution.  Peter Gottschling committed Feb 15, 2008 20 21 22 23 24 25 26 27  /** \file BoundaryCondition.h */ #ifndef AMDIS_BOUNDARYCONDITION_H #define AMDIS_BOUNDARYCONDITION_H #include "Boundary.h" #include "FiniteElemSpace.h"  Peter Gottschling committed Apr 28, 2009 28 #include "AMDiS_fwd.h"  Peter Gottschling committed Feb 15, 2008 29 30 31 32 33 34 35 36 37 38  namespace AMDiS { /** * \ingroup Assembler * * \brief * Sub class of BoundaryCondition. Local boundary conditions are filled * while mesh traversal. */  Thomas Witkowski committed May 07, 2009 39  class BoundaryCondition  Peter Gottschling committed Feb 15, 2008 40 41  { public:  Thomas Witkowski committed May 07, 2009 42  /// Constructor.  Peter Gottschling committed Feb 15, 2008 43  BoundaryCondition(BoundaryType type,  Thomas Witkowski committed May 31, 2010 44 45  const FiniteElemSpace *rowFeSpace_, const FiniteElemSpace *colFeSpace_ = NULL)  Peter Gottschling committed Feb 15, 2008 46  : boundaryType(type),  Thomas Witkowski committed May 31, 2010 47 48  rowFeSpace(rowFeSpace_), colFeSpace(colFeSpace_)  Peter Gottschling committed Feb 15, 2008 49  {  Thomas Witkowski committed May 31, 2010 50 51  if (!colFeSpace) colFeSpace = rowFeSpace;  Thomas Witkowski committed May 07, 2009 52  }  Peter Gottschling committed Feb 15, 2008 53   Thomas Witkowski committed May 07, 2009 54  /// Returns \ref boundaryType.  Thomas Witkowski committed May 25, 2009 55 56  inline BoundaryType getBoundaryType() {  Thomas Witkowski committed May 07, 2009 57 58  return boundaryType; }  Peter Gottschling committed Feb 15, 2008 59   Thomas Witkowski committed May 31, 2010 60 61  /// Returns \ref rowFeSpace. inline const FiniteElemSpace *getRowFeSpace()  Thomas Witkowski committed May 25, 2009 62  {  Thomas Witkowski committed May 31, 2010 63  return rowFeSpace;  Thomas Witkowski committed May 07, 2009 64  }  Peter Gottschling committed Feb 15, 2008 65   Thomas Witkowski committed May 31, 2010 66 67  /// Returns \ref rowFeSpace. inline const FiniteElemSpace *getColFeSpace()  Thomas Witkowski committed May 25, 2009 68  {  Thomas Witkowski committed May 31, 2010 69  return colFeSpace;  Thomas Witkowski committed May 07, 2009 70  }  Peter Gottschling committed Feb 15, 2008 71   Thomas Witkowski committed May 07, 2009 72  virtual void initMatrix(DOFMatrix*) {}  Peter Gottschling committed Feb 15, 2008 73   Thomas Witkowski committed May 07, 2009 74  virtual void exitMatrix(DOFMatrix*) {}  Peter Gottschling committed Feb 15, 2008 75   Thomas Witkowski committed May 07, 2009 76  virtual void initVector(DOFVectorBase*) {}  Peter Gottschling committed Feb 15, 2008 77   Thomas Witkowski committed May 07, 2009 78  virtual void exitVector(DOFVectorBase*) {}  Peter Gottschling committed Feb 15, 2008 79   Thomas Witkowski committed May 07, 2009 80 81  /// Destructor. virtual ~BoundaryCondition() {}  Peter Gottschling committed Feb 15, 2008 82   83 84 85  /// Adds the local boundary condition for elInfo to object. /// The dofIndices and localBound as well as nBasFcts are determined by // the calling BoundaryManager.  Peter Gottschling committed Feb 15, 2008 86 87 88 89  virtual void fillBoundaryCondition(DOFMatrix *matrix, ElInfo *elInfo, const DegreeOfFreedom *dofIndices, const BoundaryType *localBound,  Thomas Witkowski committed May 07, 2009 90  int nBasFcts) {}  Peter Gottschling committed Feb 15, 2008 91   92 93 94  /// Adds the local boundary condition for elInfo to vector. /// The dofIndices and localBound as well as nBasFcts are determined by /// the calling BoundaryManager.  Peter Gottschling committed Feb 15, 2008 95 96 97 98  virtual void fillBoundaryCondition(DOFVectorBase *vector, ElInfo *elInfo, const DegreeOfFreedom *dofIndices, const BoundaryType *localBound,  Thomas Witkowski committed May 07, 2009 99  int nBasFcts) {}  Peter Gottschling committed Feb 15, 2008 100   Thomas Witkowski committed May 07, 2009 101  /// Returns the boundary residual for the given element. Called by estimator.  Peter Gottschling committed Feb 15, 2008 102 103  virtual double boundResidual(ElInfo *elInfo, DOFMatrix *matrix,  Thomas Witkowski committed May 07, 2009 104 105 106 107  const DOFVectorBase *dv) { return 0.0; }  Peter Gottschling committed Feb 15, 2008 108   109 110  /// Returns whether the condition must be treated as Dirichlet condition /// while assemblage.  Thomas Witkowski committed May 25, 2009 111 112  virtual bool isDirichlet() {  Thomas Witkowski committed May 07, 2009 113 114  return false; }  Peter Gottschling committed Feb 15, 2008 115   Thomas Witkowski committed Oct 14, 2009 116 117 118 119 120 121  /// Returns whether the boundary condition is a periodic condition or not. virtual bool isPeriodic() { return false; }  122 123 124 125 126 127  /// In some situations it may be required to set Dirichlet boundary /// conditions, but not to apply them to the matrix. This is for example the /// case, if the boundary condition is set to a couple matrix. Then, the /// boundary conditions must be applied to the couple matrix, but they are /// set to all matrices in this row (to ensure that there are no other /// element entries in the Dirichlet boundary condition rows).  Thomas Witkowski committed May 25, 2009 128 129 130 131 132  virtual bool applyBoundaryCondition() { return true; }  Peter Gottschling committed Feb 15, 2008 133  protected:  134 135 136  /// Speciefies for which parts of the boundary the condition holds. /// This id corresponds to the boundary numbers spcified in the /// macro file.  Peter Gottschling committed Feb 15, 2008 137 138  BoundaryType boundaryType;  Thomas Witkowski committed May 07, 2009 139  /// FiniteElemSpace for this BoundaryCondition.  Thomas Witkowski committed May 31, 2010 140  const FiniteElemSpace *rowFeSpace;  Peter Gottschling committed Feb 15, 2008 141   Thomas Witkowski committed May 07, 2009 142  /// FiniteElemSpace for this BoundaryCondition.  Thomas Witkowski committed May 31, 2010 143  const FiniteElemSpace *colFeSpace;  Peter Gottschling committed Feb 15, 2008 144 145 146 147 148  }; } #endif