ug4
ug Namespace Reference

the ug namespace More...

Namespaces

 bridge
 
 ConnectionViewer
 
 ConvectionDiffusionPlugin
 
 DemoPlugin
 
 detail
 
 DocuGen
 
 domain_wrappers
 
 Electromagnetism
 
 fieldutil
 
 grid_intersection_impl
 
 grid_unit_tests
 
 hex_rules
 
 impl
 
 IntegrationOutputObserver
 
 Jupyter
 
 Limex
 
 luashell
 
 NavierStokes
 
 node_tree
 
 oct_rules
 
 prism_rules
 
 promesh
 
 pyra_rules
 
 raster_kernels
 
 Richards
 
 script
 
 shared_rules
 
 SmallStrainMechanics
 
 swc_types
 
 TemplatePlugin
 
 tet_rules
 
 tools
 
 util
 
 vrl
 

Classes

struct  AABox
 
struct  ab
 
class  AbsoluteMarking
 marks elements above an absolute threshold (based on S. Reiter's idea) More...
 
class  ActiveSet
 Active Set method. More...
 
class  AdaptionSurfaceGridFunction
 
class  AdaptiveRegularRefiner_MultiGrid
 Specialization of IRefiner for adaptive multigrid refinement with closure. More...
 
struct  AdjustEdgeLengthDesc
 
class  AgglomeratingBase
 
class  AgglomeratingIterator
 
class  AgglomeratingPreconditioner
 
class  AgglomeratingSolver
 
class  AitkenNevilleTimex
 
class  AlgebraDebugWriter
 Debug writer for connection viewer (based on algebraic information + vector positions only) More...
 
class  AlgebraicConnection
 
class  AlgebraicConvCheck
 
class  AlgebraicSpace
 
struct  AlgebraID
 this type is used to identify distributed objects. More...
 
class  AlgebraLayouts
 Extends the HorizontalAlgebraLayouts by vertical layouts. More...
 
class  AlgebraType
 class describing the type of an algebra More...
 
class  AlphaMat_Expression
 
class  AlphaMatVec_X_Expression
 
class  AlphaVec_Expression
 
class  AnalyzingSolver
 
class  AnisotropicBalanceWeights
 The higher the volume, the higher the weight when anisotropic refinement is used... More...
 
class  APosterioriCoarsening
 
class  ApproximationSpace
 base class for approximation spaces without type of algebra or dof distribution More...
 
class  Archivar
 
struct  ArchiveInfo
 Provides custom information for different archives. More...
 
struct  AspectRatioInfo
 Holds information on the min, max, mean, and standard deviation of a sample. More...
 
class  AssembledLinearOperator
 matrix operator based on the assembling of a problem More...
 
class  AssembledMultiGridCycle
 geometric multi grid preconditioner More...
 
class  AssembledOperator
 
class  AssembledTransformingSmoother
 
class  AssemblingTuner
 The AssemblingTuner class combines tools to adapt the assembling routine. More...
 
class  AssocElemIter
 Iterator that allows to traverse associated elements of a given element. More...
 
class  AttachedElementList
 A linked list of elements living in an attachment. More...
 
class  AttachedElementListIterator
 A special iterator which allows to iterate over elements in a AttachedElementList. More...
 
class  Attachment
 A generic specialization of IAttachment. More...
 
struct  attachment_info_traits
 
struct  attachment_io_traits
 
struct  attachment_io_traits< Attachment< bool > >
 
struct  attachment_io_traits< Attachment< std::vector< T > > >
 serialization for std::vector<T> with type T - e. g. std::vector<bool> More...
 
struct  attachment_io_traits< Attachment< vector1 > >
 
struct  attachment_io_traits< Attachment< vector2 > >
 
struct  attachment_io_traits< Attachment< vector3 > >
 
struct  attachment_io_traits< Attachment< vector4 > >
 
struct  attachment_reduce_traits
 methods defined in those traits are used by ComPol_AttachmentReduce More...
 
struct  attachment_reduce_traits< double >
 
struct  attachment_reduce_traits< float >
 
struct  attachment_reduce_traits< MathVector< 1 > >
 
struct  attachment_reduce_traits< MathVector< 2 > >
 
struct  attachment_reduce_traits< MathVector< 3 > >
 
struct  attachment_reduce_traits< MathVector< 4 > >
 
struct  attachment_reduce_traits< std::vector< number > >
 
class  attachment_traits
 define the interface that enables you to use your own types as element-types in an AttachmentPipe. More...
 
class  attachment_traits< Edge *, ElementStorage< Edge > >
 
class  attachment_traits< Face *, ElementStorage< Face > >
 
class  attachment_traits< Vertex *, ElementStorage< Vertex > >
 
class  attachment_traits< Volume *, ElementStorage< Volume > >
 
struct  attachment_value_traits
 define reference and const reference types for attachment values. More...
 
struct  attachment_value_traits< bool >
 specialization of attachment_value_traits for the bool type More...
 
class  AttachmentAccessor
 Used to access data that has been attached to an attachment pipe. More...
 
class  AttachmentDataContainer
 A generic specialization of IAttachedDataContainer. More...
 
struct  AttachmentEntry
 This struct is used by AttachmentPipe in order to manage its attachments. More...
 
class  AttachmentPipe
 Handles data which has been attached to the pipe using callbacks for the element. More...
 
class  AttachmentUnequal
 This class can be used in Element callbacks. More...
 
class  AutoLinearSolver
 linear solver using abstract preconditioner interface More...
 
class  AverageComponent
 
class  BackwardGaussSeidel
 Gauss-Seidel preconditioner for the 'backward' ordering of the dofs. More...
 
class  BalanceWeightsLuaCallback
 
class  BalanceWeightsRefMarks
 
class  Base64FileWriter
 File writer allowing selective base64 encoding of arbitrary data. More...
 
class  BaseLSFS
 static interface for trial spaces More...
 
class  BaseReferenceMapping
 Base class for Reference mappings helping to implement interface. More...
 
class  BDF
 
class  BGLParallelMatrix
 
class  BiCGStab
 the BiCGStab method as a solver for linear operators More...
 
class  BidirectionalMatrix
 
class  BinaryBuffer
 A Buffer for binary data. More...
 
class  BinaryStream
 a specialzation of std::iostream, that uses a More...
 
class  BinaryStreamBuffer
 A special version of a std::streambuf, writes data directly into a buffer that is accessible at any time. More...
 
class  BinghamViscosityLinker
 Linker for the Bingham viscosity. More...
 
struct  BinomialCoefficient
 
struct  BinomialCoefficient< n, 0 >
 
struct  BinomialCoefficient< n,-1 >
 
struct  BinomialCoefficient< n,-2 >
 
struct  BinomialCoefficient< n,-3 >
 
struct  BinomialCoefficient< n,-4 >
 
struct  block_multiply_traits
 
struct  block_multiply_traits< DenseMatrix< T >, DenseMatrix< T > >
 
struct  block_multiply_traits< DenseMatrix< T1 >, DenseVector< T2 > >
 
struct  block_multiply_traits< number, number >
 
struct  block_multiply_traits< number, T >
 
struct  block_multiply_traits< T, number >
 
struct  block_multiply_traits< T1, T2 >
 
struct  block_traits
 
struct  block_traits< DenseMatrix< FixedArray2< number, 1, 1, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, 2, 2, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, 3, 3, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, TBlockSize, TBlockSize, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< TValue, TBlockSize, TBlockSize, TOrdering > > >
 
struct  block_traits< DenseMatrix< T > >
 
struct  block_traits< DenseMatrix< VariableArray2< number, TOrdering > > >
 
struct  block_traits< DenseMatrix< VariableArray2< TValue, TOrdering > > >
 
struct  block_traits< DenseVector< T > >
 
struct  block_traits< number >
 
struct  block_traits< T >
 
struct  block_traits< vector< int > >
 vector<int> has a variable size More...
 
class  BlockGaussSeidel
 
class  BlockGaussSeidelIterative
 
class  BlockSliceIndexView
 
class  BOOL
 
class  BoolMarker
 Allows to mark elements. More...
 
class  BoostCuthillMcKeeOrdering
 
class  BoostMinimumDegreeOrdering
 
class  BoundedEquidistantLagrange1D
 
class  BoxPriorityQueue
 updateable priority queue class. this priority queue works on an external array of elements T. More...
 
class  BoxPriorityQueue2
 updateable priority queue class. this priority queue works on an external array of elements T. More...
 
struct  CellIdx
 
class  CG
 the CG method as a solver for linear operators More...
 
class  cgraph
 
struct  ChainInfo
 
class  ClusterElementStacks
 
class  CmpVrtsByHash
 Can be used to compare vertices of their grids through their hash-value. More...
 
class  CombinedLinearIterator
 
class  CommonLocalDoFSet
 
class  CommunicationScheme
 CRTP Base class for communications on layout/interfaces. More...
 
class  CommunicationScheme< TDerived, bool >
 CRTP Base class for communications on layout/interfaces. More...
 
class  CompareByAttachment
 Instances can be used as compare operators, e.g., for std::sort. More...
 
struct  CompareDeg
 
struct  CompareDegree
 help class to provide compare operator for indices based on their degree More...
 
class  ComPol_AdjustType
 
class  ComPol_AttachmentReduce
 Performs reduce operations on the specified attachment. More...
 
class  ComPol_BoolMarker_AddMarks
 adds marking at extracting side More...
 
class  ComPol_BoolMarker_RemoveMarks
 removes marks at extracting side, if no mark was received More...
 
class  ComPol_BroadcastCoarsenMarks
 
class  ComPol_BroadcastRefineMarks
 
class  ComPol_CheckConsistency
 Communication Policy to check consistency of a vector. More...
 
class  ComPol_CheckDistributedParentStates
 
class  ComPol_CopyAttachment
 copies values from a specified attachment to a stream and back. More...
 
class  ComPol_EnableSelectionStateBits
 
class  ComPol_GatherSurfaceStates
 adds marking at extracting side More...
 
class  ComPol_GatherVecAttachment
 Gathers the values stored in vector-attachments. More...
 
class  ComPol_InterfaceStatus
 Exchanges information on the interface-status of connected elements. More...
 
class  ComPol_MatAddRowsOverlap0
 Communication Policy to copy slave couplings to master row. More...
 
class  ComPol_MatAddSetZeroInnerInterfaceCouplings
 Comm-Pol to add matrix rows of inner-interface couplings. More...
 
class  ComPol_MatCopyDiag
 
class  ComPol_MatCopyRowsOverlap0
 Communication Policy to copy couplings between interfaces. More...
 
class  ComPol_MatCreateOverlap
 Highly specialized communication policy for matrix overlap creation. More...
 
class  ComPol_MatDistributeDiag
 Communication Policy sending fractions to. More...
 
class  ComPol_NewConstrainedVerticals
 
class  ComPol_Selection
 
class  ComPol_Subset
 
class  ComPol_SynchronizeDistInfos
 Communicates the distribution infos through existing interfaces. More...
 
class  ComPol_VecAdd
 Communication Policy to add values of a vector. More...
 
class  ComPol_VecAddSetZero
 Communication Policy to add values of a vector and reset value to zero on sending interface. More...
 
class  ComPol_VecCopy
 Communication Policy to copy values of a vector. More...
 
class  ComPol_VecScaleAdd
 Communication Policy to add values of a vector. More...
 
class  ComPol_VecScaleCopy
 Communication Policy to copy scaled values of a vector. More...
 
class  ComPol_VecSubtract
 Communication Policy to subtract values of a vector. More...
 
class  ComPol_VecSubtractOnlyOneSlave
 Communication Policy to subtract only one slave value per master of a vector. More...
 
class  ComponentGaussSeidel
 ComponentGaussSeidel Preconditioner. More...
 
class  CompositeConvCheck
 
class  CompositeGridFunctionEstimator
 
class  CompositeSpace
 Defines a composite space, (i.e., additive composition from other spaces) More...
 
class  CompositeTimeDiscretization
 combine several time discretizations into one More...
 
class  CompositeUserData
 This is a compositum for user data from different subsets. More...
 
struct  ConnectedToOneMarkedVrt
 
class  ConnectionViewerOutputObserver
 
class  ConsiderAll
 callback that always returns true More...
 
class  ConsiderNone
 callback that always returns false More...
 
class  ConsistencyCheckClass
 
class  ConsistencyCheckClassSend
 
class  ConsistencyCheckClassSend< TVec, bool >
 
class  const_localMatrix_from_mat_and_array
 
class  const_ntree_element_iterator
 this iterator is used by the ntree class to provide access to the elements of a given node More...
 
class  ConstantDamping
 constant damping factor More...
 
class  ConstAttachedElementListIterator
 A special iterator which allows to iterate over elements in a AttachedElementList. More...
 
class  ConstGenericGridObjectIterator
 Use this class as a tool to create const_iterators to your own geometric objects. More...
 
class  ConstMatrixRow
 
class  ConstrainedEdge
 This edge is a sub-edge of a. More...
 
class  ConstrainedFace
 This class stores the constraining object. More...
 
class  ConstrainedLinearIterator
 
class  ConstrainedQuadrilateral
 a quadrilateral constrained by another object. More...
 
class  ConstrainedTriangle
 a triangle constrained by another object. More...
 
class  ConstrainedVertex
 A vertex appearing on edges or faces. More...
 
class  ConstrainingEdge
 contains elements of type More...
 
class  ConstrainingFace
 This class is used to store constrained geometric objects. More...
 
class  ConstrainingQuadrilateral
 a quadrilateral constraining other objects. More...
 
class  ConstrainingTriangle
 a triangle constraining other objects. More...
 
struct  constraint_traits
 
struct  constraint_traits< Edge >
 
struct  constraint_traits< Face >
 
struct  constraint_traits< Quadrilateral >
 
struct  constraint_traits< Triangle >
 
struct  constraint_traits< Vertex >
 
struct  ConstructGridOfSCVFWrapper
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 1 >
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 2 >
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 3 >
 
struct  ConstructGridOfSCVWrapper
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 1 >
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 2 >
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 3 >
 
class  ConstScalarSubVectorAdapter
 
class  ConstStepLinearTimeIntegrator
 
class  ConstUserMatrix
 constant matrix user data More...
 
class  ConstUserNumber
 constant scalar user data More...
 
class  ConstUserTensor
 constant tensor user data More...
 
class  ConstUserVector
 constant vector user data More...
 
class  ConvectionShapesFullUpwind
 
class  ConvectionShapesNoUpwind
 
class  ConvectionShapesPartialUpwind
 
class  ConvectionShapesWeightedUpwind
 
class  CopyAttachmentHandler
 handler for attachments in a multi-grid More...
 
class  CplUserData
 Type based UserData. More...
 
struct  CPUAlgebra
 
struct  CPUBlockAlgebra
 
struct  CPUVariableBlockAlgebra
 
struct  crfv_traits
 
struct  crfv_traits< 1, 1 >
 
struct  crfv_traits< 1, 2 >
 
struct  crfv_traits< 2, 2 >
 
struct  crfv_traits< 2, 3 >
 
struct  crfv_traits< 3, 3 >
 
struct  crfv_traits< 3, 4 >
 
class  CRFVGeometry
 
class  CRILUTPreconditioner
 
class  CrouzeixRaviartBase
 Crouzeix - Raviart Set. More...
 
class  CrouzeixRaviartElemTransfer
 
class  CrouzeixRaviartLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  CrouzeixRaviartLSFS< ReferenceHexahedron >
 
class  CrouzeixRaviartLSFS< ReferencePrism >
 
class  CrouzeixRaviartLSFS< ReferencePyramid >
 
class  CrouzeixRaviartLSFS< ReferenceQuadrilateral >
 
class  CrouzeixRaviartLSFS< ReferenceTetrahedron >
 
class  CrouzeixRaviartLSFS< ReferenceTriangle >
 
class  CuckooClock
 
class  CUDAManager
 
class  customLexLess
 
class  CustomQuadrilateral
 Concrete types share this base-type. It is not intended for direct use. More...
 
class  CustomTriangle
 Concrete types share this base-type. It is not intended for direct use. More...
 
class  CustomVertexGroup
 this class can be used if one wants to create a custom element from a set of vertices. More...
 
class  CylinderCutProjector
 Refines linearily except for when a refined edge intersects the given cylinder. More...
 
class  CylinderProjector
 Projects new vertices onto a sphere during refinement. More...
 
class  DarcyVelocityLinker
 Hard Coded Linker for the Darcy velocity. More...
 
class  DataEvaluator
 Evaluation for IElemDisc. More...
 
class  DataEvaluatorBase
 helper class to evaluate data evaluation for local contributions during assembling More...
 
class  DataExport
 Data export. More...
 
class  DataImport
 Data import. More...
 
class  DebugID
 
class  DebugIDManager
 
class  DebugIterator
 Debugging iterator. More...
 
class  DebugWriterContext
 Context of a debugger writer: Keeps the debugging section etc. More...
 
class  DebugWritingObject
 
class  DefaultAlgebra
 Singleton, providing the current default algebra. More...
 
class  DegeneratedLayerManager
 Gegenerated layer subset manager. More...
 
class  DelaunayDebugSaver
 
class  DelaunayInfo
 
class  DeltaSquareIntegrand
 
class  DenseMatrix
 
struct  DenseMatrixFromSparseMatrix
 
class  DenseMatrixInverse
 
class  DenseVector
 
class  DependentUserData
 Dependent UserData. More...
 
class  DiagVanka
 Diagvanka Preconditioner, description see above diagvanka_step function. More...
 
class  DimCRFVGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements. More...
 
class  DimFEGeometry
 
class  DimFV1Geometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  DimFV1IBGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  DimFVGeometry
 Geometry and shape functions for any order Vertex-Centered Finite Volume. More...
 
class  DimHFV1Geometry
 
class  DimLocalDoFSet
 
class  DimReferenceElement
 dimension dependent base class for reference elements More...
 
class  DimReferenceMapping
 virtual base class for reference mappings More...
 
class  DimReferenceMappingWrapper
 wrapper of a ReferenceElementMapping into the virtual base class More...
 
class  DiracSourceDisc
 
class  DirectionalOrdering
 
class  dirichlet_iterator
 
class  DirichletBoundary
 
class  DiscConstraintFVCR
 
class  DiscontinuityIntegrator
 
class  DistInfoSupplier
 Automatically attaches ADistInfo to all elements of a grid. More...
 
class  DistributedGridManager
 manages the layouts and interfaces which are associated with a distributed grid. More...
 
class  DistroAdjuster
 
class  DoFCount
 
class  DoFDistribution
 
class  DoFDistributionInfo
 
class  DoFDistributionInfoProvider
 
class  DoFIndexStorage
 
class  Domain
 
struct  domain_traits
 
struct  domain_traits< 0 >
 
struct  domain_traits< 1 >
 
struct  domain_traits< 2 >
 
struct  domain_traits< 3 >
 
class  DomainBalanceWeights
 
class  DomainCommunicationCostWeights
 
class  DomainDiscretization
 domain discretization implementing the interface More...
 
class  DomainDiscretizationBase
 generic domain discretization implementing the interface More...
 
class  DomainInfo
 Describes the contents of a domain. More...
 
class  DomainLoadBalancer
 A small wrapper for LoadBalancer which adds comfort methods to balance and distribute domains. More...
 
class  DomainPartitioner
 
class  DomainRayTracer
 TEMPORARY QUICK HACK! DON'T USE! WILL BE REPLACED SOON! More...
 
class  DualGraphNeighborCollector
 
class  Edge
 Base-class for edges. More...
 
class  EdgeDescriptor
 Can be used to store information about an edge and to construct an edge. More...
 
class  EdgeOrientation
 User data for the orientation of a line element. More...
 
class  EdgeVertices
 holds the vertices of an Edge or an EdgeDescriptor. More...
 
class  element_list_traits
 Class for computing integral properties of geometric objects types in lists. More...
 
class  ElementCallback
 
class  ElementGaussSeidel
 ElementGaussSeidel Preconditioner. More...
 
struct  ElementSideRayIntersectionWrapper
 
struct  ElementSideRayIntersectionWrapper< TRefElem, 2, 2 >
 
struct  ElementSideRayIntersectionWrapper< TRefElem, 3, 3 >
 
class  ElementStorage
 This struct is used to hold GridObjects and their attachment pipes. More...
 
struct  ElementStorageSelector
 Helper class to access the correct element storage from its element type. More...
 
struct  ElementStorageSelector< Edge >
 
struct  ElementStorageSelector< Face >
 
struct  ElementStorageSelector< Vertex >
 
struct  ElementStorageSelector< Volume >
 
struct  ElemErrorSortDesc
 
class  ElemProlongationBase
 
class  ElemRestrictionBase
 
class  EllipticCylinderProjector
 Projects new vertices onto a cylinder with an elliptic base. More...
 
class  EmptyOStream
 a specialization of std::ostream, which doesn't write anything More...
 
class  EmptyStreamBuffer
 Used by EmptyStream, to send tokens into nirvana! More...
 
struct  EmptyType
 
struct  end_boost_list
 
class  EnergyConvCheck
 
class  EquidistantLagrange1D
 
class  EquilibrationMarkingStrategy
 marks elements above a certain fraction of the maximum More...
 
class  ErrorEvaluator
 Evaluation for IElemError. More...
 
class  ExpectedErrorMarkingStrategy
 
class  ExplicitGridFunctionGradient
 
class  ExplicitGridFunctionValue
 
class  ExplicitGridFunctionVector
 
class  Face
 Faces are 2-dimensional objects. More...
 
struct  face_type_traits
 
struct  face_type_traits< 1 >
 
struct  face_type_traits< 2 >
 
struct  face_type_traits< 3 >
 
class  FaceDescriptor
 Can be queried for the edges and vertices of a face. More...
 
class  FaceVertices
 
struct  Factorial
 
struct  Factorial< 1 >
 
class  Factory
 A factory class which creates instances given a class-name. More...
 
class  FEGeometry
 
class  FetiLayouts
 Auxiliary class for handling of "FETI layouts". More...
 
class  FETISolver
 operator implementation of the FETI-DP solver More...
 
class  Field
 
class  FileReaderASC
 
class  FileReaderSWC
 
class  FileWriterSWC
 
class  FinishedTester
 
class  FixedArray1
 
class  FixedArray1< T, 1 >
 
class  FixedArray1< T, 2 >
 
class  FixedArray1< T, 3 >
 
class  FixedArray1< T, 4 >
 
class  FixedArray2
 
class  FixedConvergenceCheck
 
class  Flag
 Helps maintaining, activating and deactivating a set of flags from an enum. More...
 
class  FlexGaussQuadrature
 flexible order gauss quadrature More...
 
class  FlexLagrangeLSFS
 Lagrange Shape Function Set without virtual functions and flexible order. More...
 
class  FlexLagrangeLSFS< ReferenceEdge >
 specialization for Edges More...
 
class  FlexLagrangeLSFS< ReferenceHexahedron >
 
class  FlexLagrangeLSFS< ReferencePrism >
 
class  FlexLagrangeLSFS< ReferenceQuadrilateral >
 
class  FlexLagrangeLSFS< ReferenceTetrahedron >
 
class  FlexLagrangeLSFS< ReferenceTriangle >
 
class  FlexLagrangeLSFS< ReferenceVertex >
 specialization for Edges More...
 
class  FracturedMediaRefiner
 
struct  FractureInfo
 Used to tell ExpandLayers_... which subsets should be regarded as layers. More...
 
class  FullVertexCover
 
class  FunctionGroup
 
class  FunctionIndexMapping
 describes a mapping between two local index sets More...
 
class  FunctionPattern
 Describes the setup of discrete functions on a SubsetHandler. More...
 
struct  fv1_dim_traits
 Traits for Finite Volumes for a generic element of the fixed dimensionalities. More...
 
struct  fv1_dim_traits< 1, 1 >
 
struct  fv1_dim_traits< 1, 2 >
 
struct  fv1_dim_traits< 1, 3 >
 
struct  fv1_dim_traits< 2, 2 >
 
struct  fv1_dim_traits< 2, 3 >
 
struct  fv1_dim_traits< 3, 3 >
 
struct  fv1_dim_traits_base
 Base for the Traits for Finite Volumes for a generic element of the fixed dimensionalities. More...
 
struct  fv1_traits
 Traits for Finite Volumes (dummy implementation, s. the instantiations below) More...
 
struct  fv1_traits< ReferenceEdge, 1 >
 
struct  fv1_traits< ReferenceEdge, 2 >
 
struct  fv1_traits< ReferenceEdge, 3 >
 
struct  fv1_traits< ReferenceHexahedron, 3 >
 
struct  fv1_traits< ReferenceOctahedron, 3 >
 Octahedra: the FV1 traits. More...
 
struct  fv1_traits< ReferencePrism, 3 >
 
struct  fv1_traits< ReferencePyramid, 3 >
 Pyramids: the FV1 traits. More...
 
struct  fv1_traits< ReferenceQuadrilateral, 2 >
 
struct  fv1_traits< ReferenceQuadrilateral, 3 >
 
struct  fv1_traits< ReferenceTetrahedron, 3 >
 
struct  fv1_traits< ReferenceTriangle, 2 >
 
struct  fv1_traits< ReferenceTriangle, 3 >
 
struct  fv1_traits_most_common
 Base class, some fields are redefined in the instantiations for particular elements. More...
 
struct  fv1_traits_ReferenceEdge
 
struct  fv1_traits_ReferenceFace
 
struct  fv1_traits_ReferenceFace2d
 
struct  fv1_traits_ReferenceFace3d
 
struct  fv1_traits_ReferenceOctahedron
 Octahedra: dimension-independent part of the FV1 traits. More...
 
struct  fv1_traits_ReferencePyramid
 Pyramids: dimension-independent part of the FV1 traits. More...
 
struct  fv1_traits_ReferenceVolume
 
class  FV1CondensedGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1Geometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1Geometry_gen
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1IBGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1InnerBoundaryElemDisc
 
class  FV1ManifoldGeometry
 
class  FVGeometry
 Geometry and shape functions for any order Vertex-Centered Finite Volume. More...
 
class  FVGeometryBase
 base class for all FVGeometries More...
 
struct  fvho_traits
 Traits for Finite Volumes of higher order. More...
 
class  FVLineSourceOrSink
 Base class for line sources and sinks. More...
 
class  FVLineSourceOrSink< 1, TData >
 
class  FVPointSourceOrSink
 Base class for the point sources and sinks. More...
 
class  FVSingularSourcesAndSinks
 Manager class for point and line sources and sinks. More...
 
class  GaussJacobi10
 
class  GaussJacobi20
 
class  GaussLegendre
 
class  GaussQuadBase
 wrapper to ease implementation More...
 
class  GaussQuadrature
 fixed order gauss quadrature More...
 
class  GaussQuadrature< ReferenceEdge, 0 >
 
class  GaussQuadrature< ReferenceEdge, 1 >
 
class  GaussQuadrature< ReferenceEdge, 10 >
 
class  GaussQuadrature< ReferenceEdge, 11 >
 
class  GaussQuadrature< ReferenceEdge, 12 >
 
class  GaussQuadrature< ReferenceEdge, 13 >
 
class  GaussQuadrature< ReferenceEdge, 14 >
 
class  GaussQuadrature< ReferenceEdge, 15 >
 
class  GaussQuadrature< ReferenceEdge, 16 >
 
class  GaussQuadrature< ReferenceEdge, 17 >
 
class  GaussQuadrature< ReferenceEdge, 18 >
 
class  GaussQuadrature< ReferenceEdge, 19 >
 
class  GaussQuadrature< ReferenceEdge, 2 >
 
class  GaussQuadrature< ReferenceEdge, 3 >
 
class  GaussQuadrature< ReferenceEdge, 4 >
 
class  GaussQuadrature< ReferenceEdge, 5 >
 
class  GaussQuadrature< ReferenceEdge, 6 >
 
class  GaussQuadrature< ReferenceEdge, 7 >
 
class  GaussQuadrature< ReferenceEdge, 8 >
 
class  GaussQuadrature< ReferenceEdge, 9 >
 
class  GaussQuadrature< ReferenceHexahedron, 0 >
 
class  GaussQuadrature< ReferenceHexahedron, 1 >
 
class  GaussQuadrature< ReferenceHexahedron, 10 >
 
class  GaussQuadrature< ReferenceHexahedron, 11 >
 
class  GaussQuadrature< ReferenceHexahedron, 2 >
 
class  GaussQuadrature< ReferenceHexahedron, 3 >
 
class  GaussQuadrature< ReferenceHexahedron, 4 >
 
class  GaussQuadrature< ReferenceHexahedron, 5 >
 
class  GaussQuadrature< ReferenceHexahedron, 6 >
 
class  GaussQuadrature< ReferenceHexahedron, 7 >
 
class  GaussQuadrature< ReferenceHexahedron, 8 >
 
class  GaussQuadrature< ReferenceHexahedron, 9 >
 
class  GaussQuadrature< ReferenceOctahedron, 0 >
 
class  GaussQuadrature< ReferenceOctahedron, 1 >
 
class  GaussQuadrature< ReferenceOctahedron, 2 >
 
class  GaussQuadrature< ReferencePrism, 0 >
 
class  GaussQuadrature< ReferencePrism, 1 >
 
class  GaussQuadrature< ReferencePrism, 2 >
 
class  GaussQuadrature< ReferencePyramid, 0 >
 
class  GaussQuadrature< ReferencePyramid, 1 >
 
class  GaussQuadrature< ReferencePyramid, 2 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 0 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 1 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 10 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 11 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 12 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 13 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 2 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 3 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 4 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 5 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 6 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 7 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 8 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 9 >
 
class  GaussQuadrature< ReferenceTetrahedron, 0 >
 
class  GaussQuadrature< ReferenceTetrahedron, 1 >
 
class  GaussQuadrature< ReferenceTetrahedron, 2 >
 
class  GaussQuadrature< ReferenceTetrahedron, 3 >
 
class  GaussQuadrature< ReferenceTetrahedron, 4 >
 
class  GaussQuadrature< ReferenceTetrahedron, 5 >
 
class  GaussQuadrature< ReferenceTetrahedron, 6 >
 
class  GaussQuadrature< ReferenceTetrahedron, 7 >
 
class  GaussQuadrature< ReferenceTetrahedron, 8 >
 
class  GaussQuadrature< ReferenceTriangle, 0 >
 
class  GaussQuadrature< ReferenceTriangle, 1 >
 
class  GaussQuadrature< ReferenceTriangle, 10 >
 
class  GaussQuadrature< ReferenceTriangle, 11 >
 
class  GaussQuadrature< ReferenceTriangle, 12 >
 
class  GaussQuadrature< ReferenceTriangle, 2 >
 
class  GaussQuadrature< ReferenceTriangle, 3 >
 
class  GaussQuadrature< ReferenceTriangle, 4 >
 
class  GaussQuadrature< ReferenceTriangle, 5 >
 
class  GaussQuadrature< ReferenceTriangle, 6 >
 
class  GaussQuadrature< ReferenceTriangle, 7 >
 
class  GaussQuadrature< ReferenceTriangle, 8 >
 
class  GaussQuadrature< ReferenceTriangle, 9 >
 
class  GaussQuadrature< ReferenceVertex, 0 >
 
class  GaussQuadrature< ReferenceVertex, 1 >
 
class  GaussQuadrature< ReferenceVertex, 10 >
 
class  GaussQuadrature< ReferenceVertex, 11 >
 
class  GaussQuadrature< ReferenceVertex, 12 >
 
class  GaussQuadrature< ReferenceVertex, 13 >
 
class  GaussQuadrature< ReferenceVertex, 14 >
 
class  GaussQuadrature< ReferenceVertex, 15 >
 
class  GaussQuadrature< ReferenceVertex, 16 >
 
class  GaussQuadrature< ReferenceVertex, 17 >
 
class  GaussQuadrature< ReferenceVertex, 18 >
 
class  GaussQuadrature< ReferenceVertex, 19 >
 
class  GaussQuadrature< ReferenceVertex, 2 >
 
class  GaussQuadrature< ReferenceVertex, 3 >
 
class  GaussQuadrature< ReferenceVertex, 4 >
 
class  GaussQuadrature< ReferenceVertex, 5 >
 
class  GaussQuadrature< ReferenceVertex, 6 >
 
class  GaussQuadrature< ReferenceVertex, 7 >
 
class  GaussQuadrature< ReferenceVertex, 8 >
 
class  GaussQuadrature< ReferenceVertex, 9 >
 
class  GaussQuadratureHexahedron
 
class  GaussQuadratureOctahedron
 
class  GaussQuadraturePrism
 
class  GaussQuadraturePyramid
 
class  GaussQuadratureQuadrilateral
 
class  GaussQuadratureTetrahedron
 
class  GaussQuadratureTriangle
 
class  GaussQuadratureVertex
 
class  GaussSeidel
 Gauss-Seidel preconditioner for the 'forward' ordering of the dofs. More...
 
class  GaussSeidelBase
 
class  GenerateOverlapClass
 
class  GenericGridObjectIterator
 Use this class as a tool to create iterators to your own geometric objects. More...
 
class  Geometry
 provides a grid and access to the coordinates of the vertices More...
 
class  geometry_traits
 
class  geometry_traits< ConstrainedEdge >
 
class  geometry_traits< ConstrainedQuadrilateral >
 
class  geometry_traits< ConstrainedTriangle >
 
class  geometry_traits< ConstrainedVertex >
 
class  geometry_traits< ConstrainingEdge >
 
class  geometry_traits< ConstrainingQuadrilateral >
 
class  geometry_traits< ConstrainingTriangle >
 
class  geometry_traits< Edge >
 
class  geometry_traits< Face >
 
class  geometry_traits< GridObject >
 
class  geometry_traits< Hexahedron >
 
class  geometry_traits< Octahedron >
 
class  geometry_traits< Prism >
 
class  geometry_traits< Pyramid >
 
class  geometry_traits< Quadrilateral >
 
class  geometry_traits< RegularEdge >
 
class  geometry_traits< RegularVertex >
 
class  geometry_traits< Tetrahedron >
 
class  geometry_traits< Triangle >
 
class  geometry_traits< Vertex >
 
class  geometry_traits< Volume >
 
class  GeomObjAttachmentSerializer
 Serialization callback for grid attachments. More...
 
struct  GeomObjBaseTypeByDim
 
struct  GeomObjBaseTypeByDim< 0 >
 
struct  GeomObjBaseTypeByDim< 1 >
 
struct  GeomObjBaseTypeByDim< 2 >
 
struct  GeomObjBaseTypeByDim< 3 >
 
class  GeomObjDataSerializer
 Interface for handling serialization and deserialization of data associated with geometric objects. More...
 
class  GeomProvider
 Geom Provider, holding a single instance of a geometry. More...
 
class  GlobalAttachments
 Global attachments are automatically read/written from/to files and are considered during redistribution. More...
 
class  GlobalFracturedMediaRefiner
 
class  GlobalGridFunctionGradientData
 
class  GlobalGridFunctionNumberData
 
class  GlobalMarking
 mark everything if error too high and refinement allowed More...
 
class  GlobalMultiGridRefiner
 
class  GlobalSubdivisionMultiGridRefiner
 Specialization of the GlobalMultiGridRefiner class to incorporate subdivision refinement. More...
 
class  GlobAttachmentElementUserData
 
class  GMRES
 the GMREs method as a solver for linear operators More...
 
class  GPUSparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  GPUVector
 
class  GradientDataExport
 
class  GradientEvaluator_LagrangeP1
 
class  Grid
 Manages the elements of a grid and their interconnection. More...
 
struct  grid_dim_traits
 
struct  grid_dim_traits< 0 >
 
struct  grid_dim_traits< 1 >
 
struct  grid_dim_traits< 2 >
 
struct  grid_dim_traits< 3 >
 
class  grid_global_debug_info_provider
 Debugging tool for function that do have no direct access to the grid. More...
 
class  GridDataSerializationHandler
 Serialization of data associated with grid elements. More...
 
class  GridDataSerializer
 Interface for handling serialization and deserialization of data associated with all geometric objects in a grid. More...
 
class  GridFunction
 represents numerical solutions on a grid using an algebraic vector More...
 
class  GridFunctionComponentSpace
 
class  GridFunctionDebugWriter
 
class  GridFunctionEstimator
 
class  GridFunctionGradientComponentData
 Retrieve component of gradient of GridFunction. More...
 
class  GridFunctionGradientData
 
class  GridFunctionNumberData
 
class  GridFunctionOrdering
 
class  GridFunctionPositionProvider
 
class  GridFunctionVectorData
 
class  GridFunctionVectorWriter
 
class  GridFunctionVectorWriterDirichlet0
 
struct  GridHeader
 
class  GridLayoutMap
 lets you access layouts by type and key More...
 
class  GridLevel
 
class  GridMessage_Adaption
 A message sent along with "GridRefinement" messages. More...
 
class  GridMessage_Creation
 
class  GridMessage_Distribution
 
class  GridMessage_MultiGridChanged
 A message sent by the MultiGrid, if something special happened. More...
 
class  GridObject
 The base class for all geometric objects, such as vertices, edges, faces, volumes, ... More...
 
class  GridObjectCollection
 a helper class that holds a collection of possibly unconnected geometric-objects. More...
 
struct  GridObjectInfo
 
class  GridObserver
 
class  GridPointsOrdering
 
class  GridReaderUGX
 Grants read access to ugx files. More...
 
class  GridReaderVTU
 Grants read access to vtu (vtk) files. More...
 
class  GridSubsetHandler
 Partitions elements of a grid into several subsets. More...
 
class  GridWriterUGX
 Grants write access to ugx files. More...
 
class  GridWriterVTU
 Grants write access to vtu files. More...
 
class  H1ComponentSpace
 
class  H1DistIntegrand
 Integrand for the distance of two grid functions - evaluated in the H1 norm. More...
 
class  H1EnergyComponentSpace
 
class  H1EnergyDistIntegrand
 Integrand for the distance of two grid functions - evaluated in the norm \( |D \nabla u|^2 \). More...
 
class  H1EnergyIntegrand
 Norm of a grid function, evaluated in (weighted) H1-semi norm. More...
 
class  H1ErrorIntegrand
 
class  H1NormIntegrand
 
class  H1SemiComponentSpace
 
class  H1SemiDistIntegrand
 Integrand for the distance of two grid functions - evaluated in the (weighted) H1-semi norm. More...
 
class  H1SemiIntegrand
 Norm of a grid function, evaluated in (weighted) H1-semi norm. More...
 
class  HangingNodeRefiner_Grid
 Specialization of ug::HangingNodeRefiner for ug::Grid. More...
 
class  HangingNodeRefiner_MultiGrid
 Specialization of ug::HangingNodeRefiner for ug::MultiGrid. More...
 
class  HangingNodeRefinerBase
 Base class for a hanging-node refiner. More...
 
class  Hash
 
class  hash_iterator
 this iterator is used by the hash class to provide access to the elements of a given key More...
 
struct  hcrfv_traits
 
struct  hcrfv_traits< 2, 2 >
 
struct  hcrfv_traits< 2, 3 >
 
struct  hcrfv_traits< 3, 3 >
 
struct  hcrfv_traits< 3, 4 >
 
class  HCRFVGeometry
 
struct  hdimfv1_traits
 
struct  hdimfv1_traits< 1 >
 
struct  hdimfv1_traits< 2 >
 
struct  hdimfv1_traits< 3 >
 
class  Heightfield
 
class  Hexahedron
 A volume element with 6 quadrilateral sides. More...
 
class  HexahedronClass
 
class  HexahedronDescriptor
 only used to initialize a hexahedron. for all other tasks you should use VolumeDescriptor. More...
 
struct  hfv1_traits
 Traits for hanging finite volume (dummy implementation) More...
 
struct  hfv1_traits< ReferenceEdge, 1 >
 
struct  hfv1_traits< ReferenceEdge, 2 >
 
struct  hfv1_traits< ReferenceEdge, 3 >
 
struct  hfv1_traits< ReferenceHexahedron, 3 >
 
struct  hfv1_traits< ReferenceOctahedron, 3 >
 
struct  hfv1_traits< ReferencePrism, 3 >
 
struct  hfv1_traits< ReferencePyramid, 3 >
 
struct  hfv1_traits< ReferenceQuadrilateral, 2 >
 
struct  hfv1_traits< ReferenceQuadrilateral, 3 >
 
struct  hfv1_traits< ReferenceTetrahedron, 3 >
 
struct  hfv1_traits< ReferenceTriangle, 2 >
 
struct  hfv1_traits< ReferenceTriangle, 3 >
 
struct  hfv1_traits_ReferenceEdge
 
struct  hfv1_traits_ReferenceFace
 
struct  hfv1_traits_ReferenceVolume
 
class  HFV1Geometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume with the hanging nodes. More...
 
class  HFV1ManifoldGeometry
 
class  HorizontalAlgebraLayouts
 Holds Interfaces and communicators for horizontal communication. More...
 
class  HorizontalAnisotropyAdjuster
 Selects additional edges to preserve layers in a grid with horizontal anisotropies. More...
 
class  IApproximationSpace
 describes the ansatz spaces on a domain More...
 
class  IAssemble
 Interface providing Jacobian and Defect of a discretization. More...
 
class  IAttachment
 the interface for attachments. More...
 
class  IAttachmentDataContainer
 the interface for an attachment-data-container. More...
 
class  IBalanceWeights
 
class  IBanachSpace
 Abstract base class for (algebraic) vectors. More...
 
class  IBlockJacobiPreconditioner
 
class  ICommunicationWeights
 
class  IComponentSpace
 Estimate the error (based on the difference between two grid functions) More...
 
class  IConstraint
 interface for adjustment of constraints More...
 
class  IConvectionShapes
 Interface class for upwind methods. More...
 
class  IConvergenceCheck
 
class  ICplUserData
 Base class for UserData. More...
 
class  IDamping
 
class  IDataImport
 Base class for data import. More...
 
class  IDebugWriter
 base class for all debug writer More...
 
class  IDiscretizationItem
 
class  IDomain
 describes a physical domain More...
 
class  IDomainConstraint
 
class  IDomainDiscretization
 Interface for domain discretization. More...
 
class  IDomainErrorIndicator
 Interface for an object that can estimate the (global) error. More...
 
class  IDomainMarker
 Interface for an object that can mark elements based on a strategy. More...
 
class  IDWInterpolation
 Class for inverse distance weighting based on a general data type. More...
 
class  IDWUserData
 UserData interface for the IDW interpolation. More...
 
class  IEigensolver
 
class  IElemAssembleFuncs
 This class encapsulates all functions related to error estimation. More...
 
class  IElemDisc
 
class  IElemDiscBase
 base class for all element-wise discretizations More...
 
class  IElemDiscModifier
 
class  IElementMarkingStrategy
 Abstract base class for element marking (in adaptive refinement) More...
 
class  IElemError
 
class  IElemEstimatorFuncs
 This class encapsulates all functions related to error estimation. More...
 
class  IElemProlongation
 
class  IElemRestriction
 
class  IErrEstData
 Base class for error estimator data. More...
 
class  IExternalSolver
 
class  IExternalSolverImplementation
 
class  IFinishedCondition
 
class  IFunction
 
class  IGeometry
 provides a grid and access to the coordinates of the vertices More...
 
class  IGridFunction
 Base class for all Grid Functions. More...
 
class  IGridFunctionSpace
 Abstract base class for grid functions. More...
 
class  IIdentifier
 Interface to match periodic geometric elements. More...
 
class  IIntegrand
 Abstract integrand interface. More...
 
class  IInterfaceExtrapolation
 Base class for the extrapolation over an embedded boundary. More...
 
class  ILagrangeMultiplierDisc
 
class  ILevelPreconditioner
 A preconditioner for the multi-grid context which is aware of the grid level it operates on. More...
 
class  ILimexCostStrategy
 
class  ILimexRefiner
 
class  ILinearIterator
 describes a linear iterator More...
 
class  ILinearOperator
 describes a linear mapping X->Y More...
 
class  ILinearOperatorInverse
 describes an inverse linear mapping X->Y More...
 
class  ILinearTimeIntegrator
 
class  ILineSearch
 
class  ILocalRemesher
 
class  ILocalSubspace
 Abstract definition for subspace V_k. More...
 
class  ILocalToGlobalMapper
 interface for definition of special LocalToGlobal mappings More...
 
class  ILU
 ILU / ILU(beta) preconditioner. More...
 
class  ILUTPreconditioner
 
class  ILUTScalarPreconditioner
 
class  IMatrixOperatorInverse
 describes an inverse linear mapping X->Y based on a matrix More...
 
class  IMultigridElementIndicators
 This class encapsulates the multi-grid attachments for error estimation. More...
 
struct  IndCmp
 
class  IndexView
 
class  INewtonUpdate
 general interface for data updates during Newton process More...
 
struct  InnerBoundaryConstants
 
struct  InnerBoundaryFluxCond
 struct that holds information about the flux densities and from where to where the flux occurs More...
 
struct  InnerBoundaryFluxDerivCond
 
class  INonlinearTimeIntegrator
 
struct  Int2Type
 
class  IntegrationOutputObserver
 
class  InterSubsetPartitionWeighting
 
class  IntervalNumberLinker
 
class  InverseLinker
 
class  IObjectWithWeights
 
class  IObstacleConstraint
 Interface for Obstacle Constraints. More...
 
class  IOperator
 describes a mapping X->Y More...
 
class  IOperatorInverse
 describes an inverse mapping X->Y More...
 
class  IOrderingAlgorithm
 
class  IPartitioner
 Partitioners can be used inside a LoadBalancer or separately to create partition maps. More...
 
class  IPartitionPostProcessor
 allows to post-process partitions More...
 
class  IPartitionPreProcessor
 allows to pre-process data before partitioning starts More...
 
class  IPatchRemesher
 
class  IPositionProvider
 Interface for providing vertex positions. More...
 
class  IPProcessVector
 interface for pre- and postprocess functions More...
 
class  IPreconditionedLinearOperatorInverse
 describes an inverse linear mapping X->X More...
 
class  IPreconditioner
 describes a linear iterator that is based on a matrix operator More...
 
class  IProjGaussSeidel
 Interface for Projected GaussSeidel Preconditioner. More...
 
class  IRefiner
 The refiner interface allows to mark elements for refinement and to call refine. More...
 
class  IRefMarkAdjuster
 
class  IsBoundaryOrManifodFace
 
class  ISchurComplementInverse
 
class  ISelector
 base-implementation of a selector More...
 
class  IsInSubGrid
 Callbacks that return true if an element is contained in a sub-grid. More...
 
class  IsInSubset
 Element callback that returns true, if an element is contained in a subset. More...
 
class  IsMarked
 Element callback that returns true, if an element is marked. More...
 
class  IsNotBoundaryOrManifodFace
 
class  IsNotInSubGrid
 Callbacks that return true if an element is not contained in a sub-grid. More...
 
class  IsNotInSubset
 Element callback that returns true, if an element is not contained in a subset. More...
 
class  IsNotMarked
 Element callback that returns true, if an element is not marked. More...
 
class  IsNotOnBoundary
 Element callback that returns true, if an element does not lie on the grids boundary. More...
 
class  IsNotSelected
 Element callback that returns true, if an element is not selected. More...
 
class  IsOnBoundary
 Element callback that returns true, if an element lies on the grids boundary. More...
 
class  ISpaceDecomposition
 Abstract. More...
 
class  IsRegularSurfaceElem
 Returns true if an element is a regular surface element. More...
 
class  IsSelected
 Element callback that returns true, if an element is selected. More...
 
class  ISubDiagErrorEst
 
class  ISubGrid
 Instances represent a part of a grid. More...
 
class  ISubsetHandler
 
struct  IteratorProvider
 
struct  IteratorProvider< MGSubsetHandler >
 
class  ITimeDiscDependentObject
 
class  ITimeDiscretization
 Time Discretization Interface. More...
 
class  ITimeIntegrator
 
class  ITimeIntegratorObserver
 Abstract base class for time integration observer. More...
 
class  ITransferOperator
 interface for transfer routines More...
 
class  ITransferPostProcess
 interface for transfer routines More...
 
class  ITransformingIteration
 
class  IVector
 
class  IVector_AlgebraDownCastTo
 
class  IVectorDebugWriter
 base class for all vector debug writer More...
 
class  IVectorWriter
 Interface for modifying a vector (e.g, setting Dirichlet values, ...) More...
 
class  IVertexGroup
 Base class for all classes which consist of a group of vertices. More...
 
class  Jacobi
 Jacobi-Iteration. More...
 
class  KDTree
 
struct  KDTreeDesc
 
class  KDTreeStatic
 organizes vertices in a binary-tree structure. Only for static use! More...
 
class  KDVertexDistance
 used by KDTreeStatic More...
 
class  L2ComponentSpace
 
class  L2DistIntegrand
 Integrand for the distance of two grid functions - evaluated in the (weighted) H1-semi norm. More...
 
class  L2ErrorIntegrand
 
class  L2Integrand
 Grid function as L2 integrand. More...
 
class  L2QuotientSpace
 
class  Lagrange1D
 
class  LagrangeLDS
 Lagrange DoF Set. More...
 
class  LagrangeLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  LagrangeLSFS< ReferenceEdge, TOrder >
 specialization for Edges More...
 
class  LagrangeLSFS< ReferenceHexahedron, TOrder >
 
class  LagrangeLSFS< ReferenceOctahedron, TOrder >
 
class  LagrangeLSFS< ReferencePrism, TOrder >
 
class  LagrangeLSFS< ReferencePyramid, TOrder >
 
class  LagrangeLSFS< ReferenceQuadrilateral, TOrder >
 
class  LagrangeLSFS< ReferenceTetrahedron, TOrder >
 
class  LagrangeLSFS< ReferenceTriangle, TOrder >
 
class  LagrangeLSFS< ReferenceVertex, TOrder >
 specialization for Vertex More...
 
class  LagrangeP1
 Lagrange shape functions of first order. More...
 
class  LexOrdering
 
class  LFEID
 Identifier for Local Finite Elements. More...
 
class  lg_ntree
 
struct  lg_ntree_traits_base
 
class  LimexDefaultCost
 
class  LimexNewtonSolver
 
class  LimexNonlinearCost
 
class  LimexTimeIntegrator
 
class  LimexTimeIntegratorConfig
 
class  LinearImplicitEuler
 
class  LinearIteratorProduct
 
class  LinearIteratorSum
 
class  LinearSolver
 linear solver using abstract preconditioner interface More...
 
class  LinearTimeIntegrator
 
class  LineGaussSeidel
 
class  LineVanka
 
struct  linker_traits
 Linker Traits. More...
 
struct  linker_traits< MathMatrix< dim, dim >, number >
 
struct  linker_traits< MathTensor< 4, dim >, number >
 
struct  linker_traits< MathVector< dim >, MathMatrix< dim, dim > >
 
struct  linker_traits< MathVector< dim >, MathVector< dim >, number >
 
struct  linker_traits< MathVector< dim >, number >
 
struct  linker_traits< number, number >
 
class  LoadBalancer
 A load-balancer redistributes grids using the specified partitioner and process-hierarchy. More...
 
class  LoaderObj
 
class  LocalDoF
 
class  LocalDoFSet
 
class  LocalDoFSubspace
 Abstract definition for subspace V_k (based on DoFIndex) More...
 
class  LocalFiniteElementProvider
 
class  LocalIndexSubspace
 Concrete definition of subspace V_k (based on size_t) More...
 
class  LocalIndices
 
class  LocalMarkAdjuster
 Use this adjuster on top of StdHNodeAdjuster if local-marks are present. More...
 
class  LocalMatrix
 
class  localMatrix_from_col_major_and_array
 
class  localMatrix_from_mat_and_array
 
class  localMatrix_from_row_major_and_array
 
class  LocalSchurComplement
 operator implementation of the local Schur complement More...
 
class  LocalShapeFunctionSet
 virtual base class for local shape function sets More...
 
class  LocalShapeFunctionSetWrapper
 wrapper class implementing the LocalShapeFunctionSet interface More...
 
class  LocalToGlobalMapper
 
class  LocalToGlobalMapperNLGS
 
class  LocalVector
 
class  localVector_from_array
 
class  LocalVectorTimeSeries
 time series of local vectors More...
 
class  LogAssistant
 
class  LognormalRandomField
 
class  LSGFConstraint
 a special constraint that sets functions and matrices in the outer subdomain to given values More...
 
class  LSGFDomainDiscretization
 domain discretization for the Level-Set Ghost-Fluid method More...
 
class  LSGFGlobAssembler
 Global assembler based on the ghost-fluid method with a level-set function. More...
 
class  LU
 
struct  lua_traits
 Lua Traits to push/pop on lua stack. More...
 
struct  lua_traits< bool >
 
struct  lua_traits< int >
 
struct  lua_traits< MathMatrix< dim, dim > >
 
struct  lua_traits< number >
 
struct  lua_traits< ug::MathVector< dim > >
 
struct  lua_traits< void >
 
class  LuaCallbackObserver
 
class  LuaFunction
 
class  LuaFunctionHandle
 Handle for a lua reference. More...
 
class  LUAParserClass
 
class  LuaTableHandle
 Handle for a lua reference. More...
 
class  LuaUserData
 provides data specified in the lua script More...
 
class  LuaUserDataFactory
 Factory providing LuaUserData. More...
 
class  LuaUserFunction
 maps several data values to an output data value using a lua callback More...
 
class  LuaUserNumberNumberFunction
 this class maps a scalar value an output scalar value using a lua callback More...
 
class  MapSparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  MapVector
 
struct  MarkerPoint
 
class  MarkerPointManager
 
struct  mat_operations_class
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_GLOBAL_FUNCTIONS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_MEMBER_FUNCTIONS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_OPERATORS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_ROW_FUNCTIONS >
 
class  MathMatrix
 A class for fixed size, dense matrices. More...
 
class  MathMatrix< 0, 0, T >
 
class  MathMatrix< 0, N, T >
 
class  MathMatrix< N, 0, T >
 
class  MathSymmetricMatrix
 A class for fixed size, dense matrices. More...
 
class  MathTensor
 a mathematical Tensor of rank TRank and N entries. More...
 
class  MathTensor1
 
class  MathTensor2
 
class  MathTensor3
 
class  MathTensor4
 
class  MathTensor< 1, N, T >
 
class  MathTensorX
 
class  MathVector
 a mathematical Vector with N entries. More...
 
class  MathVector< 0, T >
 
class  MathVector< 1, T >
 
class  MathVector< 2, T >
 
class  MathVector< 3, T >
 
class  MathVector< 4, T >
 
struct  matrix_algebra_type_traits
 
struct  matrix_algebra_type_traits< DenseMatrix< T > >
 
struct  matrix_algebra_type_traits< DenseMatrixInverse< T > >
 
struct  matrix_algebra_type_traits< GPUSparseMatrix< T > >
 
struct  matrix_algebra_type_traits< MapSparseMatrix< T > >
 
struct  matrix_algebra_type_traits< MatrixOperator< M, X, Y > >
 
struct  matrix_algebra_type_traits< ParallelMatrix< T > >
 
struct  matrix_algebra_type_traits< SparseMatrix< T > >
 
class  MatrixDiagonal
 
class  MatrixDiagonalInverse
 
class  MatrixFileType
 Representation of a matrix exchange file format. More...
 
class  MatrixIO
 Generic matrix I/O functionality. More...
 
class  MatrixIOMtx
 Provides I/O functionality for MatrixMarket exchange file format. More...
 
class  MatrixOperator
 
class  MatrixRow
 
class  MatVec_Expression
 
class  maxheap
 updateable priority queue class. unlike most PQ implementations, we need a method to inform the PQ of updated elements thats why we cannot use priority_queue from the STL. maxheap works on an external array of elements T, note that none of the elements of m_arr[0]..m_arr[size-1] are in the heap at the begining. You can insert elements by using maxheap::insert(i); More...
 
class  MaximumDistIntegrand
 
class  MaximumMarking
 
class  MaxStepsFinishedCondition
 
class  MeanValueMarking
 
class  MemInfo
 
class  MemTrackerStruct
 
class  MessageHub
 Allows to register callbacks and post messages to those callbacks. More...
 
struct  MGEdgeInfo
 Holds information about edge relations. Used internally. More...
 
struct  MGFaceInfo
 Holds information about face relations. Used internally. More...
 
class  MGHNodeAdjuster
 Makes sure that that hierarchical dependencies are considered during hnode refinement. More...
 
class  mginfo_traits
 access to connected types. used internally More...
 
class  mginfo_traits< Edge >
 edge info traits. used internally. More...
 
class  mginfo_traits< Face >
 face info traits. used internally. More...
 
class  mginfo_traits< Vertex >
 vertex info traits. used internally. More...
 
class  mginfo_traits< Volume >
 volume info traits. used internally. More...
 
class  MGSelector
 specialization of ISelector for grids of class MultiGrid. More...
 
class  MGStats
 Records statistics on how individual parts of a multigrid method worked. More...
 
struct  MGVertexInfo
 Holds information about vertex relations. Used internally. More...
 
struct  MGVolumeInfo
 Holds information about volume relations. Used internally. More...
 
class  MGWrapper
 
class  MGWrapper< Grid >
 
class  MGWrapper< MultiGrid >
 
struct  MidID
 helper class to store dimension and id of a midpoint of a sub-element More...
 
class  MiniBubbleLDS
 MiniBubble Set (2D only!) More...
 
class  MiniBubbleLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  MiniBubbleLSFS< ReferenceEdge >
 
class  MiniBubbleLSFS< ReferenceHexahedron >
 
class  MiniBubbleLSFS< ReferenceQuadrilateral >
 
class  MiniBubbleLSFS< ReferenceTetrahedron >
 
class  MiniBubbleLSFS< ReferenceTriangle >
 
class  MinimalEnergyDamping
 damping computed based on the minimal energy More...
 
class  MinimalResiduumDamping
 damping computed based on the minimal residuum More...
 
class  MMTypeCode
 Type representation for MatrixMarket matrix exchange files. More...
 
class  MultiElementAttachmentAccessor
 Accesses attachements in different element types at the same time. More...
 
class  MultiGrid
 
class  MultiGridSubsetHandler
 Handles subsets on a per level basis. More...
 
class  MultiIndex
 
class  MultiIndex< 1, size_t >
 
class  MultiIndex< 2, size_t >
 
class  MultiIndex< 3, size_t >
 
class  MultipleErrEstData
 Error estimator data class for discretizations with more than one unknown. More...
 
class  MultipleSideAndElemErrEstData
 
class  MultiStepTimeDiscretization
 multi step time stepping scheme More...
 
struct  MyVectorTraits
 
struct  MyVectorTraits< TVector, typename boost::enable_if_c< TVector::value_type::is_static >::type >
 
class  NativeCuthillMcKeeOrdering
 
class  NedelecLDS
 Nedelec, i.e. the edge local dof set. More...
 
class  NedelecLSFS
 
class  NedelecLSFS< ReferenceTetrahedron >
 Nedelec (or Whitney-1) base function set for tetrahedra. More...
 
class  NedelecLSFS< ReferenceTriangle >
 Nedelec (or Whitney-1) base function set for triangles. More...
 
class  NestedIterationSolver
 Nested iteration solver (e.g. for full multigrid) More...
 
class  NeumannBoundaryBase
 
class  NeumannBoundaryFE
 
class  NeumannBoundaryFV
 
class  NeumannBoundaryFV1
 
class  NeuriteProjector
 
class  NewLayoutCreator
 
class  NewtonCotes
 
class  NewtonSolver
 Newton solver for assembling based discretizations. More...
 
class  NLGaussSeidelSolver
 Nonlinear GaussSeidel-method. More...
 
class  NLJacobiSolver
 Nonlinear Jacobi-method. More...
 
class  non_dirichlet_iterator
 
class  Norm2Estimator
 
class  NormInfEstimator
 
class  NormRelEstimator
 
class  ntree
 The n-tree class can be used to construct space partitioning trees of dimensions 1, 2, and 3. More...
 
struct  ntree_traits
 
struct  ntree_traits< 1, 1, elem_t, NTreeGridData< 1 > >
 
struct  ntree_traits< 1, 2, elem_t, NTreeGridData< 2 > >
 
struct  ntree_traits< 2, 2, elem_t, NTreeGridData< 2 > >
 
struct  ntree_traits< 2, 3, elem_t, NTreeGridData< 3 > >
 
struct  ntree_traits< 3, 3, elem_t, NTreeGridData< 3 > >
 
struct  NTreeDesc
 
class  NTreeGridData
 
struct  OBJMaterial
 holds information about the materials in the obj-file. More...
 
class  ObstacleInNormalDir
 Obstacle Class for Obstacle in normal direction. More...
 
class  Octahedron
 platonic solid with eight faces. More...
 
class  OctahedronClass
 
class  OctahedronDescriptor
 only used to initialize a octahedron. for all other tasks you should use VolumeDescripor. More...
 
class  OneSideP1Constraints
 
struct  operation_add
 
struct  operation_sub
 
class  OperatorInverseIterator
 
class  OStreamBufferSplitter
 forwards data written to this stream-buffer to other stream buffers. More...
 
class  OutNormCmp
 Projection to the outer normal for a given vector user data. More...
 
class  OverlapWriter
 Writes overlapping matrices and vectors. More...
 
class  OverlyingSubsetFinder
 
class  OwnedPtr
 Holds and automatically deletes a pointer, similar to std::auto_ptr. USE WITH CARE! More...
 
class  P1LagrangeElemTransfer
 
class  PageContainer
 
class  ParallelColoring
 
class  ParallelDualGraph
 Generates the parralel dual graph of a MultiGrid as, e.g., required by Parmetis. More...
 
class  ParallelGlobalFracturedMediaRefiner
 Adds parallel support to GlobalFracturedMediaRefiner. More...
 
class  ParallelGlobalSubdivisionRefiner
 Adds parallel support to GlobalSubdivisionMultiGridRefiner. More...
 
class  ParallelHangingNodeRefiner_MultiGrid
 
class  ParallelHNodeAdjuster
 Makes sure that that marks are propagated over process interfaces. More...
 
class  ParallelMatrix
 Wrapper for sequential matrices to handle them in parallel. More...
 
class  ParallelNodes
 
class  ParallelProgress
 
class  ParallelShiftIdentifier
 This class matches geometric elements which are parallel translated. More...
 
class  ParallelVector
 
class  Partitioner_DynamicBisection
 Parallel bisection partitioner. More...
 
class  PartitionMap
 Used to describe how a domain shall be distributed in a parallel environment. More...
 
class  PartitionWeighting
 
class  PartPreProc_RasterProjectorCoordinates
 
class  PathProvider
 Singleton which stores common paths and a stack of current paths. More...
 
class  PCRILUTPreconditioner
 
class  PeriodicAttachmentAccessor
 Accesses attachements with consideration to periodic boundaries. More...
 
class  PeriodicBoundaryManager
 
class  PiecewiseConstantElemTransfer
 
class  PiecewiseConstantLSFS
 Elementwise constant shape functions. More...
 
class  PILUTPreconditioner
 
class  PINVIT
 
class  PlaneCutProjector
 calculates new positions by cutting parent edges with a plane More...
 
class  PlotRefOutputObserver
 
struct  Pointer2Value
 
struct  Pointer2Value< T * >
 
class  PointerConstArray
 Container which holds an array of pointers. More...
 
class  Polynomial1D
 
struct  PosAndIndex
 
struct  Pow
 
struct  Pow< n, 0 >
 
class  PowerMethod
 
class  PPP_ReplaceCoordinate
 Temporarily replaces the specified coordinate in the given position attachment. More...
 
class  PProcessChain
 a chain of pre- or postprocess operations More...
 
struct  PrimalConnection
 
class  PrimalSubassembledMatrixInverse
 operator implementation of the inverse of the Schur complement w.r.t. the "Delta unknowns" More...
 
class  Prism
 A volume element with 2 triangle and 3 quadrilateral sides. More...
 
class  PrismClass
 
class  PrismDescriptor
 only used to initialize a prism. for all other tasks you should use VolumeDescripor. More...
 
class  ProcessHierarchy
 Defines how the different levels of a grid shall be distributed across the available processes. More...
 
class  Progress
 
class  ProjBackwardGaussSeidel
 
class  ProjectionHandler
 Associates different projectors with individual subsets. More...
 
class  ProjectionLinker
 
class  ProjGaussSeidel
 Projected GaussSeidel (SOR) -method. More...
 
class  ProjSymmetricGaussSeidel
 
class  ProtectSubsetPartitionWeighting
 
class  Provider
 Provider, holding a single instance of an object. More...
 
struct  PtrToValueType
 
struct  PtrToValueType< Edge * >
 
struct  PtrToValueType< Face * >
 
struct  PtrToValueType< Vertex * >
 
struct  PtrToValueType< Volume * >
 
class  Pyramid
 A volume element with 4 triangle and 1 quadrilateral sides. More...
 
class  PyramidClass
 
class  PyramidDescriptor
 only used to initialize a pyramids. for all other tasks you should use VolumeDescripor. More...
 
class  QuadratureRule
 provides quadrature rule for a Reference Dimension More...
 
class  QuadratureRuleProvider
 provides quadrature rules for a reference dimension More...
 
class  Quadrilateral
 a face with four points. More...
 
class  QuadrilateralDescriptor
 only used to initialize a quadrilateral. for all other tasks you should use FaceDescriptor. More...
 
class  Raster
 Generic raster for arbitrary dimensions. More...
 
struct  RasterLayerDesc
 
class  RasterLayers
 
class  RasterLayersProjector
 
class  RasterUserData
 ! More...
 
struct  RayElemIntersectionRecord
 
struct  reference_element_traits
 traits for reference elements More...
 
struct  reference_element_traits< ConstrainedEdge >
 
struct  reference_element_traits< ConstrainedQuadrilateral >
 
struct  reference_element_traits< ConstrainedTriangle >
 
struct  reference_element_traits< ConstrainedVertex >
 
struct  reference_element_traits< ConstrainingEdge >
 
struct  reference_element_traits< ConstrainingQuadrilateral >
 
struct  reference_element_traits< ConstrainingTriangle >
 
struct  reference_element_traits< Edge >
 
struct  reference_element_traits< Hexahedron >
 
struct  reference_element_traits< Octahedron >
 
struct  reference_element_traits< Prism >
 
struct  reference_element_traits< Pyramid >
 
struct  reference_element_traits< Quadrilateral >
 
struct  reference_element_traits< RegularEdge >
 
struct  reference_element_traits< RegularVertex >
 
struct  reference_element_traits< Tetrahedron >
 
struct  reference_element_traits< Triangle >
 
struct  reference_element_traits< Vertex >
 
class  ReferenceEdge
 
class  ReferenceElement
 base class for reference elements More...
 
class  ReferenceElementProvider
 Provider for Reference Elements. More...
 
class  ReferenceHexahedron
 reference element for a hexahedron More...
 
class  ReferenceMapping
 
class  ReferenceMapping< ReferenceEdge, TWorldDim >
 
class  ReferenceMapping< ReferenceHexahedron, TWorldDim >
 
class  ReferenceMapping< ReferenceOctahedron, TWorldDim >
 
class  ReferenceMapping< ReferencePrism, TWorldDim >
 
class  ReferenceMapping< ReferencePyramid, TWorldDim >
 
class  ReferenceMapping< ReferenceQuadrilateral, TWorldDim >
 
class  ReferenceMapping< ReferenceTetrahedron, TWorldDim >
 
class  ReferenceMapping< ReferenceTriangle, TWorldDim >
 
class  ReferenceMapping< ReferenceVertex, TWorldDim >
 
class  ReferenceMappingProvider
 class to provide reference mappings More...
 
class  ReferenceOctahedron
 
class  ReferencePrism
 
class  ReferencePyramid
 
class  ReferenceQuadrilateral
 
class  ReferenceTetrahedron
 
class  ReferenceTriangle
 
class  ReferenceVertex
 
class  RefinementProjector
 Adjusts vertex coordinates during refinement. More...
 
class  RegularEdge
 Edges connect two vertices. More...
 
class  RegularVertex
 A basic vertex-type. More...
 
class  ReservableArray2
 
class  RevisionCounter
 Class used to identify a state of adaption of a grid, approx-space, ... More...
 
class  RiverOrdering
 
class  RotatingCone2d
 
class  RotatingVelocity2d
 
class  RowSendingScheme
 
class  ScalarGridFunctionData
 
class  ScalarLowerObstacle
 Scalar Lower Obstacles. More...
 
class  ScalarSubVectorAdapter
 
class  ScalarUpperObstacle
 
class  ScaleAddLinker
 
class  ScaledGridFunctionEstimator
 
class  SCCOrdering
 
class  SchurComplementMatrixOperator
 
class  SchurComplementOperator
 
class  SchurInverseWithAGammaGamma
 
class  SchurInverseWithAutoFullMatrix
 
class  SchurInverseWithFullMatrix
 
class  SchurInverseWithOperator
 
class  SchurPrecond
 operator implementation of the DD Schur complement solver More...
 
struct  SCVFofSCVRayIntersectionWrapper
 
struct  SCVFofSCVRayIntersectionWrapper< 2, 2 >
 
class  SDIRK
 Singly Diagonal Implicit Runge Kutta Method. More...
 
class  SectionContainer
 A container that is divided into different sections. More...
 
struct  SectionContainerSelector
 Helper class to access the correct element storage from its element type. More...
 
struct  SectionContainerSelector< Edge >
 
struct  SectionContainerSelector< Face >
 
struct  SectionContainerSelector< Vertex >
 
struct  SectionContainerSelector< Volume >
 
class  Selector
 specialization of ISelector for a grid of class Grid. More...
 
class  SequentialSubspaceCorrection
 Sequential subspace correction preconditioner. More...
 
class  ShadowCopyAdjuster
 Adjusts RM_FULL-selected quadrilaterals that cannot be fully refined. More...
 
class  SideAndElemErrEstData
 Error estimator data class storing a number vector per side and per element. More...
 
class  SideFluxErrEstData
 Error estimator data class storing one scalar number per side. More...
 
class  SimpleGrid
 
class  SimpleTimeIntegrator
 
class  SliceIndexView
 
class  SlicingData
 
class  SmartPtrVector
 
class  SmoothPartitionBounds
 early draft. Currently only useful for prism-geometries in the d3f-wipp setting More...
 
class  SmoothProjector
 Smoothes vertices during refinement. More...
 
class  SoftAbort
 This special error is used to perform a soft-abort e.g. during script execution. More...
 
class  SomaProjector
 Projects new vertices onto a sphere during refinement. More...
 
class  SortedGridFunctionOrdering
 
struct  sortStruct
 
struct  SortVertexPos
 
class  SparseBlockGaussSeidel
 
class  SparseBlockGaussSeidel2
 
class  SparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  SparseVector
 
class  Sphere
 
class  SphereProjector
 Projects new vertices onto a sphere during refinement. More...
 
class  StandardLineSearch
 standard implementation of the line search based on the "sufficient descent" More...
 
struct  static_type
 
struct  std_number_vector_attachment_reduce_traits
 
class  StdArrayCommunicationScheme
 Communication Scheme for synchronization of arrays or similar datastructures. More...
 
class  StdBalanceWeights
 
class  StdCoarseningMarkingStrategy
 M. Breit's standard coarsening strategy. More...
 
class  StdConstData
 
class  StdConvCheck
 
class  StdDataLinker
 combines several UserDatas to a new UserData of a specified type More...
 
class  StdDependentUserData
 
class  StdExplicitGridFunctionData
 
class  StdFuncIntegrand
 
class  StdGlobAssembler
 Global assembler based on the straightforward application of the local discretizations. More...
 
class  StdGlobPosData
 
class  StdHNodeAdjuster
 Makes sure that elements are marked correctly so that hnode-refinement produces a valid grid. More...
 
class  StdInjection
 
class  StdIntegrand
 Abstract integrand interface (using CRTP) More...
 
class  StdLagrangeElemTransfer
 
class  StdLinConsistentGravity
 Class for the computation of the standard version ('Voss-Souza-type') of the consistent gravity. More...
 
class  StdLinConsistentGravityX
 Class for the computation of the enhanced version ('Frolkovic-type') of the consistent gravity. More...
 
class  StdRefinementMarkingStrategy
 M. Breit's standard refinement strategy. More...
 
class  StdTransfer
 Standard Prolongation Operator. More...
 
class  StdUserData
 
class  stdvector
 
class  Stopwatch
 Stopwatch class for quickly taking times. More...
 
struct  storage_traits1
 
struct  storage_traits1< FixedArray1< T, N > >
 
struct  storage_traits1< VariableArray1< T > >
 
class  StringTableStream
 
class  StrongNegativeConnectionsByBlockNorm
 Adds 'strong negative connections' to graph. More...
 
class  SubdivisionProjector
 Applies piecewise smooth loop subdivision rules. More...
 
class  SubdivRules_PLoop
 A singleton that stores all rules for a piecewise-loop subdivision surface. More...
 
class  SubGrid
 specializes ISubGrid for general callback classes. More...
 
class  SubLocalDoFSet
 
class  SubsetGroup
 Group of subsets. More...
 
class  SubsetHandlerSerializer
 
class  SubsetIndicatorUserData
 User data of a subset indicator (1 in the subset, 0 everywhere else) More...
 
struct  SubsetInfo
 a struct that holds information associated with subsets. More...
 
struct  SuperLUConfiguration
 
class  SuperLUImplementation
 
class  SuperLUSolver
 
class  SupErrorEvaluator
 
class  SurfaceView
 Represents the surface view of a multi-grid hierarchy. More...
 
struct  SweepLineEdge
 
struct  SweepLineVertex
 
class  SymmetricGaussSeidel
 
class  SymP1Constraints
 
class  Table
 Useful for printing a table to the terminal or into a file. More...
 
struct  TargetProcInfo
 
struct  TarHeader
 
class  TE_AlphaVec
 
class  TE_AMV_X
 
class  TE_TRANSPOSED
 
class  TE_VecAdd2
 
class  TE_VecAdd3
 
class  TE_VecScale
 
class  TE_Vector
 
class  TElemSelector
 specialization of ISelector for a subset of the elements in a grid of class Grid. More...
 
class  TemporalFinishedCondition
 
class  Tetrahedron
 the most simple volume-element. More...
 
class  TetrahedronClass
 
class  TetrahedronDescriptor
 only used to initialize a tetrahedron. for all other tasks you should use VolumeDescripor. More...
 
class  THangingNodeRefiner
 Gives access to a hanging node refiner, depending on the grid-type. More...
 
class  THangingNodeRefiner< Grid >
 
class  THangingNodeRefiner< MultiGrid >
 
class  ThetaTimeStep
 theta time stepping scheme More...
 
struct  TIKZElem
 
struct  TikzExportDesc
 
class  TimeDependentSpace
 Wrapper class for time dependence. More...
 
class  TimeIntegratorLinearAdaptive
 
class  TimeIntegratorSubject
 Base class for a subject notifying observers attachment. More...
 
class  TimeStepBounds
 
class  TKDInfo
 
class  ToElementPosition
 
class  TopologicalOrdering
 
class  TParallelGlobalRefiner
 Adds parallel support to a global refiner. More...
 
class  TransferValueAccessor
 
class  TRANSPOSED
 this helper class is a transposed of class A More...
 
class  Traverser_FindContainingElement
 
class  Traverser_FindElementsInIntersectingNodes
 
class  Traverser_FindLowestLeafNodeLevel
 
class  Traverser_MinMaxNumElements
 returns the minimum and maximum number of elements in all subtrees of nodes of the given level More...
 
class  Traverser_RayElementIntersection
 
struct  TRI
 
class  Triangle
 the most simple form of a face More...
 
class  TriangleDescriptor
 only used to initialize a triangle. for all other tasks you should use FaceDescriptor. More...
 
class  TruncatedEquidistantLagrange1D
 
class  TruncatedMonotoneTransfer
 
struct  TypeList
 
struct  TypeList< EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType >
 
struct  TypeValueList
 
struct  TypeValueList< TypeList<> >
 
class  UGError
 Instances of this class or of derived classes are thrown if errors arise. More...
 
struct  UGError_ReferenceElementMissing
 Exception thrown when reference element not found. More...
 
class  UGProfileNode
 
class  UGProfileNodeNull
 This singleton represents a UGProfileNode that has not been found. More...
 
class  UGXFileInfo
 
class  UID
 supplies a unique ID. More...
 
class  UndirectedMatrix
 
class  UniqueFVGeomIDProvider
 a singleton class that returns a new id for each type More...
 
class  UniqueTypeIDProvider
 a singleton class that returns a new id for each type More...
 
class  UnsortedSparseVector
 
class  unvisited_iterator
 
class  UpdateableMatrixOperator
 
struct  user_data_traits
 
struct  user_data_traits< MathMatrix< dim, dim > >
 
struct  user_data_traits< MathTensor< 4, dim > >
 
struct  user_data_traits< MathVector< dim > >
 
struct  user_data_traits< number >
 
class  UserData
 Type based UserData. More...
 
class  UserDataDistIntegrandSq
 For arbitrary UserData \(f\) and grid functions \(u_1\) and \(u_2\), this class (should) define the integrand \( (f(u_1)- f(u_2))^2 \). More...
 
class  UserDataInfo
 base class providing runtime-info on dimension and type More...
 
class  UserDataIntegrand
 For arbitrary UserData \(\rho\), this class defines the integrand \(\rho(u)\). More...
 
class  UserDataIntegrandSq
 For arbitrary UserData \(f\) (of type TData), this class defines the integrand \(f^2(u)\). More...
 
class  UserDataSpace
 
class  UserVectorEntryAdapter
 
class  UzawaBase
 
class  UzawaSlicing
 
class  ValueDataExport
 
class  ValueIndicatorUserData
 "Heaviside step function" based on the value of values of a further userdata More...
 
class  Vanka
 Vanka Preconditioner. More...
 
struct  variable_type
 
class  VariableArray1
 
class  VariableArray2
 
class  VarianceMarking
 
class  VarianceMarkingEta
 Marks elements above a certain threshold for refinement. More...
 
class  Variant
 A variant can represent variables of different types. More...
 
class  Vector
 
struct  vector_attachment_reduce_traits
 
class  VectorDataExport
 
class  VectorDebugWritingObject
 
struct  VectorProxy
 
struct  VectorProxyBase
 Proxy struct for generic passing of any vector type. More...
 
class  VectorTimeSeries
 time series of solutions and corresponding time point More...
 
class  Vertex
 Base-class for all vertex-types. More...
 
class  VertexBasedSubspace
 Collects indices on all elements with v \in Vtx(elem) More...
 
class  VertexCenteredVankaSubspace
 Collects indices on all elements with v \in Vtx(elem) More...
 
class  VertexDescriptor
 This descriptor is mainly useful to avoid compilation errors in templated code. More...
 
class  VMAdd
 --> documentation in vm.doxygen <–/// More...
 
class  Volume
 Volumes are 3-dimensional objects. More...
 
class  VolumeDescriptor
 Holds a set of vertices which represent the corners of a volume element. More...
 
class  VolumeVertices
 holds the vertices of a Volume or a VolumeDescriptor More...
 
class  VTKOutput
 output writer to the VTK file format More...
 
class  VTKOutputObserver
 
struct  xy
 
struct  xyz
 
class  ZRayTracer
 

Typedefs

typedef Attachment< bool > ABool
 
typedef Attachment< byteAByte
 
typedef Attachment< char > AChar
 
typedef Attachment< vector< TargetProcInfo > > ADistInfo
 
typedef Attachment< double > ADouble
 
typedef Attachment< Edge * > AEdge
 
typedef Attachment< Face * > AFace
 
typedef Attachment< float > AFloat
 
typedef Attachment< GeomObjIDAGeomObjID
 An attachment which can store GeomObjIDs. More...
 
typedef Attachment< int > AInt
 
typedef Hash< AlgebraID, size_t > AlgebraIDHashList
 
typedef std::vector< AlgebraIDAlgebraIDVec
 
typedef ANormal3 ANormal
 
typedef AVector3 ANormal2
 
typedef AVector3 ANormal3
 
typedef Attachment< numberANumber
 
typedef APosition3 APosition
 
typedef AVector1 APosition1
 
typedef AVector2 APosition2
 
typedef AVector3 APosition3
 
typedef AVector2 ATexCoord
 
typedef Attachment< uintAUInt
 
typedef Attachment< vector1AVector1
 
typedef Attachment< vector2AVector2
 
typedef Attachment< vector3AVector3
 
typedef Attachment< vector4AVector4
 
typedef Attachment< Vertex * > AVertex
 
typedef Attachment< Volume * > AVolume
 
typedef std::vector< bool > binary_grouping_vector
 
typedef geometry_traits< ConstrainedEdge >::const_iterator ConstConstrainedEdgeIterator
 
typedef geometry_traits< ConstrainedQuadrilateral >::const_iterator ConstConstrainedQuadrilateralIterator
 
typedef geometry_traits< ConstrainedTriangle >::const_iterator ConstConstrainedTriangleIterator
 
typedef geometry_traits< ConstrainedVertex >::const_iterator ConstConstrainedVertexIterator
 
typedef geometry_traits< ConstrainingEdge >::const_iterator ConstConstrainingEdgeIterator
 
typedef geometry_traits< ConstrainingQuadrilateral >::const_iterator ConstConstrainingQuadrilateralIterator
 
typedef geometry_traits< ConstrainingTriangle >::const_iterator ConstConstrainingTriangleIterator
 
typedef ElementStorage< Edge >::SectionContainer::const_iterator ConstEdgeIterator
 
typedef ElementStorage< Face >::SectionContainer::const_iterator ConstFaceIterator
 
typedef geometry_traits< Hexahedron >::const_iterator ConstHexahedronIterator
 
typedef geometry_traits< Octahedron >::const_iterator ConstOctahedronIterator
 
typedef geometry_traits< Prism >::const_iterator ConstPrismIterator
 
typedef geometry_traits< Pyramid >::const_iterator ConstPyramidIterator
 
typedef geometry_traits< Quadrilateral >::const_iterator ConstQuadrilateralIterator
 
typedef geometry_traits< ConstrainedEdge >::iterator ConstrainedEdgeIterator
 
typedef geometry_traits< ConstrainedQuadrilateral >::iterator ConstrainedQuadrilateralIterator
 
typedef geometry_traits< ConstrainedTriangle >::iterator ConstrainedTriangleIterator
 
typedef geometry_traits< ConstrainedVertex >::iterator ConstrainedVertexIterator
 
typedef geometry_traits< ConstrainingEdge >::iterator ConstrainingEdgeIterator
 
typedef geometry_traits< ConstrainingQuadrilateral >::iterator ConstrainingQuadrilateralIterator
 
typedef geometry_traits< ConstrainingTriangle >::iterator ConstrainingTriangleIterator
 
typedef geometry_traits< RegularEdge >::const_iterator ConstRegularEdgeIterator
 
typedef geometry_traits< RegularVertex >::const_iterator ConstRegularVertexIterator
 
typedef ConstSmartPtr< ProcessHierarchyConstSPProcessHierarchy
 
typedef geometry_traits< Tetrahedron >::const_iterator ConstTetrahedronIterator
 
typedef geometry_traits< Triangle >::const_iterator ConstTriangleIterator
 
typedef ElementStorage< Vertex >::SectionContainer::const_iterator ConstVertexIterator
 
typedef ElementStorage< Volume >::SectionContainer::const_iterator ConstVolumeIterator
 
typedef MultiIndex< 2 > DoFIndex
 type of DoF-Index used to identify an DoF in the Algebra More...
 
typedef Domain< 1, MultiGrid, MGSubsetHandlerDomain1d
 
typedef Domain< 2, MultiGrid, MGSubsetHandlerDomain2d
 
typedef Domain< 3, MultiGrid, MGSubsetHandlerDomain3d
 
typedef void * DynLibHandle
 Defines a reference to a dynamically loaded library. More...
 
typedef GeomObjDataSerializer< EdgeEdgeDataSerializer
 
typedef ElementStorage< EdgeEdgeElementStorage
 
typedef ElementStorage< Edge >::SectionContainer::iterator EdgeIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Edge, std::list > > EdgeLayout
 
typedef GeomObjDataSerializer< FaceFaceDataSerializer
 
typedef ElementStorage< FaceFaceElementStorage
 
typedef ElementStorage< Face >::SectionContainer::iterator FaceIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Face, std::list > > FaceLayout
 
typedef std::pair< int, size_t > GeomObjID
 The global id can be used to uniquely identify distributed objects. More...
 
typedef std::map< int, std::vector< AlgebraID > > GlobalLayout
 
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS, boost::property< boost::vertex_color_t, boost::default_color_type, boost::property< boost::vertex_degree_t, int > > > Graph_t
 
typedef geometry_traits< Hexahedron >::iterator HexahedronIterator
 
typedef IGeometry< 1 > IGeometry1d
 
typedef IGeometry< 2 > IGeometry2d
 
typedef IGeometry< 3 > IGeometry3d
 
typedef pcl::SingleLevelLayout< pcl::OrderedInterface< size_t, std::vector > > IndexLayout
 
typedef std::list< KDVertexDistanceKDVertexDistanceList
 
typedef double lapack_double
 
typedef float lapack_float
 
typedef int lapack_ftnlen
 
typedef int lapack_int
 
typedef multimap< number, SweepLineEdge * > MapEdgeCuts
 
typedef MathMatrix< 2, 2, numbermatrix22
 a 2x2 matrix More...
 
typedef MathMatrix< 3, 3, numbermatrix33
 a 3x3 matrix More...
 
typedef MathMatrix< 4, 4, numbermatrix44
 a 4x4 matrix More...
 
typedef map< void *, MemTrackerStructMemTrackerMap
 
typedef geometry_traits< Octahedron >::iterator OctahedronIterator
 
typedef TParallelGlobalRefiner< GlobalMultiGridRefinerParallelGlobalRefiner_MultiGrid
 Parallel global refinement for multi-grids. More...
 
typedef vector< string > ParameterList
 
typedef std::pair< byte, int > ParentInfo
 Stores a tuple (type, index), identifying a parent. More...
 
typedef geometry_traits< Prism >::iterator PrismIterator
 
typedef boost::mpl::tmp::ProjectorTypes ProjectorTypes
 
typedef geometry_traits< Pyramid >::iterator PyramidIterator
 
typedef geometry_traits< Quadrilateral >::iterator QuadrilateralIterator
 
typedef geometry_traits< RegularEdge >::iterator RegularEdgeIterator
 
typedef geometry_traits< RegularVertex >::iterator RegularVertexIterator
 
typedef std::vector< schur_slice_desc_typeSchurSliceDescVector
 
typedef SlicingData< SchurSliceDescVector, 2 > SchurSlicingData
 
typedef SmartPtr< IBalanceWeightsSPBalanceWeights
 
typedef SmartPtr< ICommunicationWeightsSPCommunicationWeights
 
typedef SmartPtr< EdgeDataSerializerSPEdgeDataSerializer
 
typedef SmartPtr< ElementCallbackSPElementCallback
 
typedef SmartPtr< FaceDataSerializerSPFaceDataSerializer
 
typedef SmartPtr< GridDataSerializerSPGridDataSerializer
 
typedef SmartPtr< IGeometry1dSPIGeometry1d
 
typedef SmartPtr< IGeometry2dSPIGeometry2d
 
typedef SmartPtr< IGeometry3dSPIGeometry3d
 
typedef SmartPtr< IRefMarkAdjusterSPIRefMarkAdjuster
 
typedef SmartPtr< LocalMarkAdjusterSPLocalMarkAdjuster
 
typedef SmartPtr< MessageHubSPMessageHub
 
typedef SmartPtr< MGHNodeAdjusterSPMGHNodeAdjuster
 
typedef node_tree::SPCollisionTreeRootNode SPOctree
 
typedef SmartPtr< ParallelHNodeAdjusterSPParallelHNodeAdjuster
 
typedef SmartPtr< IPartitionerSPPartitioner
 
typedef SmartPtr< IPartitionPostProcessorSPPartitionPostProcessor
 
typedef SmartPtr< IPartitionPreProcessorSPPartitionPreProcessor
 
typedef SmartPtr< ProcessHierarchySPProcessHierarchy
 
typedef SmartPtr< ProjectionHandlerSPProjectionHandler
 
typedef SmartPtr< RasterLayerDescSPRasterLayerDesc
 
typedef SmartPtr< RasterLayersSPRasterLayers
 
typedef SmartPtr< RasterLayersProjectorSPRasterLayersProjector
 
typedef SmartPtr< RefinementProjectorSPRefinementProjector
 
typedef SmartPtr< StdHNodeAdjusterSPStdHNodeAdjuster
 
typedef SmartPtr< VertexDataSerializerSPVertexDataSerializer
 
typedef SmartPtr< VolumeDataSerializerSPVolumeDataSerializer
 
typedef Table< std::stringstream > StringStreamTable
 
typedef Table< std::string > StringTable
 
typedef SweepLineEdgeList::iterator SweepLineEdgeIter
 
typedef list< SweepLineEdgeSweepLineEdgeList
 
typedef geometry_traits< Tetrahedron >::iterator TetrahedronIterator
 
typedef geometry_traits< Triangle >::iterator TriangleIterator
 
typedef MathVector< 1, numbervector1
 a 1d vector More...
 
typedef MathVector< 2, numbervector2
 a 2d vector More...
 
typedef MathVector< 3, numbervector3
 a 3d vector More...
 
typedef MathVector< 4, numbervector4
 a 4d vector More...
 
typedef GeomObjDataSerializer< VertexVertexDataSerializer
 
typedef ElementStorage< VertexVertexElementStorage
 
typedef ElementStorage< Vertex >::SectionContainer::iterator VertexIterator
 This Iterator will be used as base-class for iterators of specialized geometric objects. More...
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Vertex, std::list > > VertexLayout
 
typedef GeomObjDataSerializer< VolumeVolumeDataSerializer
 
typedef ElementStorage< VolumeVolumeElementStorage
 
typedef ElementStorage< Volume >::SectionContainer::iterator VolumeIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Volume, std::list > > VolumeLayout
 
typedef Base64FileWriter VTKFileWriter
 
typedef TElemSelector< VertexVertexSelector
 
typedef TElemSelector< EdgeEdgeSelector
 
typedef TElemSelector< FaceFaceSelector
 
typedef TElemSelector< VolumeVolumeSelector
 
typedef GridSubsetHandler SubsetHandler
 
typedef MultiGridSubsetHandler MGSubsetHandler
 

Enumerations

enum  { DIM_SUBSET_EMPTY_GRID = -1 }
 abbreviations for return types More...
 
enum  AnisotropyState {
  ISOTROPIC = 0 , QUAD_SHORTX , QUAD_SHORTY , PRISM_FLAT ,
  PRISM_LONG , HEX_SHORTX , HEX_SHORTY , HEX_SHORTZ ,
  HEX_SHORTXY , HEX_SHORTXZ , HEX_SHORTYZ
}
 
enum  ArchiveType { AT_DATA , AT_GUI }
 different types of archives More...
 
enum  ATTACHMENT_CONSTANTS { INVALID_ATTACHMENT_INDEX = 0xFFFFFFFF }
 
enum  ConstraintType {
  CT_NONE = 0 , CT_ASSEMBLED = 1 , CT_MAY_DEPEND_ON_HANGING = 1 << 1 , CT_HANGING = 1 << 2 ,
  CT_CONSTRAINTS = 1 << 3 , CT_DIRICHLET = 1 << 4 , CT_ALL = CT_NONE | CT_ASSEMBLED | CT_MAY_DEPEND_ON_HANGING | CT_HANGING | CT_CONSTRAINTS | CT_DIRICHLET
}
 Types of constraint. More...
 
enum  ConstraintTypes { CT_NONE = 0 , CT_CONSTRAINING = 1 , CT_CONSTRAINED = 1 << 1 }
 
enum  DiscPart {
  NONE = 0 , MASS = 1 << 0 , STIFF = 1 << 1 , RHS = 1 << 2 ,
  EXPL = 1 << 3 , MAX_PART
}
 
enum  EdgeContainerSections { CSEDGE_NONE = -1 , CSEDGE_REGULAR_EDGE = 0 , CSEDGE_CONSTRAINED_EDGE = 1 , CSEDGE_CONSTRAINING_EDGE = 2 }
 These numbers define where in the edge-section-container an edge will be stored. More...
 
enum  EdgeOptions { EDGEOPT_NONE = 0x00000000 , EDGEOPT_STORE_ASSOCIATED_FACES = 0x00000100 , EDGEOPT_STORE_ASSOCIATED_VOLUMES = 0x00000200 }
 Used to specify the way in which Grid manages edge-specific data. More...
 
enum  ElemDiscType {
  EDT_NONE = 0 , EDT_ELEM = 1 << 0 , EDT_SIDE = 1 << 1 , EDT_BND = 1 << 2 ,
  EDT_ALL = EDT_NONE | EDT_SIDE | EDT_ELEM | EDT_BND
}
 Types of elem disc. More...
 
enum  ElementStatusTypes {
  ES_NONE = INT_NONE , ES_H_MASTER = INT_H_MASTER , ES_H_SLAVE = INT_H_SLAVE , ES_V_MASTER = INT_V_MASTER ,
  ES_V_SLAVE = INT_V_SLAVE , ES_SCHEDULED_FOR_INTERFACE = 1 << 6 , ES_IN_INTERFACE = 1 << 7
}
 the states with which elements are marked in ug::DistributedGridManager More...
 
enum  eMatrixOrdering { RowMajor = 0 , ColMajor = 1 }
 
enum  eTransposeMode { ModeNoTrans = 0 , ModeTranspose = 1 , ModeConjTranspose = 2 }
 
enum  ExtrusionOptions { EO_CREATE_FACES = 1 , EO_CREATE_VOLUMES = 1 << 1 , EO_DEFAULT }
 used to specify the behavior of ug::Extrude. More...
 
enum  FaceContainerSections {
  CSFACE_NONE = -1 , CSFACE_TRIANGLE = 0 , CSFACE_QUADRILATERAL = 1 , CSFACE_CONSTRAINED_TRIANGLE = 2 ,
  CSFACE_CONSTRAINED_QUADRILATERAL = 3 , CSFACE_CONSTRAINING_TRIANGLE = 4 , CSFACE_CONSTRAINING_QUADRILATERAL = 5 , CSFACE_USER
}
 These numbers define where in the face-section-container a face will be stored. More...
 
enum  FaceOptions { FACEOPT_NONE = 0x00000000 , FACEOPT_STORE_ASSOCIATED_EDGES = 0x00010000 , FACEOPT_STORE_ASSOCIATED_VOLUMES = 0x00020000 , FACEOPT_AUTOGENERATE_EDGES = 0x00080000 }
 Used to specify the way in which Grid manages face-specific data. More...
 
enum  GlobalBoundaryRefinementRule {
  LINEAR , SUBDIV_SURF_LOOP_SCHEME , SUBDIV_SURF_AVERAGING_SCHEME , SUBDIV_SURF_BUTTERFLY_SCHEME ,
  SUBDIV_VOL
}
 enumeration for identification of global boundary refinement rule to be used More...
 
enum  GridBaseObjectId {
  VERTEX = 0 , EDGE , FACE , VOLUME ,
  NUM_GEOMETRIC_BASE_OBJECTS
}
 enumeration of the GridBaseObjects that make up a grid. More...
 
enum  GridHeaderConstants { GHC_HEADER_BEGIN = 1 , GHC_HEADER_END = 2 , GHC_READ_OPTIONS = 3 }
 
enum  GridHeaderReadOptions { GHRO_READ_DEFAULT = 0 , GHRO_READ_LEVELS = 1 << 0 , GHRO_READ_PARENTS = 1 << 1 }
 
enum  GridMessageAdaptionType {
  GMAT_UNKNOWN = 0 , GMAT_GLOBAL_ADAPTION_BEGINS , GMAT_HNODE_ADAPTION_BEGINS , GMAT_GLOBAL_ADAPTION_ENDS ,
  GMAT_HNODE_ADAPTION_ENDS , GMAT_GLOBAL_REFINEMENT_BEGINS , GMAT_HNODE_REFINEMENT_BEGINS , GMAT_GLOBAL_REFINEMENT_ENDS ,
  GMAT_HNODE_REFINEMENT_ENDS , GMAT_GLOBAL_COARSENING_BEGINS , GMAT_HNODE_COARSENING_BEGINS , GMAT_GLOBAL_COARSENING_ENDS ,
  GMAT_HNODE_COARSENING_ENDS
}
 constants which indicate the adaption type in a grid refinement message. More...
 
enum  GridMessageCreationType { GMCT_NONE , GMCT_CREATION_STARTS , GMCT_CREATION_STOPS }
 Instances of this class inform about grid creation (e.g. during load or distribution) More...
 
enum  GridMessageDistributionType { GMDT_NONE , GMDT_DISTRIBUTION_STARTS , GMDT_DISTRIBUTION_STOPS }
 Instances of this class inform about distribution. More...
 
enum  GridMessageMultiGridChangedType { GMMGCT_LEVEL_ADDED = 1 , GMMGCT_REMOVED = 2 }
 
enum  GridObjectID {
  GOID_VERTEX = 0 , GOID_EDGE = 1 , GOID_TRIANGLE = 2 , GOID_QUADRILATERAL = 3 ,
  GOID_TETRAHEDRON = 4 , GOID_PYRAMID = 5 , GOID_PRISM = 6 , GOID_OCTAHEDRON = 7 ,
  GOID_HEXAHEDRON = 8 , GOID_NUM_GRID_OBJECT_IDS
}
 
enum  GridOptions {
  GRIDOPT_NONE = 0x00000000 , GRIDOPT_NO_INTERCONNECTION = 0x00000000 , GRIDOPT_VERTEXCENTRIC_INTERCONNECTION , GRIDOPT_AUTOGENERATE_SIDES ,
  GRIDOPT_STANDARD_INTERCONNECTION , GRIDOPT_FULL_INTERCONNECTION , GRIDOPT_DEFAULT
}
 Specify how references between associated objects are stored in a grid. More...
 
enum  GridSerializationID {
  GSID_END_OF_GRID = -2 , GSID_INVALID = -1 , GSID_GEOMETRIC_OBJECT = 0 , GSID_VERTEX_BASE = 10 ,
  GSID_VERTEX = 11 , GSID_HANGING_VERTEX = 12 , GSID_EDGE_BASE = 20 , GSID_EDGE = 21 ,
  GSID_CONSTRAINED_EDGE = 22 , GSID_CONSTRAINING_EDGE = 23 , GSID_FACE = 30 , GSID_TRIANGLE = 31 ,
  GSID_CONSTRAINED_TRIANGLE = 32 , GSID_CONSTRAINING_TRIANGLE = 33 , GSID_QUADRILATERAL = 40 , GSID_CONSTRAINED_QUADRILATERAL = 41 ,
  GSID_CONSTRAINING_QUADRILATERAL = 42 , GSID_VOLUME = 60 , GSID_TETRAHEDRON = 61 , GSID_HEXAHEDRON = 70 ,
  GSID_PRISM = 80 , GSID_PYRAMID = 90 , GSID_OCTAHEDRON = 100 , GSID_NEW_LEVEL = 1000
}
 
enum  InterfaceNodeTypes {
  INT_NONE = 0 , INT_H_MASTER = 1 , INT_H_SLAVE = 1<<1 , INT_V_MASTER = 1<<2 ,
  INT_V_SLAVE = 1<<3
}
 
enum  InterfaceStates {
  IS_UNASSIGNED = 0 , IS_NORMAL = 1 , IS_VMASTER = 1<<1 , IS_VSLAVE = 1<<2 ,
  IS_DUMMY = 1<<3 , HAS_PARENT = 1<<4
}
 
enum  KDSplitDimension { KDSD_CIRCULAR , KDSD_LARGEST }
 used by KDTreeStatic More...
 
enum  KDTreeSplitStrategy { KDTSS_CIRCULAR , KDTSS_LARGEST }
 
enum  LGBConstants {
  LGBC_NONE = 0 , LGBC_POS2D = 1 , LGBC_POS3D = 1 << 1 , LGBC_SUBSET_HANDLER = 1 << 2 ,
  LGBC_SELECTOR = 1 << 3 , LGBC_PROJECTION_HANDLER = 1 << 4
}
 
enum  matrix_algebra_type { MATRIX_USE_ROW_FUNCTIONS , MATRIX_USE_GLOBAL_FUNCTIONS , MATRIX_USE_OPERATORS , MATRIX_USE_MEMBER_FUNCTIONS }
 
enum  NeighborhoodType {
  NHT_DEFAULT = 0 , NHT_VERTEX_NEIGHBORS = 1 , NHT_EDGE_NEIGHBORS = 1<<1 , NHT_FACE_NEIGHBORS = 1<<2 ,
  NHT_VOLUME_NEIGHBORS = 1<<3 , NHT_ALL
}
 Constants to specify a neighborhood. More...
 
enum  ObserverType {
  OT_NONE = 0 , OT_GRID_OBSERVER = 1 , OT_VERTEX_OBSERVER = 2 , OT_EDGE_OBSERVER = 4 ,
  OT_FACE_OBSERVER = 8 , OT_VOLUME_OBSERVER = 16 , OT_FULL_OBSERVER
}
 
enum  ParallelStorageType { PST_UNDEFINED = 0 , PST_CONSISTENT = 1 << 0 , PST_ADDITIVE = 1 << 1 , PST_UNIQUE = 1 << 2 }
 
enum  PathTypes {
  BIN_PATH = 0 , SCRIPT_PATH , ROOT_PATH , PLUGIN_PATH ,
  APPS_PATH , MAX_PATH_CONSTANT
}
 Constants used by PathProvider. More...
 
enum  PolyChainTypes {
  PCT_UNKNOWN = 0 , PCT_CLOSED = 1 , PCT_OPEN = 1 << 1 , PCT_SEPARATED = 1 << 2 ,
  PCT_IRREGULAR = 1 << 3 , PCT_EMPTY = 1 << 4
}
 
enum  ProcessType { PT_ALL =0 , PT_STATIONARY , PT_INSTATIONARY , MAX_PROCESS }
 
enum  ReferenceObjectID {
  ROID_UNKNOWN = -1 , ROID_VERTEX , ROID_EDGE , ROID_TRIANGLE ,
  ROID_QUADRILATERAL , ROID_TETRAHEDRON , ROID_HEXAHEDRON , ROID_PRISM ,
  ROID_PYRAMID , ROID_OCTAHEDRON , NUM_REFERENCE_OBJECTS
}
 these ids are used to identify the shape of a geometric object. More...
 
enum  RefinementMark {
  RM_NONE = 0 , RM_CLOSURE = 1 , RM_COPY = RM_CLOSURE , RM_ANISOTROPIC = RM_CLOSURE ,
  RM_LOCAL = 1 << 1 , RM_FULL = 1 << 2 , RM_REFINE = RM_FULL , RM_COARSEN = 1 << 3 ,
  RM_DUMMY = 1 << 4 , RM_MAX
}
 refinement-marks allow to specify how an element shall be processed during refinement. More...
 
enum  RemeshingElementMarks { REM_NONE = -1 , REM_CREASE = 0 , REM_FIXED = 1 }
 
enum  schur_slice_desc_type { SD_INNER =0 , SD_SKELETON , SLICE_DESC_SIZE }
 
enum  SweepLineEdgeStatus { SLES_UNKNOWN = 0 , SLES_RIM }
 
enum  SweepLineVertexStatus {
  SLVS_NONE = 0 , SLVS_START , SLVS_END , SLVS_REGULAR ,
  SLVS_SPLIT , SLVS_MERGE
}
 
enum  TraversalStates { DONT_TRAVERSE_CHILDREN , TRAVERSE_CHILDREN , ABORT_TRAVERSAL }
 
enum  VertexContainerSections { CSVRT_NONE = -1 , CSVRT_REGULAR_VERTEX = 0 , CSVRT_CONSTRAINED_VERTEX = 1 }
 These numbers define where in the vertex-section-container a vertex will be stored. More...
 
enum  VertexOptions { VRTOPT_NONE = 0x00000000 , VRTOPT_STORE_ASSOCIATED_EDGES = 0x00000001 , VRTOPT_STORE_ASSOCIATED_FACES = 0x00000002 , VRTOPT_STORE_ASSOCIATED_VOLUMES = 0x00000004 }
 Used to specify the way in which Grid manages vertex-specific data. More...
 
enum  VolumeContainerSections {
  CSVOL_NONE = -1 , CSVOL_TETRAHEDRON = 0 , CSVOL_HEXAHEDRON = 1 , CSVOL_PRISM = 2 ,
  CSVOL_PYRAMID = 3 , CSVOL_OCTAHEDRON = 4
}
 These numbers define where in the volume-section-container a volume will be stored. More...
 
enum  VolumeOptions {
  VOLOPT_NONE = 0x00000000 , VOLOPT_STORE_ASSOCIATED_EDGES = 0x01000000 , VOLOPT_STORE_ASSOCIATED_FACES = 0x02000000 , VOLOPT_AUTOGENERATE_EDGES = 0x08000000 ,
  VOLOPT_AUTOGENERATE_FACES = 0x10000000
}
 Used to specify the way in which Grid manages volume-specific data. More...
 
enum  VTKCellTypes {
  VTK_VERTEX = 1 , VTK_POLY_VERTEX = 2 , VTK_LINE = 3 , VTK_POLY_LINE = 4 ,
  VTK_TRIANGLE = 5 , VTK_TRIANGLE_STRIP = 6 , VTK_POLYGON = 7 , VTK_PIXEL = 8 ,
  VTK_QUAD = 9 , VTK_TETRA = 10 , VTK_VOXEL = 11 , VTK_HEXAHEDRON = 12 ,
  VTK_WEDGE = 13 , VTK_PYRAMID = 14 , VTK_QUADRATIC_EDGE = 21 , VTK_QUADRATIC_TRIANGLE = 22 ,
  VTK_QUADRATIC_QUAD = 23 , VTK_QUADRATIC_TETRA = 24 , VTK_QUADRATIC_HEXAHEDRON = 25 , VTK_NUM_TYPES
}
 
enum  SelectorElements {
  SE_NONE = 0 , SE_VERTEX = 1 , SE_EDGE = 1<<1 , SE_FACE = 1<<2 ,
  SE_VOLUME = 1 << 3 , SE_ALL = SE_VERTEX | SE_EDGE | SE_FACE | SE_VOLUME
}
 Use these constants to specify which elements shall be supported by a Selector. More...
 
enum  SubsetHandlerElements {
  SHE_NONE = 0 , SHE_VERTEX = 1 , SHE_EDGE = 1<<1 , SHE_FACE = 1<<2 ,
  SHE_VOLUME = 1 << 3 , SHE_ALL = SHE_VERTEX | SHE_EDGE | SHE_FACE | SHE_VOLUME
}
 Use these constants to specify which elements shall be supported by a SubsetHandler. More...
 
enum  SubsetState { SS_NONE = 0 , SS_USER_STATE = 1 << 16 }
 The SubsetState is not yet really used inside of libGrid. More...
 

Functions

void AbortRun ()
 sets a flag, that the current run shall be aborted during the next call of TerminateAbortedRun() More...
 
bool absCompare (double a, double b)
 
bool AdaptSurfaceGridToCylinder (Selector &selOut, Grid &grid, Vertex *vrtCenter, const vector3 &normal, number radius, number rimSnapThreshold, AInt &aInt, APosition &aPos=aPosition)
 Performs local remeshing so that the grid is adapted to the given cylinder. More...
 
bool AdaptSurfaceGridToCylinder (Selector &selOut, Grid &grid, Vertex *vrtCenter, const vector3 &normal, number radius, number rimSnapThreshold, APosition &aPos=aPosition)
 Performs local remeshing so that the grid is adapted to the given cylinder. More...
 
void AddAllFromInterface (std::set< size_t > &s, const IndexLayout::Interface &interface)
 
void AddAllFromLayout (std::set< size_t > &s, const IndexLayout &layout)
 
void AddConnectionsBetweenSlaves (pcl::InterfaceCommunicator< IndexLayout > &communicator, IndexLayout &masterLayout, IndexLayout &slaveLayout, IndexLayout &allToAllSend, IndexLayout &allToAllReceive)
 
template<class TLayout >
bool AddEntriesToIndexLayout_DomainDecomposition (IndexLayout &processLayoutOut, IndexLayout &subdomainLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, pcl::IDomainDecompositionInfo *ddInfoIn)
 
template<class TLayout >
bool AddEntriesToLevelIndexLayout (IndexLayout &indexLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, const std::map< int, std::vector< bool > > *pIgnoreMap=NULL)
 
template<class TLayout >
bool AddEntriesToSurfaceIndexLayout (IndexLayout &indexLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, MultiGrid &mg, DistributedGridManager &dGrMgr)
 
bool AddExtraProcessEntriesToSubdomainLayout (size_t numIDs, IndexLayout &processMasterLayoutIn, IndexLayout &processSlaveLayoutIn, IndexLayout &subdomainMasterLayoutInOut, IndexLayout &subdomainSlaveLayoutInOut)
 
template<typename TGridFunction >
void AddFunctionValuesToGridCoordinatesP1 (SmartPtr< TGridFunction > spGridFct, const char *cmp, size_t coordInd)
 
template<typename TGridFunction >
void AddFunctionValuesToGridCoordinatesP1 (SmartPtr< TGridFunction > spGridFct, const char *cmp, size_t coordInd, number timestep)
 
template<typename TGridFunction >
void AddFunctionValuesToGridCoordinatesP1 (SmartPtr< TGridFunction > spGridFct, size_t fct, size_t coordInd, const SubsetGroup &ssGrp, number timestep)
 
template<class TElem >
static void AddGlobalAttachmentsToSerializer (GridDataSerializationHandler &handler, Grid &grid)
 Adds serializers for all registered global attachments. More...
 
template<class TDomain >
static SPIRefMarkAdjuster AddHorizontalAnisotropyAdjuster (IRefiner *ref, TDomain *dom)
 Adds a horizontal-anisotropy-adjuster to the given refiner. More...
 
void AddIfUnique (IndexLayout::Interface &interface, size_t i)
 
template<typename TGlobalToLocal >
void AddLayoutFromGlobalLayout (IndexLayout &layout, GlobalLayout &globalLayout, TGlobalToLocal &globalToLocal, bool bRemoveDoubles=true)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool AddLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool AddLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TMatrix >
void AddLocalMatrixToGlobal (TMatrix &mat, const LocalMatrix &lmat)
 
template<typename TVector >
void AddLocalVector (TVector &vec, const LocalVector &lvec)
 
template<typename A >
void AddMult (A &dest, const A &vec, const double &b)
 
template<typename A , typename B , typename C >
void AddMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B , typename C >
void AddMult (DenseMatrix< A > &dest, const DenseMatrix< B > &mA, const DenseMatrix< C > &mB)
 
template<typename A , typename B >
void AddMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B , typename C >
void AddMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
template<typename A , typename B >
void AddMult (DenseVector< A > &dest, const double &b, const A &vec)
 
void AddMult (number &dest, const number &b, const number &vec)
 
template<typename ABC_type , typename A_type , typename B_type , typename C_type >
void AddMultiplyOf (ABC_type &M, const A_type &A, const B_type &B, const C_type &C, double epsilonTruncation=0.0)
 Calculates M += A*B*C. More...
 
static SPIRefMarkAdjuster AddShadowCopyAdjuster (IRefiner *ref)
 Adds a ShadowCopyAdjuster to the given refiner. More...
 
template<class TElem >
static void AddTargetProcToDistInfos (MGSelector &msel, DistInfoSupplier &distInfos, int targetProc)
 
bool AdjustEdgeLength (Grid &grid, SubsetHandler &shMarks, const AdjustEdgeLengthDesc &desc, int numIterations)
 
bool AdjustEdgeLength (Grid &grid, SubsetHandler &shMarks, number minEdgeLen, number maxEdgeLen, int numIterations, bool projectPoints, bool adaptive)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::string &fcts)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::string &fcts, number mean)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::vector< std::string > &vCmp)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::vector< std::string > &vCmp, number mean)
 
static void AdjustSelection (Grid &grid, Selector &sel)
 
void AdjustSubsetsForLgmNg (Grid &grid, SubsetHandler &sh, bool keepExistingInterfaceSubsets=false)
 reorders subsets in a way that allows for easy export to lgm-ng. More...
 
template<class TSubsetHandler >
void AdjustSubsetsForSimulation (TSubsetHandler &sh, bool preserveExistingSubsets)
 Adjust the grid so that it is ready for simulation with ug4. More...
 
AGeomObjID aGeomObjID ("globalID", false)
 
void AllGatherGrid (Grid &gridOut, Selector &sel, GridDataSerializationHandler &serializer, GridDataSerializationHandler &deserializer, const pcl::ProcessCommunicator &procCom=pcl::ProcessCommunicator())
 AllGathers selected parts of a grid into 'gridOut'. More...
 
DebugID APP ("APP")
 
UG_API void AppendCounterToString (std::string &str, std::string indicator, int counter, int maxCounter=-1)
 appends a counter number to a string More...
 
void AppendCounterToString (string &str, string indicator, int counter, int maxCounter)
 
template<typename TLayout >
bool AppendInterface (TLayout &layout, int pidSource, int pidAppendTo)
 
UG_API std::string AppendSpacesToString (std::string &str, int totalLength)
 padding a string with spaces to predefined length More...
 
string AppendSpacesToString (string &str, int totalLength)
 
void ApplyConstrainedSmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 
template<typename vector_type >
bool ApplyLinearSolver (SmartPtr< ILinearOperator< vector_type > > A, vector_type &u, vector_type &b, SmartPtr< ILinearOperatorInverse< vector_type > > solver)
 
template<class TAPosition >
void ApplySmoothManifoldPosToTopLevelAveragingScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (Averaging scheme) More...
 
template<class TAPosition >
void ApplySmoothManifoldPosToTopLevelButterflyScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (Butterfly scheme) More...
 
template<class TAPosition >
void ApplySmoothManifoldPosToTopLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bCreaseSurf)
 Toplevel vertex repositioning function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void ApplySmoothSubdivisionSurfacesToTopLevel (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets, bool bCreaseSurf)
 Wrapper procedures for smooth subdivision surfaces/volumes hierarchy creation. More...
 
template<class TAPosition >
void ApplySmoothSubdivisionSurfacesToTopLevel (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bCreaseSurf)
 Function to create a smooth subdivision volumes hierarchy. More...
 
template void ApplySmoothSubdivisionSurfacesToTopLevel< APosition > (MultiGrid &mg, APosition &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets, bool bCreaseSurf)
 
template void ApplySmoothSubdivisionSurfacesToTopLevel< APosition1 > (MultiGrid &mg, APosition1 &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets, bool bCreaseSurf)
 
template void ApplySmoothSubdivisionSurfacesToTopLevel< APosition2 > (MultiGrid &mg, APosition2 &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets, bool bCreaseSurf)
 
void ApplySmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 
void ApplySmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bConstrained)
 Function to create a smooth subdivision volumes hierarchy. More...
 
void ApplySmoothVolumePosToTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, bool bConstrained)
 Toplevel vertex repositioning function for subdivision volumes refinement. More...
 
template<class TIterator >
UG_API number AreaFaceQuality (TIterator facesBegin, TIterator facesEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns a value between 0 (bad) and 1 (good) that describes the quality of the area. More...
 
template<class TIterator >
number AreaFaceQuality (TIterator facesBegin, TIterator facesEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns a value between 0 (bad) and 1 (good) that describes the quality of the area. More...
 
template<class TType >
int ArrayEraseEntry (TType *array, const TType &entry, size_t size)
 removes the first occurance of the specified entry. More...
 
template<class TType >
bool ArrayReplaceEntry (TType *array, const TType &newEntry, const TType &oldEntry, size_t size)
 replaces the first occurance of oldEntry with newEntry More...
 
template<class TType >
void ArraySwapWithLast (TType *array, const TType &entry, size_t size)
 Swaps the first entry with the given value with the last entry in the list. More...
 
template<class TAAPos >
number AspectRatio (FaceVertices *f, TAAPos &aaPos)
 Returns the aspect ratio of a face. More...
 
template<class TAAPos >
number AspectRatio (Volume *vol, TAAPos &aaPos)
 
template<int dim, typename TAlgebra >
void AssembleInjectionByAverageOfChildren (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleInjectionByAverageOfChildren (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleInjectionForP1Lagrange (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleLinearOperatorRhsAndSolution (AssembledLinearOperator< TAlgebra > &op, typename TAlgebra::vector_type &u, typename TAlgebra::vector_type &b)
 help function to assemble a linear operator More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedEdgesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated edges of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedFacesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated faces of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler)
 Assigns associated elements of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Edge &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Face &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Volume &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedSidesToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler)
 Assigns associated sides of elements of type TElem in sh to sh. More...
 
template<class TIterator >
void AssignAssociatedVerticesToSubset (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, int subsetIndex)
 assigns vertices of the given elements to the subset at subsetIndex More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedVerticesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated vertices of elements of type TElem in sh to sh. More...
 
static void AssignCreaseVertices (Grid &grid, SubsetHandler &shMarks)
 
static void AssignCreaseVertices (Grid &grid, SubsetHandler &shMarks)
 
void AssignDefaultSubsetColors (ISubsetHandler &sh)
 assigns ug4's default subset colors More...
 
void AssignFaceInterfaceEdgesToSubsets (Grid &grid, SubsetHandler &sh)
 assigns edges which belong to no subset and are adjacent to faces of different subsets to new subsets. More...
 
static void AssignFixedVertices (Grid &grid, SubsetHandler &shMarks)
 
static void AssignFixedVertices (Grid &grid, SubsetHandler &shMarks)
 
void AssignGridToSubset (Grid &g, ISubsetHandler &sh, int subsetInd)
 Assigns all elements of the given grid to the given subset. More...
 
template<class TIterator , class TAAInt >
void AssignIndices (TIterator begin, TIterator end, TAAInt &aaInt, int baseIndex=0)
 assigns indices to the elements between begin and end. More...
 
template<class TElem >
void AssignIndices (typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, Grid::AttachmentAccessor< TElem, AInt > &aaInt)
 
void AssignInnerAndBoundarySubsets (Grid &grid, ISubsetHandler &shOut, int inSubset, int bndSubset)
 assigns objects to subsets depending on whether they are inner or boundary objects. More...
 
template<typename A >
void AssignMult (A &dest, const A &vec, const double &b)
 
template<typename A , typename B , typename C >
void AssignMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B , typename C >
void AssignMult (DenseMatrix< A > &dest, const DenseMatrix< B > &mA, const DenseMatrix< C > &mB)
 
template<typename A , typename B >
void AssignMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B , typename C >
void AssignMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
template<typename A , typename B >
void AssignMult (DenseVector< A > &dest, const double &b, const DenseVector< B > &vec)
 
void AssignMult (number &dest, const number &b, const number &vec)
 
void AssignRegionToSubset (Grid &grid, ISubsetHandler &shVolsOut, const ISubsetHandler &shFaces, Volume *proxyVol, int newSubsetIndex)
 assigns a region of volumes to a subset. More...
 
template<class TElem , class TSelector >
void AssignSelectionStateToSides (TSelector &sel, bool recursive)
 Assigns the selection state of selected elements to associated sides. More...
 
void AssignSelectionToSubset (ISelector &sel, ISubsetHandler &sh, int subsetInd)
 Assigns all selected elements to the specified subset. More...
 
template<class TElem >
void AssignSidesToSubsets (ISubsetHandler &sh, ISelector *psel=NULL)
 Assigns all sides of elements of the given type to a separate subset. More...
 
template void AssignSidesToSubsets< Edge > (ISubsetHandler &, ISelector *)
 
template void AssignSidesToSubsets< Face > (ISubsetHandler &, ISelector *)
 
template void AssignSidesToSubsets< Volume > (ISubsetHandler &, ISelector *)
 
template<class TDomain >
void AssignSubset_VerticesInCube (TDomain &dom, const typename TDomain::position_type &min, const typename TDomain::position_type &max, int si)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<class TDomain >
void AssignSubset_VerticesInSphere (TDomain &dom, const typename TDomain::position_type &center, const number radius, int si)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
void AssignSubsetColors (ISubsetHandler &sh)
 assigns a different color to each subset More...
 
void AssignSubsetColorsBlueToGreen (ISubsetHandler &sh, int firstSi, int numSi)
 
void AssignSubsetColorsRedToGreen (ISubsetHandler &sh, int firstSi, int numSi)
 
void AssignSubsetsByElementQuality (Grid &grid, SubsetHandler &sh, int dim, int numSecs)
 
void AssignSubsetsByElementQuality (MultiGrid &mg, MGSubsetHandler &sh, int dim, int numSecs)
 
void AssignSubsetsByElementQuality3d (MultiGrid &grid, MGSubsetHandler &sh, int numSecs)
 
template<class TElem >
static void AssignSubsetsByInterfaceType (SubsetHandler &sh, MultiGrid &mg)
 
template<class TElem >
static void AssignSubsetsByLevel (SubsetHandler &sh, MultiGrid &mg)
 
template<class TIterator >
bool AssignSubsetsByQuality (Grid &grid, SubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, std::vector< number > intervals)
 assigns a subset based on the quality of the given element. More...
 
template<class TElem >
static void AssignSubsetsBySurfaceViewState (SubsetHandler &sh, const SurfaceView &sv, MultiGrid &mg)
 
void AssignSubsetToElementWithSmallestMinAngle (MultiGrid &grid, MGSubsetHandler &sh, int dim, const char *roid, int si)
 
void AssignSubsetToElementWithSmallestMinAngle2d (MultiGrid &grid, MGSubsetHandler &sh, const char *roid, int si)
 
void AssignSubsetToElementWithSmallestMinAngle3d (MultiGrid &grid, MGSubsetHandler &sh, const char *roid, int si)
 
bool AssignTetrahedronAttributesByAspectRatio (Grid &grid, SubsetHandler &shVolume, AInt &aTetrahedronAspectRatioClass, std::vector< double > &offsets, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 assigns tetrahedral elements of a grid to subsets respecting their aspect ratio More...
 
bool AssignTetrahedronAttributesByAspectRatio (Grid &grid, SubsetHandler &shVolume, AInt &aTetrahedronAspectRatioClass, vector< double > &offsets, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 assigns attributes to tetrahedral elements of a grid respecting their aspect ratio More...
 
template<class TElem , class TSubsetHandler >
void AssignUnassignedElemsToSubset (TSubsetHandler &sh, int si)
 Assigns all elements of type TElem with subset index -1 to subset at index si. More...
 
template<class TElem >
static void AssignVerticalMasterAndSlaveStates (MGSelector &msel, bool partitionForLocalProc)
 
void AssignVolumeInterfaceFacesToSubsets (Grid &grid, SubsetHandler &sh)
 assigns faces which belong to no subset and are adjacent to volumes of different subsets to new subsets. More...
 
bool AttachAct (Grid &grid, const char *filename, string name)
 
template<typename TElem , typename AType >
void AttachmentAllReduce (Grid &grid, AType aValue, pcl::ReduceOperation op)
 
bool AttachProperty (Grid &grid, const char *filename, string name)
 
template<typename TDomain , typename TAlgebra >
number AverageFunctionDifference (SmartPtr< GridFunction< TDomain, TAlgebra > > spGridFct, std::string subset, std::string fct1, std::string fct2)
 Calculates the average of the pointwise difference of two functions on given subset. More...
 
template<typename TPosition >
void AveragePositions (TPosition &vOut, const TPosition *vCornerCoords, size_t num)
 averages positions by arithmetic mean More...
 
template<typename TSparseMatrix , typename vector_t >
bool Axpy_transposedCommonSparseMatrix (const TSparseMatrix &A, vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1)
 
template<typename TSparseMatrix , typename vector_t >
bool AxpyCommonSparseMatrix (const TSparseMatrix &A, vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1)
 
template<typename Matrix_type , typename Vector_type >
void backward_gs_step (Vector_type &c, const Matrix_type &A, const Vector_type &d, const size_t i, const number relaxFactor)
 
void baseName (std::string &nameOut, const std::string &nameIn)
 
static int Bevel2d (const vector3 &p)
 
static int Bevel3d (const vector3 &p)
 
int BinomCoeff (int n, int k)
 Returns the BinomialCoefficient. More...
 
template<size_t Tr, size_t Tc>
bool BlockDeserialize (std::istream &buff, const DenseMatrix< FixedArray2< number, Tr, Tc > > &mat)
 
template<typename TBlock >
bool BlockMatrixFiniteAndNotTooBig (TBlock &m, double tooBigValue=1e24)
 
template<typename TMatrix >
void BlockMatrixToDoubleMatrix (DenseMatrix< VariableArray2< double > > &Ad, TMatrix &Ab)
 
template<typename A >
double BlockMaxNorm (const DenseVector< A > &v)
 
template<>
number BlockMaxNorm (const number &a)
 
template<typename T >
number BlockMaxNorm (const T &t)
 
template<>
number BlockNorm (const number &a)
 
template<typename T >
number BlockNorm (const T &t)
 
template<typename TYPE >
double BlockNorm (const TYPE &v)
 
template<typename A >
double BlockNorm2 (const DenseMatrix< A > &mat)
 
template<typename A >
double BlockNorm2 (const DenseVector< A > &v)
 
template<>
number BlockNorm2 (const number &a)
 
template<typename T >
number BlockNorm2 (const T &t)
 
template<typename TYPE >
double BlockNorm2 (const TYPE &v)
 
template<>
const numberBlockRef (const number &m, size_t i)
 
template<>
const numberBlockRef (const number &m, size_t i, size_t j)
 
template<typename T >
const double & BlockRef (const T &mat, size_t i, size_t j)
 
template<typename T >
const double & BlockRef (const T &vec, size_t i)
 
template<>
numberBlockRef (number &m, size_t i)
 
template<>
numberBlockRef (number &m, size_t i, size_t j)
 
template<typename T >
double & BlockRef (T &mat, size_t i, size_t j)
 
template<typename T >
double & BlockRef (T &vec, size_t i)
 
template<size_t Tr, size_t Tc>
bool BlockSerialize (const DenseMatrix< FixedArray2< number, Tr, Tc > > &mat, std::ostream &buff)
 
template<typename TBlock >
bool BlockVectorFiniteAndNotTooBig (TBlock &v, double tooBigValue=1e24)
 
template<class T >
void BlurField (Field< T > &field, number alpha, size_t numIterations, const T &noDataValue)
 Smoothens the field by adjusting the value of each pixel towards the average of its neighbours. More...
 
template<class vector_t >
bool BoxBoundProbe (const vector_t &v, const vector_t &boxMin, const vector_t &boxMax)
 Returns true if the point lies inside or on the boundary of the box. More...
 
template<class vector_t >
bool BoxBoxIntersection (const vector_t &box1Min, const vector_t &box1Max, const vector_t &box2Min, const vector_t &box2Max)
 checks whether two boxes intersect. More...
 
static void bp_defect_and_gradient (number &defectOut, vector3 &gradientOut, const std::vector< NeuriteProjector::BPProjectionHelper > &bpList, const vector3 &x, number rad, const vector3 &constAngleSurfNormal, const NeuriteProjector *np)
 
static void bp_newton_start_pos (vector3 &initOut, uint32_t neuriteID, float t, float angle, float rad, const vector3 &constAngleSurfaceNormal, const IVertexGroup *parent, const NeuriteProjector *np)
 
void BroadcastGrid (Grid &gridOut, Selector &sel, GridDataSerializationHandler &serializer, GridDataSerializationHandler &deserializer, int root, const pcl::ProcessCommunicator &procCom=pcl::ProcessCommunicator())
 Broadcasts the specified Selection from 'root' to all processes in procCom. More...
 
template<typename T >
void BroadcastVectorFromOne (HorizontalAlgebraLayouts &agglomerationLayout, ParallelVector< T > &vec, const ParallelVector< T > &collectedVec, ParallelStorageType type)
 
template<typename T >
void BroadcastVectorFromOne (IndexLayout &agglomeratedMaster, IndexLayout &agglomeratedSlave, pcl::InterfaceCommunicator< IndexLayout > &com, ParallelVector< T > &vec, const ParallelVector< T > &collectedVec, ParallelStorageType type, bool bRoot)
 
void BuildDomainDecompositionLayouts (IndexLayout &subdomMastersOut, IndexLayout &subdomSlavesOut, IndexLayout &processMastersOut, IndexLayout &processSlavesOut, IndexLayout &deltaNbrMastersOut, IndexLayout &deltaNbrSlavesOut, IndexLayout &crossPointMastersOut, IndexLayout &crossPointSlavesOut, const IndexLayout &standardMasters, const IndexLayout &standardSlaves, int highestReferencedIndex, IDomainDecompositionInfo &ddinfo)
 
int BuildOneToManyLayout (IndexLayout &masterLayoutOut, IndexLayout &slaveLayoutOut, int rootProcID, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::ProcessCommunicator procComm, std::vector< int > *pNewMasterIDsOut)
 
void CalcTotalMem (const Shiny::ProfileNode *p)
 
template<class TAAPosVRT >
void CalculateAngles (vector< number > &vAnglesOut, Grid &grid, Face *f, TAAPosVRT &aaPos)
 Face. More...
 
template<class TElem , class TAAPosVRT >
number CalculateAngles (vector< number > &vAnglesOut, Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
void CalculateAngles (vector< number > &vAnglesOut, Grid &grid, Volume *v, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Face *face, TAAPosVRT &aaPos)
 CalculateAspectRatio for faces. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Hexahedron *hex, TAAPosVRT &aaPos)
 Hexahedron. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Pyramid *pyr, TAAPosVRT &aaPos)
 Pyramid. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Quadrilateral *quad, TAAPosVRT &aaPos)
 Quadrilaterals. More...
 
template<class TElem , class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Triangle *tri, TAAPosVRT &aaPos)
 Triangles and Constrained Triangles. More...
 
template<class TAAPosVRT >
number CalculateAspectRatio (Grid &grid, Volume *vol, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateAverageCurvature (Grid &grid, SubsetHandler &shMarks, Edge *e, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
number CalculateAverageEdgeLength (Grid &grid, TAAPosVRT &aaPos)
 Returns the average length of edges in the given grid. More...
 
template<class TVrtIter , class TAPosition >
UG_API TAPosition::ValueType CalculateBarycenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::VertexAttachmentAccessor< TAPosition > &aaPos)
 calculates the barycenter of a set of vertices More...
 
template<class TVrtIter , class TAPosition >
TAPosition::ValueType CalculateBarycenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::VertexAttachmentAccessor< TAPosition > &aaPos)
 calculates the barycenter of a set of vertices More...
 
template<class TAAPosVRT >
UG_API void CalculateBoundaryVertexNormal2D (typename TAAPosVRT::ValueType &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated faces More...
 
template<class TAAPosVRT >
void CalculateBoundaryVertexNormal2D (typename TAAPosVRT::ValueType &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated faces More...
 
template<class TAAPosVRT >
UG_API void CalculateBoundaryVertexNormal3D (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated volumes More...
 
template<class TAAPosVRT >
void CalculateBoundaryVertexNormal3D (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated volumes More...
 
template<int dim>
void CalculateBoundingBox (size_t npoints, const MathVector< dim > points[], MathVector< dim > &vMinBB, MathVector< dim > &vMaxBB)
 Determine the bounding box for a set of points. More...
 
template<class TElem , class TAAPos >
AABox< typename TAAPos::ValueType > CalculateBoundingBox (TElem *e, TAAPos aaPos)
 calculates the smallest axis aligned box that contains the given element More...
 
template<class TVrtIter , class TAPosition >
UG_API void CalculateBoundingBox (typename TAPosition::ValueType &vMinOut, typename TAPosition::ValueType &vMaxOut, TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the BoundingBox More...
 
template<class TVrtIter , class TAPosition >
void CalculateBoundingBox (typename TAPosition::ValueType &vMinOut, typename TAPosition::ValueType &vMaxOut, TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the BoundingBox More...
 
template<class vector_t , class TIterator , class TAAPos >
UG_API void CalculateBoundingBox (vector_t &vMinOut, vector_t &vMaxOut, TIterator begin, TIterator end, TAAPos &aaPos)
 Calculates the bounding box of a set of geometric objects. More...
 
template<class vector_t , class TIterator , class TAAPos >
void CalculateBoundingBox (vector_t &vMinOut, vector_t &vMaxOut, TIterator begin, TIterator end, TAAPos &aaPos)
 Calculates the bounding box of a set of geometric objects. More...
 
template<class TAAPos >
AABox< typename TAAPos::ValueType > CalculateBoundingBox (Vertex *e, TAAPos aaPos)
 calculates the smallest axis aligned box that contains the given vertex More...
 
template<class TAAPos >
Sphere< typename TAAPos::ValueType > CalculateBoundingSphere (FaceVertices *face, TAAPos aaPos)
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Edge *e, TVertexPositionAttachmentAccessor &aaPosVRT)
 Calculates the center of an edge. More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Edge *e, TVertexPositionAttachmentAccessor &aaPosVRT)
 Calculates the center of an edge. More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const EdgeVertices *e, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given edge More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const FaceVertices *f, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given face More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const FaceVertices *f, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a face. More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Vertex *v, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the position of the vertex. More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const VolumeVertices *vol, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given volume More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const VolumeVertices *vol, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a volume by averaging the positions of its corners More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const VolumeVertices *vol, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a volume by averaging the positions of its corners More...
 
template<class TIterator , class TAAPosVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (TIterator begin, TIterator end, TAAPosVRT &aaPos)
 calculates the center for a set of elements More...
 
template<class TIterator , class TAAPosVRT >
TAAPosVRT::ValueType CalculateCenter (TIterator begin, TIterator end, TAAPosVRT &aaPos)
 calculates the center for a set of elements More...
 
template<class TVrtIter , class TAPosition >
UG_API TAPosition::ValueType CalculateCenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the center of a set of vertices. More...
 
template<class TVrtIter , class TAPosition >
TAPosition::ValueType CalculateCenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the center of a set of vertices. More...
 
template<class TAAPosVRT >
bool CalculateCenter (typename TAAPosVRT::ValueType &centerOut, Selector &sel, TAAPosVRT &aaPos)
 calculates the center of selected objects More...
 
template<class vector_t >
void CalculateCenter (vector_t &centerOut, const vector_t *pointSet, size_t numPoints)
 calculates the center of a point-set More...
 
void CalculateConstrainedSmoothVolumePosInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, APosition &aSmoothVolPos_toc)
 Toplevel vertex smoothing function for subdivision volumes refinement. More...
 
void CalculateCovarianceMatrix (matrix33 &matOut, const vector3 *pointSet, const vector3 &center, size_t numPoints)
 Calculates the covariance matrix of a given point-set. More...
 
template<class TAAPosVRT >
TAAPosVRT::ValueType CalculateCreaseNormal (Grid &grid, Face *f, Vertex *vrt, Grid::edge_traits::callback funcIsCreaseEdge, TAAPosVRT &aaPos)
 returns true if the vertex lies on a surface. More...
 
template<class TAAPosVRT >
TAAPosVRT::ValueType CalculateCreaseNormal (Grid &grid, Volume *vol, Vertex *vrt, Grid::face_traits::callback funcIsCreaseFace, TAAPosVRT &aaPos)
 calculates the normal of the crease vertex vrt on the side of vol More...
 
bool CalculateEigenvalues (const ug::matrix33 &mat, number &lambdaMinOut, number &lambdaMedOut, number &lambdaMaxOut, ug::vector3 &evMinOut, ug::vector3 &evMedOut, ug::vector3 &evMaxOut)
 
void CalculateFaceNormals (Grid &grid, const FaceIterator &facesBegin, const FaceIterator &facesEnd, AVector3 &aPos, AVector3 &aNorm)
 calculates the normal of each face. Presumes that all faces are flat. More...
 
template<class TAAPosVRT >
UG_API TAAPosVRT::ValueType CalculateGridObjectCenter (const GridObject *o, TAAPosVRT &aaPosVRT)
 calculates the center for arbitrary geometric object More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateGridObjectCenter (const GridObject *o, TAAPosVRT &aaPosVRT, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given geometric object More...
 
number CalculateHexahedronAspectRatio (Grid &grid, Hexahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the aspect ratio of a hexahedral element More...
 
UG_API number CalculateHexahedronVolToRMSFaceAreaRatio (Grid &grid, Hexahedron *hex, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
number CalculateHexahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f, const vector3 &g, const vector3 &h)
 
template<class TAAPosVRT >
number CalculateLengthFac (Grid &grid, SubsetHandler &shMarks, Edge *e, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, Face *f, TAAPosVRT &aaPos)
 Face (Triangles and Quadrilaterals) More...
 
template<class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, Prism *prism, TAAPosVRT &aaPos)
 Prism. More...
 
template<class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, Pyramid *pyr, TAAPosVRT &aaPos)
 Pyramid. More...
 
template<class TElem , class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateMaxAngle (Grid &grid, Volume *vol, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateMaxDihedral (Grid &grid, Prism *prism, TAAPosVRT &aaPos)
 Prism. More...
 
template<class TAAPosVRT >
number CalculateMaxDihedral (Grid &grid, Pyramid *pyr, TAAPosVRT &aaPos)
 Pyramid. More...
 
template<class TElem , class TAAPosVRT >
number CalculateMaxDihedral (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateMaxDihedral (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateMaxDihedral (Grid &grid, Volume *v, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Face *f, TAAPosVRT &aaPos)
 Face (Triangles and Quadrilaterals) More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Hexahedron *hex, TAAPosVRT &aaPos)
 Hexahedron. More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Prism *prism, TAAPosVRT &aaPos)
 Prism. More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Pyramid *pyr, TAAPosVRT &aaPos)
 Pyramid. More...
 
template<class TElem , class TAAPosVRT >
number CalculateMinAngle (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateMinAngle (Grid &grid, Volume *vol, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateMinCurvature (Grid &grid, SubsetHandler &shMarks, Vertex *vrt, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, Hexahedron *hex, TAAPosVRT &aaPos)
 Hexahedron. More...
 
template<class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, Prism *prism, TAAPosVRT &aaPos)
 Prism. More...
 
template<class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, Pyramid *pyr, TAAPosVRT &aaPos)
 Pyramid. More...
 
template<class TElem , class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateMinDihedral (Grid &grid, Volume *v, TAAPosVRT &aaPos)
 Volume. More...
 
template<class TAAPosVRT >
number CalculateMinTriangleHeight (Face *face, TAAPosVRT &aaPos)
 
number CalculateMinVolumeHeight (Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the minimal height of a volume element of type tetrahedron More...
 
vector2 CalculateNormal (EdgeVertices *edge, Grid::AttachmentAccessor< Vertex, APosition2 > &aaPos)
 
vector2 CalculateNormal (EdgeVertices *edge, Grid::AttachmentAccessor< Vertex, Attachment< vector2 > > &aaPos)
 
vector3 CalculateNormal (FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 
vector3 CalculateNormal (FaceVertices *face, Grid::AttachmentAccessor< Vertex, Attachment< vector3 > > &aaPos)
 
void CalculateNormal (vector3 &vNormOut, const FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 calculates the normal of the given face More...
 
int CalculateNormal (vector3 &vNormOut, Grid &grid, Edge *e, Grid::AttachmentAccessor< Vertex, APosition > &aaPos, Grid::AttachmentAccessor< Face, ANormal > *paaNormFACE=NULL)
 Calculates the normal of the given edge. More...
 
template<class TVertexPositionAccessor >
number CalculateNormalDot (TriangleDescriptor &td1, TriangleDescriptor &td2, TVertexPositionAccessor &aaPos)
 
template<class TVertexPositionAccessor >
static number CalculateNormalDot (TriangleDescriptor &td1, TriangleDescriptor &td2, TVertexPositionAccessor &aaPos)
 
void CalculateNormalNoNormalize (vector3 &vNormOut, FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 calculates the normal of the given face More...
 
int CalculateNormalNoNormalize (vector3 &vNormOut, Grid &grid, Edge *e, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid::FaceAttachmentAccessor< ANormal > *paaNormFACE=NULL)
 Calculates the normal of the given edge. More...
 
void CalculateNumElemsVertexAttachmentInTopLevel (MultiGrid &mg, AInt &aNumElems_toc, AInt &aNumElems_prism, AInt &aNumElems_hex)
 Function for calculating the number of associated volumes of all toplevel vertices. More...
 
void CalculateNumManifoldEdgesVertexAttachmentInParentLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldEdges, bool bCreaseSurf)
 Function for calculating the number of associated manifold edges of all parent level vertices. More...
 
void CalculateNumManifoldFacesVertexAttachmentInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldFaces_tri, AInt &aNumManifoldFaces_quad)
 Function for calculating the number of associated manifold faces of all toplevel manifold vertices. More...
 
number CalculateOctahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Edge *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Face *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (GridObject *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Vertex *v, int sideIndex, TAAPos aaPos)
 Calculates the outer normal of the i-th side of the given grid object. More...
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Volume *v, int sideIndex, TAAPos aaPos)
 
void CalculatePolychainEdgeNormals (vector2 *edgeNormalsOut, vector2 *polyChain, size_t polyChainSize, bool bOuterNormals)
 
number CalculatePrismVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f)
 
number CalculatePyramidAspectRatio (Grid &grid, Pyramid *pyr, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the aspect ratio of a pyramidal element Pyramid aspect ratio (AR) is the ratio of the height of the pyramid and the average length of the base's (quadrilateral) edges. The AR can be less than 1. The height is the distance from the base to the top of the pyramid in normal direction. More...
 
number CalculatePyramidVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e)
 
number CalculateRightBendVal (vector2 &dirOut, number &normDotOut, SweepLineEdge &e, SweepLineVertex *firstVrt, vector2 lastDir, bool lastDirNormalized=false)
 returns a value between -1 and 1, determining the magnitude of the right bend. More...
 
template<class TAPosition >
void CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosEvenVrt, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision crease surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void CalculateSmoothManifoldPosInParentLevelButterflyScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision surfaces refinement (Butterfly scheme) More...
 
template<class TAPosition >
void CalculateSmoothManifoldPosInParentLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosEvenVrt, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void CalculateSmoothManifoldPosInTopLevelAveragingScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPos_tri, TAPosition &aSmoothBndPos_quad)
 Toplevel vertex smoothing function for subdivision surfaces refinement (Averaging scheme) More...
 
void CalculateSmoothVolumePosInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, APosition &aSmoothVolPos_toc, APosition &aSmoothVolPos_prism, APosition &aSmoothVolPos_hex)
 Toplevel vertex smoothing function for subdivision volumes refinement. More...
 
number CalculateSubsetSurfaceArea (MultiGrid &mg, int subsetIndex, MGSubsetHandler &sh)
 
number CalculateSubsetVolume (MultiGrid &mg, int subsetIndex, MGSubsetHandler &sh)
 
number CalculateTetrahedronAspectRatio (Grid &grid, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the aspect ratio of a tetrahedral element More...
 
UG_API number CalculateTetrahedronRootMeanSquareFaceArea (Grid &grid, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
UG_API number CalculateTetrahedronVolToRMSFaceAreaRatio (Grid &grid, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
number CalculateTetrahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d)
 
void CalculateTriangleNormal (SimpleGrid &sg, int triIndex)
 caculates the normal of the given triangle and stores it in sg.triangleNormals[triIndex] More...
 
template<typename vector_t >
void CalculateTriangleNormal (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Calculates a triangle-normal in 3d (output has length 1). More...
 
template<typename vector_t >
void CalculateTriangleNormalNoNormalize (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Calculates a triangle-normal in 3d (no normalization is performed). More...
 
void CalculateTriangleNormals (SimpleGrid &sg)
 resizes sg.triangleNormals and calculates them More...
 
template<class TAAPosVRT >
UG_API void CalculateVertexNormal (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a vertex using associated faces More...
 
template<class TAAPosVRT >
void CalculateVertexNormal (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a vertex using associated faces More...
 
template<class TAAPosVRT >
number CalculateVolToRMSFaceAreaRatio (Grid &grid, Face *face, TAAPosVRT &aaPos)
 Face (Triangles and Constrained Triangles supported) More...
 
template<class TAAPosVRT >
number CalculateVolToRMSFaceAreaRatio (Grid &grid, Hexahedron *hex, TAAPosVRT &aaPos)
 Hexahedron. More...
 
template<class TElem , class TAAPosVRT >
number CalculateVolToRMSFaceAreaRatio (Grid &grid, TElem *elem, TAAPosVRT &aaPos)
 An unimplemented version, so that a compile error occurs if no overload exists. More...
 
template<class TAAPosVRT >
number CalculateVolToRMSFaceAreaRatio (Grid &grid, Tetrahedron *tet, TAAPosVRT &aaPos)
 Tetrahedron. More...
 
template<class TAAPosVRT >
number CalculateVolToRMSFaceAreaRatio (Grid &grid, Volume *vol, TAAPosVRT &aaPos)
 Volume. More...
 
void cflNumber (TGridFunction &u, number deltaT)
 
void cgetrf_ (lapack_int *m, lapack_int *n, std::complex< lapack_float > *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void cgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const std::complex< lapack_float > *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, std::complex< lapack_float > *b, lapack_int *ldb, lapack_int *info)
 
UG_API void ChangeDirectory (std::string dir)
 Changes the current directory. More...
 
number Chebyshev1Poly (size_t k, number x)
 
number Chebyshev2Poly (size_t k, number x)
 
void check_subset_strings (std::vector< std::string > s)
 
template<typename TSparseMatrix >
bool CheckDiagonalInvertible (const ParallelMatrix< TSparseMatrix > &m)
 
template<typename TSparseMatrix >
bool CheckDiagonalInvertible (const TSparseMatrix &A)
 
template<class TElem1 , class TElem2 , class TAAPos >
bool CheckDirection (TElem1 *e1, TElem2 *e2, const TAAPos &aaPos, const typename TAAPos::ValueType &dir, number minAngle, number maxAngle)
 Checks whether the center of e2 can be reached from the center of e1 in the given direction. More...
 
template<class TElem >
static bool CheckDistributedObjectConstraintTypes (MultiGrid &mg)
 Checks whether distributed objects have the same type on all processes. More...
 
bool CheckDistributedParentTypes (MultiGrid &mg)
 Check whether local parent types match the type of the actual parent element. More...
 
template<typename TDomain , typename TBaseElem >
bool CheckDoFElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
bool CheckEnoughTimePassedToNow (ProfileCall &pc, Shiny::tick_t tnow)
 
bool CheckForUnconnectedSides (Grid &grid)
 Logs all unconnected sides to UG_ERR_LOG and returns true if an unconnected side was found. More...
 
template<class TSide >
static bool CheckForUnconnectedSidesIMPL (Grid &grid)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFforNaN (const TGridFunction *u, const char *fct_names)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFforNaN (const TGridFunction *u, const FunctionGroup &fctGroup)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFforNaN (const TGridFunction *u, size_t fct)
 
template<typename TGridFunction >
bool CheckGFValuesWithinBounds (ConstSmartPtr< TGridFunction > u, const char *fctNames, number lowerBnd, number upperBnd)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFValuesWithinBounds (ConstSmartPtr< TGridFunction > u, size_t cmp, number lowerBnd, number upperBnd)
 
template<typename TGridFunction >
bool CheckGFValuesWithinBounds (ConstSmartPtr< TGridFunction > u, size_t cmp, number lowerBnd, number upperBnd)
 
bool CheckHangingNodeConsistency (Grid &g)
 checks whether all constraining and constrained objects are correctly connected. More...
 
bool CheckHangingNodeConsistency (MultiGrid &mg)
 checks whether a multigrid is a valid haging vertex grid. More...
 
template<typename T >
void CheckHangingNodeConstrainingFace (bool isConsistent, Grid &g, T iter, T end)
 
static int CheckLine (const vector3 &p1, const vector3 &p2, int outcode_diff)
 
template<class TElem >
bool CheckLocalParentTypes (MultiGrid &mg)
 
bool CheckLuaCallbackName (const char *name)
 returns true if callback exists More...
 
void CheckMultiGridConsistency (MultiGrid &mg)
 Checks whether parent child connections in a multi-grid are correct. More...
 
template<class TElem >
static void CheckMultiGridConsistencyImpl (MultiGrid &mg)
 
template<class TAAPosVRT >
bool CheckOrientation (Volume *vol, TAAPosVRT &aaPosVRT)
 returns true if the volume is oriented so that all sides point to this outside. More...
 
bool CheckPermutationBijective (const std::vector< size_t > &perm)
 
static int CheckPoint (const vector3 &p1, const vector3 &p2, number alpha, long mask)
 
template<typename TSparseMatrix >
bool CheckRowIterators (const TSparseMatrix &A)
 
void checksub (const CPUAlgebra::matrix_type &A)
 
void CheckValences (MultiGrid &mg, MGSubsetHandler &markSH, const char *filename)
 Function for checking the number of associated volumes of all edges. More...
 
template<typename TVector >
bool CheckVectorInvertible (const ParallelVector< TVector > &v)
 
template<typename TVector >
bool CheckVectorInvertible (const TVector &v)
 
void ClearAbortRunFlag ()
 clears the abort-run-flag. More...
 
template<class TNumber >
TNumber clip (TNumber val, TNumber lowerBound, TNumber upperBound)
 clips a number to the given interval [lowerBound, upperBound]. More...
 
template<typename TVector >
bool CloneVector (ParallelVector< TVector > &dest, const ParallelVector< TVector > &src)
 
template<typename TValueType >
void CloneVector (Vector< TValueType > &dest, const Vector< TValueType > &src)
 
template<typename TAAPos >
AnisotropyState close_sides_of_anisotropic_elem (Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Vertex * > &sidesOut)
 
template<typename TAAPos >
AnisotropyState close_sides_of_anisotropic_elem (Face *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &sidesOut)
 
template<typename TAAPos >
AnisotropyState close_sides_of_anisotropic_elem (Volume *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Face * > &sidesOut)
 
bool CloseLibrary (DynLibHandle h)
 Frees a library. More...
 
template<class TSelector >
void CloseSelection (TSelector &sel)
 Selects all associated elements of lower dimensions. More...
 
template<class TSelector >
UG_API void CloseSelection (TSelector &sel)
 Selects all associated elements of lower dimensions. More...
 
template void CloseSelection< MGSelector > (MGSelector &sel)
 
template void CloseSelection< Selector > (Selector &sel)
 
bool CloseToZero (double d)
 
bool cmp_slv (const SweepLineVertex &v1, const SweepLineVertex &v2)
 
static bool cmpQPairs (const std::pair< number, number > &a, const std::pair< number, number > &b)
 
bool CollapseEdge (Grid &grid, Edge *e, Vertex *newVrt)
 Collapses the specified edge performs local grid restructuring. More...
 
bool CollapseEdge (SimpleGrid &sg)
 
static bool CollectAllVerticesForNG (Grid &grid, VertexSelector &NgVrtSel, VertexSelector &SurfVrtSel, VertexSelector &InnVrtSel)
 collects all vertices in *.ng file order in a selector More...
 
void CollectAspectRatios (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos, vector< number > &aspectRatios)
 
void CollectAssociated (std::vector< Edge * > &vEdgesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Face * > &vFacesOut, Grid &grid, Face *vol, bool clearContainer=true)
 Collects all faces. (Returns the face itself) More...
 
void CollectAssociated (std::vector< Face * > &vFacesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Face * > &vFacesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 
UG_API void CollectAssociated (std::vector< Vertex * > &vVertexOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, Volume *vol, bool clearContainer=true)
 Collects all volumes. (Returns the volume itself) More...
 
UG_API void CollectAssociatedSides (Edge *sidesOut[2], Grid &grid, Face *f, Vertex *vrt)
 Collects all edges (= 2) which exist in the given face and which share the given vertex. More...
 
UG_API void CollectAssociatedSides (Face *sidesOut[2], Grid &grid, Volume *v, Edge *e)
 Collects all faces (= 2) which exist in the given volume and which share the given edge. More...
 
void CollectConstraining (std::vector< Vertex * > &vConstrainingVrt, const Grid &grid, ConstrainedVertex *hgVrt, bool bClearContainer)
 returns the vertices of the object constraining a hanging vertex More...
 
template<typename TDomain >
void CollectCornerCoordinates (int base_object_id, std::vector< typename TDomain::position_type > &vCornerCoordsOut, GridObject &elem, const TDomain &domain, bool clearContainer)
 returns the corner coordinates of a geometric object More...
 
template<typename TElem , typename TAAPos >
void CollectCornerCoordinates (std::vector< typename TAAPos::ValueType > &vCornerCoordsOut, const TElem &elem, const TAAPos &aaPos, bool clearContainer=true)
 returns the corner coordinates of a geometric object More...
 
template<typename TElem , typename TAAPos >
void CollectCornerCoordinates (std::vector< typename TAAPos::ValueType > &vCornerCoordsOut, TElem *elem, const TAAPos &aaPos, bool clearContainer)
 
template<typename TElem , typename TDomain >
void CollectCornerCoordinates (std::vector< typename TDomain::position_type > &vCornerCoordsOut, const TElem &elem, const TDomain &domain, bool clearContainer=true)
 returns the corner coordinates of a geometric object More...
 
void CollectEdges (vector< Edge * > &vEdgesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all edges. (Returns the edge itself) More...
 
void CollectEdges (vector< Edge * > &vEdgesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given face. More...
 
void CollectEdges (vector< Edge * > &vEdgesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge * > &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge in the order defined by the reference elements. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge * > &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face in the order defined by the reference elements. More...
 
void CollectEdgesSorted (std::vector< Edge * > &vEdgesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
UG_API void CollectEdgesSorted (std::vector< Edge * > &vEdgesOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all edges of a vertex, thus, none. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge * > &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
void CollectEdgesSorted (vector< Edge * > &vEdgesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all edges. (Returns the edge itself) More...
 
void CollectEdgesSorted (vector< Edge * > &vEdgesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given face in the order defined by the reference elements. More...
 
void CollectEdgesSorted (vector< Edge * > &vEdgesOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all edges of a vertex, thus, none. More...
 
void CollectEdgesSorted (vector< Edge * > &vEdgesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all edges that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
UG_API void CollectFaces (std::vector< Face * > &vFacesOut, Grid &grid, Face *v, bool clearContainer=true)
 Collects all faces. (Returns the face itself) More...
 
void CollectFaces (std::vector< Face * > &vFacesOut, Grid &grid, Vertex *vrt, bool clearContainer)
 Collects all faces that exist in the given grid which contain the given vertex. More...
 
void CollectFaces (vector< Face * > &vFacesOut, Grid &grid, Face *e, bool clearContainer)
 Collects all faces. (Returns the face itself) More...
 
void CollectFaces (vector< Face * > &vFacesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all faces that exist in the given grid are part of the given volume. More...
 
UG_API void CollectFacesSorted (std::vector< Face * > &vFacesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given edge in the order defined by the reference elements. More...
 
UG_API void CollectFacesSorted (std::vector< Face * > &vFacesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given face in the order defined by the reference elements. More...
 
void CollectFacesSorted (std::vector< Face * > &vFacesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
UG_API void CollectFacesSorted (std::vector< Face * > &vFacesOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all Faces of a Vertex, thus, none. More...
 
UG_API void CollectFacesSorted (std::vector< Face * > &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
void CollectFacesSorted (vector< Face * > &vFacesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
void CollectFacesSorted (vector< Face * > &vFacesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
void CollectFacesSorted (vector< Face * > &vFacesOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all Faces of a Vertex, thus, none. More...
 
void CollectFacesSorted (vector< Face * > &vFacesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
template<typename TDomain , typename T >
void CollectIErrEstData (std::vector< IErrEstData< TDomain > * > &vErrEstData, const T &vElemDisc)
 
static bool CollectInnerVertices (Grid &grid, VertexSelector &InnVrtSel, VertexSelector &SurfVrtSel)
 collects inner-vertices in a selector More...
 
static bool CollectLines (Grid &grid, const SubsetHandler &shFace, EdgeSelector &LineSel)
 collects lines in a selector More...
 
template<typename matrix_type >
void CollectMatrixOnOneProc (const matrix_type &A, matrix_type &collectedA, IndexLayout &masterLayout, IndexLayout &slaveLayout)
 
void CollectMaxAngles (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos, vector< number > &maxAngles)
 
void CollectMinAngles (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos, vector< number > &minAngles)
 
void CollectNeighborhood (std::vector< Face * > &facesOut, Grid &grid, Vertex *vrt, size_t range, bool clearContainer=true)
 Collects all neighbors in a given neighborhood of a vertex. More...
 
void CollectNeighbors (std::vector< Edge * > &vNeighborsOut, Edge *e, Grid &grid, NeighborhoodType nbhType=NHT_VERTEX_NEIGHBORS)
 collects all edges that are connected to the given one. More...
 
void CollectNeighbors (std::vector< Face * > &vNeighborsOut, Face *f, Grid &grid, NeighborhoodType nbhType=NHT_EDGE_NEIGHBORS)
 collects all faces that are connected to the given one. More...
 
void CollectNeighbors (std::vector< Vertex * > &vNeighborsOut, Grid &grid, Vertex *vrt, uint nbhType=NHT_EDGE_NEIGHBORS, Grid::edge_traits::callback considerEdge=ConsiderAll(), Grid::face_traits::callback considerFace=ConsiderAll(), Grid::volume_traits::callback considerVol=ConsiderAll())
 Collects all vertices that are connected by elements of the specified type. More...
 
void CollectNeighbors (std::vector< Volume * > &vNeighboursOut, Volume *v, Grid &grid, NeighborhoodType nbhType=NHT_FACE_NEIGHBORS)
 collects all volumes that are connected to the given one. More...
 
template<typename TDomain , typename TBaseElem >
void collectStretchedElementIndices (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &indarray, number alpha)
 
bool CollectSurfaceNeighborsSorted (std::vector< Vertex * > &vNeighborsOut, Grid &grid, Vertex *v)
 Collects neighbor-vertices in either clockwise or counter clockwise order. More...
 
static bool CollectSurfaceVertices (Grid &grid, const SubsetHandler &shFace, VertexSelector &SurfVrtSel)
 collects surface-vertices in a selector More...
 
template<class TElem >
void CollectSurfaceViewElements (ISubsetHandler &surfaceViewOut, DistributedGridManager &distGridMgr, MultiGridSubsetHandler &mgsh, bool clearContainer)
 
template<class TElem >
void CollectSurfaceViewElements (ISubsetHandler &surfaceViewOut, MultiGrid &mg, MGSubsetHandler &mgsh, bool clearContainer=true)
 
template<class TSideIterator >
size_t CollectUnconnectedSides (std::vector< typename TSideIterator::value_type > &elemsOut, Grid &grid, TSideIterator begin, TSideIterator end)
 
template<class TType >
static void CollectUniqueObjects (vector< TType > &vecOut, const vector< TType > &vecIn)
 
UG_API void CollectVertices (std::vector< Vertex * > &vVertexOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
size_t CollectVerticesTouchingSelection (std::vector< Vertex * > &vrtsOut, ISelector &sel)
 Collects all vertices which are selected or which touch a selected element. More...
 
void CollectVolToRMSFaceAreaRatios (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos, vector< number > &ratios)
 
void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given vertex. More...
 
UG_API void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all volumes. (Returns the volume itself) More...
 
void CollectVolumes (vector< Volume * > &vVolumesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all volumes. (Returns the volume itself) More...
 
template<int TRefDim>
void ColorControlVolume (ISubsetHandler &shOut)
 
int ColorProcessorGraph (pcl::InterfaceCommunicator< IndexLayout > &com, std::set< int > &pids, std::vector< int > &processesWithLowerColor, std::vector< int > &processesWithHigherColor)
 
template<typename TElem >
void ColorSubControlVolume (ISubsetHandler &shOut)
 
template<typename TElem >
void ColorSubControlVolumeFaces (ISubsetHandler &shOut)
 
vector< nodeType * > CommaListToVector (nodeType *a)
 
void CommunicateConnections (vector< vector< int > > &connectionsToProcsOut, vector< vector< int > > &connectionsToSubDomsOut, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, int highestReferencedIndex, pcl::IDomainDecompositionInfo &ddinfo)
 
template<typename TCommunicationScheme >
void CommunicateFromMasterToSlave (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void CommunicateFromSlaveToMaster (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void CommunicateOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, const IndexLayout &sendingLayout, const IndexLayout &receivingLayout, TCommunicationScheme &scheme)
 sends data over a CommunicationScheme from a sendingLayout to a receivingLayout More...
 
template<int dim, size_t orderDim>
bool ComparePosDim (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDim< 1, 0 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDim< 2, 0 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDim< 2, 1 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDim< 3, 0 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<>
bool ComparePosDim< 3, 1 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<>
bool ComparePosDim< 3, 2 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<int dim, size_t orderDim>
bool ComparePosDimDec (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 1, 0 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 2, 0 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 2, 1 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 3, 0 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 3, 1 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<>
bool ComparePosDimDec< 3, 2 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<int dim>
bool ComparePosDimYDir (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 1 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 2 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 3 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<int dim>
bool ComparePosDimZDir (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 1 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 2 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 3 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
bool CompareScalar (const std::pair< number, size_t > &p1, const std::pair< number, size_t > &p2)
 
template<class TVrtContainer1 , class TVrtContainer2 >
UG_API bool CompareVertexContainer (const TVrtContainer1 &con1, const TVrtContainer2 &con2)
 compares vertices in a container More...
 
template<class TVrtContainer1 , class TVrtContainer2 >
bool CompareVertexContainer (const TVrtContainer1 &con1, const TVrtContainer2 &con2)
 compares vertices in a container More...
 
UG_API bool CompareVertices (const EdgeVertices *ev1, const EdgeVertices *ev2)
 Checks whether ev1 and ev2 contain the same vertices. More...
 
bool CompareVertices (const FaceVertices *fv1, const FaceVertices *fv2)
 Checks whether fv1 and fv2 contain the same vertices. More...
 
bool CompareVertices (const VolumeVertices *vv1, const VolumeVertices *vv2)
 Checks whether vv1 and vv2 contain the same vertices. More...
 
static number compute_angle (const vector3 &axis, const vector3 &secondAxis, const vector3 &thirdAxis, const vector3 &posFromAxis)
 
static void compute_first_section_end_points (vector3 &pos0Out, vector3 &pos1Out, std::vector< NeuriteProjector::Section >::const_iterator secIt)
 
static void compute_ONB (vector3 &firstOut, vector3 &secondOut, vector3 &thirdOut, const vector3 &firstIn, const vector3 &refDir)
 
static void compute_position_and_velocity_in_section (vector3 &posAxOut, vector3 &velOut, number &radiusOut, std::vector< NeuriteProjector::Section >::const_iterator secIt, float t)
 
static void compute_radius_in_section (number &radiusOut, std::vector< NeuriteProjector::Section >::const_iterator secIt, float t)
 
template<typename TElem >
number ComputeAvg (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError2, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &sum, number &errSq, size_t &numElem, number &minLocal, number &maxLocal, number &sumLocal, size_t &numElemLocal)
 helper function that computes min/max and total of error indicators More...
 
template<typename TRefElem >
static void ComputeBFMidID (const TRefElem &rRefElem, int side, MidID vMidID[], int co)
 
template<typename TRefElem >
static void ComputeBFMidID (const TRefElem &rRefElem, int side, MidID vMidID[], int co)
 
void ComputeCRCuthillMcKeeOrder (std::vector< size_t > &vNewIndex, std::vector< std::vector< size_t > > &vvConnections, size_t minpind, bool bReverse)
 
void ComputeCuthillMcKeeOrder (std::vector< size_t > &vNewIndex, std::vector< std::vector< size_t > > &vvNeighbour, bool bReverse=true, bool bPreserveConsec=true)
 returns an array describing the needed index mapping for Cuthill-McKee ordering More...
 
void computeDegree (std::vector< size_t > &degree, std::vector< std::vector< size_t > > &vvConnections, size_t minpind)
 
template<typename TVector >
void ComputeDifferenceOnDelta (TVector &diff, const TVector &u, IndexLayout &dualMasterLayoutIn, IndexLayout &dualSlaveLayoutIn, IndexLayout &dualNbrMasterLayoutIn, IndexLayout &dualNbrSlaveLayoutIn)
 Application of the "jump operator" \(B_{\Delta}\). More...
 
template<typename TVector >
void ComputeDifferenceOnDeltaTransposed (TVector &f, const TVector &diff, const std::vector< IndexLayout::Element > &vDualMasterIndex, const std::vector< IndexLayout::Element > &vDualSlaveIndex, const std::vector< IndexLayout::Element > &vDualNbrSlaveIndex)
 'ComputeDifferenceOnDeltaTransposed()': Apply \(B_{\Delta}^T\) More...
 
template<int dim>
void ComputeDirectionYOrder (std::vector< std::pair< MathVector< dim >, size_t > > &vPos, std::vector< size_t > &indY)
 
template<int dim>
void ComputeDirectionZOrder (std::vector< std::pair< MathVector< dim >, size_t > > &vPos, std::vector< size_t > &indZ)
 
template<int TWorldDim, int ncorners>
void ComputeElementExtensionsSq (const MathVector< TWorldDim > *vCornerCoords, MathVector< TWorldDim > &ext)
 
template<typename TVector >
void ComputeElementExtensionsSqForEdges (const TVector *vCornerCoords, TVector &ext)
 Extension of an element (in a given dimension) More...
 
template<typename TFunction >
void ComputeGradientCrouzeixRaviart (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void computeGradientJump (TFunction &u, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaGrad, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void ComputeGradientLagrange1 (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void ComputeGradientPiecewiseConstant (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<int dim>
void ComputeLexicographicOrder (std::vector< size_t > &vNewIndex, std::vector< std::pair< MathVector< dim >, size_t > > &vPos, size_t orderDim, bool increasing)
 
void ComputeLocalSubsetDimensions (ISubsetHandler &sh, AChar aDimension, bool includeUnassigned)
 Computes the local subset dimension for each element and stores it in the given attachment. More...
 
template<int dim, typename TRefElem , int maxMid>
static void ComputeMidPoints (const TRefElem &rRefElem, const MathVector< dim > vCorner[], MathVector< dim > vvMid[][maxMid])
 
template<int dim, typename TRefElem , int maxMid>
static void ComputeMidPoints (const TRefElem &rRefElem, const MathVector< dim > vCorner[], MathVector< dim > vvMid[][maxMid])
 
template<typename TElem >
void ComputeMinMax (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &totalErr, size_t &numElem, number &minLocal, number &maxLocal, number &totalErrLocal, size_t &numElemLocal)
 helper function that computes min/max and total of error indicators More...
 
template<typename TElem >
void ComputeMinMaxTotal (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError2, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &totalErr, size_t &numElem)
 helper function that computes min/max and total of error indicators More...
 
template<int dim>
void ComputeMultiIndicesOfSubElement (std::vector< MathVector< dim, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 1 > (std::vector< MathVector< 1, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 2 > (std::vector< MathVector< 2, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 3 > (std::vector< MathVector< 3, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
void computeNewIndicesFromPIndexset (std::vector< std::vector< size_t > > &vvConnection, std::vector< size_t > &newIndex, size_t pmin, const std::vector< int > &inv_perm, bool bseparate)
 
void computeNewIndicesFromVIndexset (std::vector< std::vector< size_t > > &vvConnection, std::vector< size_t > &newIndex, size_t pmin, size_t dim, const std::vector< int > &inv_perm, bool bseparate, size_t strategy)
 
template<typename TBaseElem , typename TSubBaseElem >
void ComputeOrientationOffsetGeneric (std::vector< size_t > &vOrientOffset, TBaseElem *elem, TSubBaseElem *sub, size_t nrSub, const LFEID &lfeid)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, EdgeDescriptor &ed, EdgeVertices *edge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Face *face, Edge *edge, size_t nrEdge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, GridObject *volume, GridObject *face, size_t nrFace, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Volume *vol, Edge *edge, size_t nrEdge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Volume *volume, Face *face, size_t nrFace, const size_t p)
 
template<typename TRefElem >
static void ComputeSCVFMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVFMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
UG_API std::string ConfigShift (std::string s)
 returns a "shifted" string one-line strings are not shifted two line strings are shifted like this: input: "MyLine1\nMyLine2\n" Output: "\n | MyLine1\n | MyLine2" note that they get an additional
at the beginning, and doubled
and
at the end are removed, so you can use ConfigShift like this More...
 
string ConfigShift (string s)
 
char ConfigShiftRotation (char c)
 
template<typename TVec >
void ConsistencyCheck (const TVec &vec, const HorizontalAlgebraLayouts &layout, std::string name="")
 
template<typename TVec >
void ConsistencyCheck (const TVec &vec, pcl::InterfaceCommunicator< IndexLayout > &com, const pcl::ProcessCommunicator &pc, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, std::string name="")
 receives data over a interface based on a CommunicationScheme on a subgroup of processes More...
 
void constrainingSideAveraging (PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaData, SmartPtr< TGridFunction > m_uInfo)
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraph (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, Grid &grid, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT, const GridObjectCollection *pgoc=NULL)
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraphMG (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, std::vector< TIndexType > *pEdgeWeightsOut, MultiGrid &mg, size_t baseLevel=0, int hWeight=1, int vWeight=1, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT)
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraphMGLevel (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, MultiGrid &mg, size_t level, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT, DualGraphNeighborCollector< TGeomBaseObj > *neighborCollector=NULL)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCV (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si)
 
template<template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCV (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si, int siDim)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCVF (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si)
 
template<template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCVF (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si, int siDim)
 
bool ConstructOrthonormalSystem (matrix33 &matOut, const vector3 &v, size_t vColInd)
 constructs a orthonormal matrix given a vector in 3d. More...
 
template<class TGeomBaseObj , class TIndexType >
void ConstructParallelDualGraphMGLevel (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, std::vector< TIndexType > &nodeOffsetMapOut, MultiGrid &mg, size_t level, pcl::ProcessCommunicator procCom, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT)
 
UG_API bool Contains (const std::string &str, const std::string &search)
 Checks whether given string contains a specified substring. More...
 
bool Contains (const string &str, const string &search)
 
template<class TStdVector >
static bool ContainsInterfaceElem (const TStdVector &elems, DistributedGridManager &distGridMgr)
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const EdgeVertices *e, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies on the given edge. More...
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const FaceVertices *f, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies inside the given face. More...
 
template<class vector_t , class TAAPos >
bool ContainsPoint (const FaceVertices *f, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies inside the given face. More...
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const Vertex *v, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies on the given vertex. More...
 
template<class TAAPos >
UG_API bool ContainsPoint (Volume *vol, const vector3 &p, TAAPos aaPos)
 Checks whether a given point lies in the given volume element. More...
 
template<class TAAPos >
bool ContainsPoint (Volume *vol, const vector3 &p, TAAPos aaPos)
 Checks whether a given point lies in the given volume element. More...
 
static void ContinuousDebugSave (ISelector &sel)
 temporary method, which will be removed when debugging is done. More...
 
template<class TElem , class TSrcAttachment , class TDestAttachment >
bool ConvertMathVectorAttachmentValues (Grid &grid, TSrcAttachment &srcAttachment, TDestAttachment &destAttachment)
 Fills the dest-attachment with values from the source-attachment. More...
 
std::string ConvertNumber (uint64_t size, unsigned int width, unsigned int numDisplayedDigits)
 returns number 'size' in a more human readable format (using IEC binary prefixes) More...
 
std::string ConvertNumberSI (uint64_t size, unsigned int width, unsigned int numDisplayedDigits)
 returns number 'size' in a more human readable format (using SI prefixes) More...
 
template<class TVolIter >
void ConvertToTetrahedra (Grid &grid, TVolIter volsBegin, TVolIter volsEnd)
 Converts all volumes in the given range to tetrahedra. More...
 
template<class TElemIter , class TAttachment >
bool CopyAttachments (Grid &grid, TElemIter elemsBegin, TElemIter elemsEnd, TAttachment &aSrc, TAttachment &aDest)
 copies attachments for the specified elements More...
 
template<class TElem , class TAttachment >
bool CopyAttachments (Grid &srcGrid, TAttachment &aSrc, Grid &destGrid, TAttachment &aDest)
 copies attachments from one grid to the other More...
 
template<int dim, int maxMid>
static void CopyCornerByMidID (MathVector< dim > vCorner[], const MidID vMidID[], MathVector< dim > vvMidPos[][maxMid], const size_t numCo)
 
template<int dim, int maxMid>
static void CopyCornerByMidID (MathVector< dim > vCorner[], const MidID vMidID[], MathVector< dim > vvMidPos[][maxMid], const size_t numCo)
 
template void CopyGrid (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition1)
 
template void CopyGrid (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition2)
 
template void CopyGrid (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition3)
 
template<class TAPos >
void CopyGrid (Grid &srcGrid, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, TAPos aPos)
 Copies a grid to a separate grid. More...
 
template<class TElem >
void CopyGridElements (Grid &srcGrid, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, Attachment< Vertex * > &aNewVrt)
 Copy grid elements of type TElem from srcGrid to destGrid. More...
 
template<class TAPos >
void CopyGridLevel (MultiGrid &srcMG, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, int lvl, TAPos aPos)
 Copies a grid level to a separate grid. More...
 
template<class TElem >
void CopyGridLevelElements (MultiGrid &srcMG, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, int lvl, AVertex &aNewVrt)
 
static void CopyInterfaceEntrysToDomainDecompositionLayouts (IndexLayout &subdomLayoutOut, IndexLayout &processLayoutOut, IndexLayout &deltaNbrLayoutOut, IndexLayout &crossPointLayoutOut, const IndexLayout &standardLayout, vector< int > &flags, IDomainDecompositionInfo &ddinfo)
 
template<typename TMatrixType , typename TRowType >
void CopyOffDiagEntries (const TMatrixType &A, size_t i, TRowType &row, bool enforceNew=false)
 
template<typename TDomain >
void CopySelected (SmartPtr< TDomain > destDom, SmartPtr< TDomain > srcDom, Selector &sel)
 
template<class TElem >
void CopySelectedElements (Selector &srcSel, Grid &destGrid, AVertex aNewVrt)
 
template<typename TDomain , class TElem >
void CopySelectedElements (SmartPtr< TDomain > destDom, SmartPtr< TDomain > srcDom, Selector &sel, AVertex &aNewVrt)
 
template<class TAAPosSrc , class TAAPosDest >
void CopySelection (Selector &srcSel, Grid &destGrid, TAAPosSrc aaPosSrc, TAAPosDest aaPosDest)
 
template<class TGeomObj >
void CopySelectionStatus (Selector &selOut, Grid &gridOut, Selector &selIn, Grid &gridIn)
 
template<class TGeomObj >
static void CopySelectionStatus (Selector &selOut, Grid &gridOut, Selector &selIn, Grid &gridIn)
 
template<class TIterator >
static void CopySubsetFromHigherDimNbr (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, AChar aDimension)
 
template<class TIterator >
static void CopySubsetIndices (ISubsetHandler &dest, const ISubsetHandler &src, TIterator destIterBegin, TIterator destIterEnd, TIterator srcIterBegin, TIterator srcIterEnd)
 
void CopySubsetIndicesToSides (ISubsetHandler &sh, bool toUnassignedOnly)
 copies subset-indices to sides of all elements in the subset handler More...
 
void CopySubsetIndicesToSides (ISubsetHandler &sh, GridObjectCollection goc, bool toUnassignedOnly)
 copies subset-indices to sides of the specified elements More...
 
void CopySubsetIndicesToSides (ISubsetHandler &sh, ISelector &sel, bool toUnassignedOnly)
 copies subset-indices to sides of the elements selected in 'sel' More...
 
template<class TIterator >
void CopySubsetIndicesToSides (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, bool toUnassignedOnly)
 copies subset-indices to side-elements More...
 
template<typename TStorage >
std::string CPPString (const DenseMatrix< TStorage > &A, const char *name)
 
void cr_get_connections (std::vector< std::vector< size_t > > &vvConnection, size_t &minpind, DoFDistribution &dd, TGridFunction &u)
 
uint32 crc32 (const char *str)
 Calculates the crc32 for a null-terminated string. More...
 
void CRCuthillMcKee (std::vector< size_t > &newIndex, std::vector< std::vector< size_t > > &vvConnection, size_t dim, size_t minpind, bool bReverse, bool bseparate, bool orderp, bool orderv)
 
template<typename TDomain >
static SmartPtr< IRefinerCreateAdaptiveRegularDomainRefiner (TDomain *dom)
 Creates an adaptive regular domain refiner. More...
 
void CreateAllToAllFromMasterSlave (pcl::InterfaceCommunicator< IndexLayout > &communicator, IndexLayout &OLCoarseningSendLayout, IndexLayout &OLCoarseningReceiveLayout, IndexLayout &OL1MasterLayout, IndexLayout &OL1SlaveLayout)
 
template<class TGeomObj >
void CreateAndDistributeGlobalIDs (Grid &g, GridLayoutMap &glm, AGeomObjID &aID=aGeomObjID)
 Creates and distributes global ids for the given element type. More...
 
template<typename AB_type , typename A_type , typename B_type >
void CreateAsMultiplyOf (AB_type &M, const A_type &A, const B_type &B)
 Calculates M = A*B. More...
 
template<typename ABC_type , typename A_type , typename B_type , typename C_type >
void CreateAsMultiplyOf (ABC_type &M, const A_type &A, const B_type &B, const C_type &C, double epsilonTruncation=0.0)
 Calculates M = A*B*C. More...
 
template<int dim>
SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > CreateConstUserData (number val, MathMatrix< dim, dim >)
 
template<int dim>
SmartPtr< CplUserData< MathTensor< 4, dim >, dim > > CreateConstUserData (number val, MathTensor< 4, dim >)
 
template<int dim, int worldDim = dim>
SmartPtr< CplUserData< MathVector< dim >, worldDim > > CreateConstUserData (number val, MathVector< dim >)
 
template<int dim>
SmartPtr< CplUserData< number, dim > > CreateConstUserData (number val, number)
 
template<typename TData , int dim>
SmartPtr< CplUserData< TData, dim > > CreateConstUserData (number val, TData dummy)
 creates user data of desired type More...
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateControlVolumeDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
UG_API bool CreateDirectory (const char *directory)
 Creates a directory. More...
 
UG_API bool CreateDirectory (const char *directory, int mode)
 Creates a directory. More...
 
static bool CreateDirectory (std::string directory)
 Creates a directory. More...
 
UG_API bool CreateDirectoryTMP (const char *directory)
 Creates a directory. More...
 
bool CreateEdgeSplitGeometry (Grid &destGrid, Grid &srcGrid, Edge *e, Vertex *newVertex, AVertex *paAssociatedVertices=NULL)
 given an edge and a vertex (the split-vertex) this method constructs the split-geometry. More...
 
void CreateElementQualityHistogram (vector< int > &histOut, const std::vector< number > &vQualities, int numSections)
 
void CreateFunctionIndexMapping (FunctionIndexMapping &map, const FunctionGroup &grpFrom, ConstSmartPtr< FunctionPattern > fctPattern)
 
void CreateFunctionIndexMapping (FunctionIndexMapping &map, const FunctionGroup &grpFromSmall, const FunctionGroup &grpToLarge)
 
template<class TDomain >
static SmartPtr< GlobalFracturedMediaRefinerCreateGlobalFracturedDomainRefiner (TDomain *dom)
 Creates a global fractured domain refiner. More...
 
template<typename TLocalToGlobal >
void CreateGlobalLayout (GlobalLayout &globalLayout, const IndexLayout &layout, const TLocalToGlobal &localToGlobal)
 
void CreateGridFromField (Grid &grid, const Field< number > &field, const vector2 &cellSize, const vector2 &offset, number noDataValue, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromField (Grid &grid, const Heightfield &hfield, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromFieldBoundary (Grid &grid, const Field< number > &field, const vector2 &cellSize, const vector2 &offset, number noDataValue, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromFieldBoundary (Grid &grid, const Heightfield &hfield, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
template<template< class, int > class TFVGeom, typename TAAPosition , typename TAPosition >
void CreateGridOfControlVolumes (ISubsetHandler &shOut, TAAPosition &aaPosOut, TAPosition &aPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TAAPosition >
void CreateGridOfSubControlVolumeFaces (ISubsetHandler &shOut, TAAPosition &aaPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TAAPosition >
void CreateGridOfSubControlVolumes (ISubsetHandler &shOut, TAAPosition &aaPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
HexahedronCreateHexahedronFromPrisms (Grid &grid, Prism *p0, Prism *p1)
 Creates a hexahedron from two prisms which share a quadrilateral side. More...
 
bool CreateIndexLayouts_DomainDecomposition (IndexLayout &processLayoutOut, IndexLayout &subdomainLayoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, int level, pcl::IDomainDecompositionInfo *ddInfoIn)
 
template<typename TGlobalToLocal >
void CreateLayoutFromGlobalLayout (IndexLayout &layout, GlobalLayout &globalLayout, TGlobalToLocal &globalToLocal, bool bRemoveDoubles=true)
 
template<class TElem >
static void CreateLayoutsFromDistInfos (MultiGrid &mg, GridLayoutMap &glm, DistInfoSupplier &distInfos, AGeomObjID &aGID)
 
bool CreateLevelIndexLayout (IndexLayout &layoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, int level)
 creates the index layout for a level given a GridLayoutMap More...
 
template<class TElem >
number CreateListOfElemWeights (Grid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, typename DoFDistribution::traits< TElem >::const_iterator iterBegin, const typename DoFDistribution::traits< TElem >::const_iterator iterEnd, std::vector< double > &etaSq)
 
SmartPtr< AlgebraLayoutsCreateLocalAlgebraLayouts ()
 
template<class TIterator >
SPOctree CreateOctree (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, int maxDepth, int elemThreshold, bool bLoose, APosition &aPos=aPosition)
 Creates an Octree from a list of edges or triangles. More...
 
template<class TMatrix >
void CreateOverlap (TMatrix &matInOut)
 Adds coefficients and connections to create an overlapping matrix. More...
 
template<class TEdgeIter >
bool CreatePolyChain (std::vector< Vertex * > &polyChainOut, Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd)
 given a list of edges, this method collects associated vertices in a polychain More...
 
static PrismCreatePrism (Grid &grid, vector< Triangle * > &vTris, vector< Quadrilateral * > &vQuads, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
SPProcessHierarchy CreateProcessHierarchy (size_t *numElemsOnLvl, size_t numLvls, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLvlsWithoutRedist)
 Creates a process-hierarchy that fullfills the given conditions. More...
 
template<class TDomain >
SPProcessHierarchy CreateProcessHierarchy (TDomain &dom, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLevelsWithoutRedist)
 Creates a process-hierarchy that fullfills the given conditions. More...
 
template<class TDomain >
SPProcessHierarchy CreateProcessHierarchy (TDomain &dom, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLevelsWithoutRedist, IRefiner *refiner)
 
static PyramidCreatePyramid (Grid &grid, vector< Triangle * > &vTris, vector< Quadrilateral * > &vQuads, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
QuadrilateralCreateQuadrilateral (Grid &g, Face *tri1, Face *tri2)
 Creates a new quadrilateral from the specified triangles in the specified grid. More...
 
QuadrilateralCreateQuadrilateral_NoRegistration (Grid &g, Face *tri1, Face *tri2)
 Creates a new quadrilateral from the specified triangles but doesn't register it at the grid. More...
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void CreateSCV (const TElem &elem, TFVGeom< TElem, TWorldDim > &geo, ISubsetHandler &shOut, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void CreateSCVF (const TElem &elem, TFVGeom< TElem, TWorldDim > &geo, ISubsetHandler &shOut, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut)
 
template<class TElem >
number CreateSortedListOfElems (Grid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, typename DoFDistribution::traits< TElem >::const_iterator iterBegin, const typename DoFDistribution::traits< TElem >::const_iterator iterEnd, std::vector< std::pair< double, TElem * > > &etaSqList)
 
template<typename matrix_type >
void CreateStrongConnectionGraphForSystems (const matrix_type &A, cgraph &graph, double theta)
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateSubControlVolumeDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateSubControlVolumeFaceDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
template<typename TElemIn >
void CreateSubsetGroups (std::vector< SubsetGroup > &vSSGrp, SubsetGroup &unionSSGrp, std::vector< TElemIn * > vElemDisc, ConstSmartPtr< ISubsetHandler > pSH)
 
IExternalSolverImplementationCreateSuperLUImplementation (SuperLUConfiguration &config)
 
bool CreateSurfaceIndexLayout (IndexLayout &layoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, MultiGrid &mg, DistributedGridManager &dGrMgr)
 creates the index layout for a level given a GridLayoutMap More...
 
template<class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, DistributedGridManager &distGridMgr, MultiGridSubsetHandler &mgsh)
 
template<class TElem , class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, MultiGrid &mg, MGSubsetHandler &mgsh)
 
template<class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, MultiGrid &mg, MultiGridSubsetHandler &mgsh)
 
bool CreateSweepLineStructs (vector< SweepLineVertex > &vrtsOut, SweepLineEdgeList &edgesOut, const vector< vector2 > &vrtsIn, const vector< int > &edgesIn)
 
static TetrahedronCreateTetrahedron (Grid &grid, vector< Triangle * > &vTris, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
void CreateTKD (const TKDInfo &tkdInfo, Grid &g, APosition3 &aPos, Volume **volsOut=NULL)
 Creates a tkd mesh based on the given tkdInfo object. More...
 
void CreateTKDVertices (const TKDInfo &tkdInfo, Grid &g, APosition3 &aPos, Vertex **vrtsOut)
 
void CreateTKDWithOuterLayer (const TKDInfo &tkdInfo, Grid &g, APosition3 &aPos, Volume **volsOut=NULL)
 Creates a tkd mesh with a surrounding layer based on the given tkdInfo object. More...
 
void CreateUnionOfFunctionGroups (FunctionGroup &fctGrp, const std::vector< const FunctionGroup * > &vFctGrp, bool sortFct=false)
 
void CreateUnionOfFunctionGroups (FunctionGroup &fctGrp, const vector< const FunctionGroup * > &vFctGrp, bool sortFct)
 
static void CreateVolumesFromElementIndexList (Grid &g, const int *elemIndexList, int numElements, Vertex *const *vrts, Volume **volsOut=NULL)
 
static void CreateVolumesFromElementIndexList (vector< Volume * > &volsOut, int *elemIndexList, int elemIndexListSize, Vertex **vrts)
 
void CRKing (std::vector< size_t > &newIndex, std::vector< std::vector< size_t > > &vvConnection, size_t dim, size_t minpind, bool bReverse, bool bseparate, bool orderp, bool orderv)
 
void CRMinimumDegree (std::vector< size_t > &newIndex, std::vector< std::vector< size_t > > &vvConnection, size_t dim, size_t minpind, bool bseparate, bool orderp, bool orderv)
 
void CROrderCuthillMcKee (ApproximationSpace< TDomain > &approxSpace, TGridFunction &u, bool bReverse, bool bseparate, bool orderp, bool orderv)
 
void CROrderKing (ApproximationSpace< TDomain > &approxSpace, TGridFunction &u, bool bReverse, bool bseparate, bool orderp, bool orderv)
 
void CROrderMinimumDegree (ApproximationSpace< TDomain > &approxSpace, TGridFunction &u, bool bseparate, bool orderp, bool orderv)
 
void CROrderSloan (ApproximationSpace< TDomain > &approxSpace, TGridFunction &u, bool bseparate, bool orderp, bool orderv)
 
void CRSloan (std::vector< size_t > &newIndex, std::vector< std::vector< size_t > > &vvConnection, size_t dim, size_t minpind, bool bseparate, bool orderp, bool orderv)
 
template<typename T >
CUDA_GetElementFromDevice (T *p, size_t i=0)
 
template<typename T >
void CudaCheckStatus (T status, const char *file, int line)
 
template<typename T >
void CudaCpyToDevice (typename T::value_type *dest, T &vec)
 
template<typename T >
void CudaCpyToHost (T &dest, typename T::value_type *src)
 
template<typename T >
T::value_typeCudaCreateAndCopyToDevice (T &vec)
 
const char * CUDAError (int err)
 
std::string CurrentWorkingDirectory ()
 
bool CutEdgesWithPlane (Selector &sel, const vector3 &p, const vector3 &n, APosition &aPos=aPosition)
 refines all edges in sel which cut the given plane. More...
 
std::string cutString (double d, size_t width)
 
double dabs (double a)
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< bool >, "bool")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< byte >, "byte")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< char >, "char")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< double >, "double")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< float >, "float")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< int >, "int")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< NeuriteProjector::Mapping >, "Mapping")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< NeuriteProjector::SurfaceParams >, "NeuriteProjectorSurfaceParams")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< uint >, "uint")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector1 >, "vector1")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector2 >, "vector2")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector3 >, "vector3")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector4 >, "vector4")
 
bool Decomp (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &rhs, size_t &iNonNullRows, double deficitTolerance)
 
bool Decomp (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &rhs, size_t &iNonNullRows, std::vector< size_t > &xinterchange, double deficitTolerance)
 
template<class TNumber >
TNumber deg_to_rad (TNumber deg)
 
template<class TAAPos >
static void DelaunayDebugSave (Grid &g, const char *msg, DelaunayInfo< TAAPos > &dinfo)
 
static bool DelaunayLineLineIntersection (vector3 &vOut, const vector3 &lineFrom, const vector3 &lineTo, const vector3 &edgeVrt1, const vector3 &edgeVrt2, vector3 areaNormal, number smallsq=SMALL_SQ)
 
string demangle (const char *str)
 
string demangle_block (const char *str)
 
template<class TSelector >
void DeselectBoundarySelectionEdges (TSelector &sel)
 deselects all edges that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionEdges< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionEdges< Selector > (Selector &)
 
template<class TSelector >
void DeselectBoundarySelectionFaces (TSelector &sel)
 deselects all faces that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionFaces< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionFaces< Selector > (Selector &)
 
template<class TSelector >
void DeselectBoundarySelectionVertices (TSelector &sel)
 deselects all vertices that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionVertices< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionVertices< Selector > (Selector &)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Edge *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Face *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, GridObject *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Vertex *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Volume *elem)
 
template<typename T >
void Deserialize (std::istream &buff, const DenseMatrix< VariableArray2< T > > &mat)
 
template<size_t n>
void Deserialize (std::istream &buff, DenseVector< FixedArray1< number, n > > &vec)
 
template<typename T >
void Deserialize (std::istream &buff, DenseVector< VariableArray1< double > > &vec)
 
template<class TIStream >
void Deserialize (TIStream &buf, IndexLayout &layout)
 
template<class TIStream >
void Deserialize (TIStream &buf, IndexLayout::Interface &interface)
 
template<typename T , class TIStream >
void Deserialize (TIStream &buf, ParallelVector< T > &v)
 Deerialize for ParallelVector<T> More...
 
template<class TIStream >
void Deserialize (TIStream &buf, pcl::InterfaceCommunicator< IndexLayout > &ic)
 
template<class TIStream >
void Deserialize (TIStream &buf, pcl::ProcessCommunicator &ic)
 
template<class Key , class T , class TIStream >
void Deserialize (TIStream &buf, std::map< Key, T > &m)
 deserializes data from a binary stream into a map More...
 
template<class T1 , class T2 , class TIStream >
void Deserialize (TIStream &buf, std::pair< T1, T2 > &v)
 
template<class T , class TIStream >
void Deserialize (TIStream &buf, std::set< T > &myset)
 deserializes data from a binary stream into a set More...
 
template<class TIStream >
void Deserialize (TIStream &buf, std::string &str)
 deserializes data from a binary stream into a string More...
 
template<class TIStream >
void Deserialize (TIStream &buf, std::vector< bool > &vec)
 
template<class TIStream >
void Deserialize (TIStream &buf, std::vector< bool >::reference boolRef)
 deserializes data from a binary stream into a vector<bool> More...
 
template<class T , class TIStream >
void Deserialize (TIStream &buf, std::vector< T > &vec)
 deserializes data from a binary stream into a vector More...
 
template<class TIStream >
void Deserialize (TIStream &buf, Variant &v)
 deserializes data from a binary stream into a variant More...
 
template<typename TValueType , class TIStream >
void Deserialize (TIStream &buf, Vector< TValueType > &v)
 
template<typename T , class TIStream >
Deserialize (TIStream &stream)
 method returning value directly More...
 
template<class TStream , class T >
void Deserialize (TStream &buf, const T &valOut)
 Catch errors with wrong const identifiers in valOut. More...
 
template<class TStream , class T >
void Deserialize (TStream &buf, T &valOut)
 
template<class TStream , std::size_t N, class T >
void Deserialize (TStream &out, MathVector< N, T > &valOut)
 
void DeserializeAndAddGlobalInterface (BinaryBuffer &stream, std::vector< AlgebraID > &interface)
 
void DeserializeAndAddGlobalLayout (BinaryBuffer &stream, GlobalLayout &globalLayout)
 
template<class TElem , class TAttachment >
bool DeserializeAttachment (Grid &grid, TAttachment &attachment, BinaryBuffer &in)
 copies attached values from a binary stream More...
 
template<class TElem , class TAttachment >
bool DeserializeAttachment (Grid &grid, TAttachment &attachment, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, BinaryBuffer &in)
 copies attached values from a binary stream More...
 
bool DeserializeGridElements (Grid &grid, BinaryBuffer &in, bool readGridHeader=true)
 Creates grid elements from a binary stream. More...
 
template<typename TGlobalToLocal >
void DeserializeInterface (BinaryBuffer &stream, IndexLayout::Interface &interface, const TGlobalToLocal &globalToLocal)
 
template<typename TGlobalToLocal >
void DeserializeLayout (BinaryBuffer &stream, IndexLayout &layout, const TGlobalToLocal &globalToLocal)
 
template<typename TSparseMatrix , class TIStream >
void DeserializeMatrix (TIStream &buf, TSparseMatrix &A)
 
bool DeserializeMultiGridElements (MultiGrid &mg, BinaryBuffer &in, std::vector< Vertex * > *pvVrts=NULL, std::vector< Edge * > *pvEdges=NULL, std::vector< Face * > *pvFaces=NULL, std::vector< Volume * > *pvVols=NULL, MultiElementAttachmentAccessor< AGeomObjID > *paaID=NULL)
 Creates multi-grid elements from a binary stream. More...
 
template<typename T , class TIStream >
void DeserializeParallelData (TIStream &buf, T &t, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > &ic, pcl::ProcessCommunicator &pc)
 
void DeserializeProjectionHandler (BinaryBuffer &in, ProjectionHandler &ph)
 
SPRefinementProjector DeserializeProjector (BinaryBuffer &in)
 
template<typename TConnectionType >
size_t DeserializeRow (BinaryBuffer &stream, stdvector< TConnectionType > &cons, ParallelNodes &PN)
 
bool DeserializeSelector (Grid &grid, ISelector &sel, BinaryBuffer &in)
 assigns subset-indices to all elements in the grid from a stream. More...
 
bool DeserializeSelector (Grid &grid, ISelector &sel, GridObjectCollection goc, BinaryBuffer &in)
 assigns subset-indices to all elements in the goc from a stream. More...
 
bool DeserializeSubsetHandler (Grid &grid, ISubsetHandler &sh, BinaryBuffer &in, bool readPropertyMap=true)
 assigns subset-indices to all elements in the grid from a stream. More...
 
bool DeserializeSubsetHandler (Grid &grid, ISubsetHandler &sh, GridObjectCollection goc, BinaryBuffer &in, bool readPropertyMap=true)
 assigns subset-indices to all elements in the goc from a stream. More...
 
template<typename T , class TIStream >
void DeserializeUniquePart (TIStream &buf, ParallelMatrix< T > &A)
 
template<typename TValueType , class TIStream >
void DeserializeUniquePart (TIStream &buf, ParallelVector< TValueType > &v)
 
template<typename T >
MathMatrix< 0, 0, T >::value_type Determinant (const MathMatrix< 0, 0, T > &m)
 
template<typename T >
MathMatrix< 4, 4, T >::value_type Determinant (const MathMatrix< 4, 4, T > &m)
 
void dgetrf_ (lapack_int *m, lapack_int *n, lapack_double *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void dgetri_ (lapack_int *n, lapack_double *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_double *pWork, lapack_int *worksize, lapack_int *info)
 
void dgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const lapack_double *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_double *b, lapack_int *ldb, lapack_int *info)
 
template<typename Matrix_type , typename Vector_type >
void diag_step (const Matrix_type &A, Vector_type &c, const Vector_type &d, number damp)
 Performs a jacobi-step. More...
 
template<typename Matrix_type , typename Vector_type >
bool diag_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number damp)
 Performs a jacobi-step. More...
 
template<typename Matrix_type , typename Vector_type >
bool Diag_Vanka_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number relax)
 
DebugID DID_REFERENCE_MAPPING ("REFERENCE_MAPPING")
 
DebugID DID_REFERENCE_MAPPING_GLOB_TO_LOC ("REFERENCE_MAPPING_GLOB_TO_LOC")
 
int DimensionOfSubset (const ISubsetHandler &sh, int si)
 returns the current dimension of the subset More...
 
int DimensionOfSubsets (const ISubsetHandler &sh)
 Returns the dimension of geometric objects, that are contained in the subset handler. More...
 
UG_API bool DirectoryExists (const char *dirname)
 Checks the existence of a given directory. More...
 
static bool DirectoryExists (std::string filename)
 
void DisplayVacantMemory ()
 
number DistanceLineToLine (const vector3 &a1, const vector3 &a2, const vector3 &b1, const vector3 &b2)
 calculates the distance between two 3d line segments More...
 
template<class vector_t >
number DistancePointToLine (const vector_t &v, const vector_t &v1, const vector_t &v2)
 calculates the distance of a point to a line segment More...
 
template<class vector_t >
number DistancePointToLine (number &tOut, const vector_t &v, const vector_t &v1, const vector_t &v2)
 
template<class vector_t >
number DistancePointToPlane (const vector_t &v, const vector_t &p, const vector_t &n)
 Calculates the distance between the specified point and the plane. More...
 
template<class vector_t >
number DistancePointToRay (const vector_t &v, const vector_t &from, const vector_t &dir)
 calculates the distance of a point to a ray More...
 
template<class vector_t >
number DistancePointToRay (number &tOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 
template<class vector_t >
number DistancePointToRay (vector_t &vOut, number &tOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 
template<class vector_t >
number DistancePointToTriangle (vector_t &vOut, number &bc1Out, number &bc2Out, const vector_t &p, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &n)
 calculates the minimal distance of a point to a triangle.
More...
 
template<typename TDomain >
static bool DistributeDomain (TDomain &domainOut, PartitionMap &partitionMap, bool createVerticalInterfaces)
 distributes a already distributed domain onto the specified processes More...
 
template<typename TDomain >
static bool DistributeDomain (TDomain &domainOut, PartitionMap &partitionMap, bool createVerticalInterfaces)
 
static void DistributeExpansionMarks3D (Grid &grid, SubsetHandler &sh, Selector &sel, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds, Grid::VertexAttachmentAccessor< AInt > &aaMarkVRT, Grid::EdgeAttachmentAccessor< AInt > &aaMarkEDGE, Grid::FaceAttachmentAccessor< AInt > &aaMarkFACE)
 
bool DistributeGrid (MultiGrid &mg, SubsetHandler &shPartition, GridDataSerializationHandler &serializer, bool createVerticalInterfaces, const std::vector< int > *processMap=NULL, const pcl::ProcessCommunicator &procComm=pcl::ProcessCommunicator())
 distributes/redistributes parts of possibly distributed grids. More...
 
std::string DistributionPercentage (std::vector< double > values)
 
template<int refDim, int dim>
bool DoFPositionElem (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<int dim>
bool DoFPositionVertex (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<typename TMatrix >
const numberDoFRef (const TMatrix &mat, const DoFIndex &iInd, const DoFIndex &jInd)
 
template<typename TVector >
const numberDoFRef (const TVector &vec, const DoFIndex &ind)
 
template<typename TMatrix >
numberDoFRef (TMatrix &mat, const DoFIndex &iInd, const DoFIndex &jInd)
 
template<typename TVector >
numberDoFRef (TVector &vec, const DoFIndex &ind)
 
template<typename TTo , typename TFrom >
TTo & DownCast (const TTo &pfrom, const TFrom &p)
 
template<typename TTo , typename TFrom >
TTo & DownCast (const TTo &pfrom, TFrom &p)
 
std::vector< numberDragLift (SmartPtr< TGridFunction > spGridFct, const char *vCmp, const char *BndSubsets, const char *InnerSubsets, number kinVisco, number density, int quadOrder)
 
void DrivenCavityEvalAtPoints (const std::vector< MathVector< 2 > > &vPos, GlobalGridFunctionNumberData< TGridFunction > &GFEval, const number vReferenceValue[])
 
void DrivenCavityLinesEval (SmartPtr< TGridFunction > u, std::vector< std::string > vVelCmp, size_t Re)
 
template<class vector_t >
number DropAPerpendicular (vector_t &vOut, const vector_t &v, const vector_t &v0, const vector_t &v1)
 finds the projection of v onto the line defined by v0 and v1 More...
 
template<class TAPos >
bool Duplicate (Grid &grid, Selector &sel, const typename TAPos::ValueType &offset, TAPos &aPos, bool deselectOld=true, bool selectNew=true)
 Duplicates the selected part of a grid and translates it by an offset. More...
 
bool EdgeCollapseIsValid (Grid &grid, Edge *e)
 Checks if an edge-collapse would invalidate the current topology. More...
 
bool EdgeContains (EdgeVertices *e, Vertex *vrt)
 
bool EdgeContains (EdgeVertices *e, Vertex *vrt1, Vertex *vrt2)
 
bool EdgeExists (SweepLineVertex *v0, SweepLineVertex *v1)
 
template<class TAAPosVRT >
UG_API number EdgeLength (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the length of the given edge. More...
 
template<class TAAPosVRT >
number EdgeLength (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the length of the given edge. More...
 
template<class TAAPosVRT >
UG_API number EdgeLengthSq (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the squared length of the given edge. More...
 
template<class TAAPosVRT >
number EdgeLengthSq (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the squared length of the given edge. More...
 
void EdgeReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vGlobPos)
 
template<class TElem >
static std::string ElementDebugInfo_IMPL (const Grid &grid, TElem *e)
 
template<typename TElem , typename TDomain >
number ElementDiameter (const TElem &elem, TDomain &domain)
 returns the maximal distance between to element vertices More...
 
template<class TElem , class TAAPos >
number ElementDiameter (Grid &grid, TAAPos &aaPos, TElem *elem)
 returns the maximal distance between to element vertices More...
 
template<typename TElem , typename TDomain >
number ElementDiameter (TElem &elem, TDomain &domain)
 
template<typename TElem , typename TDomain >
number ElementDiameterSq (const TElem &elem, TDomain &domain)
 returns the maximal squared distance between to element vertices More...
 
template<class TAAPos >
number ElementDiameterSq (Grid &grid, TAAPos &aaPos, GridObject *elem)
 returns the maximal squared distance between to element vertices More...
 
template<class TElem , class TAAPos >
number ElementDiameterSq (Grid &grid, TAAPos &aaPos, TElem *elem)
 returns the maximal squared distance between to element vertices More...
 
template<typename TElem , typename TDomain >
number ElementDiameterSq (TElem &elem, TDomain &domain)
 
template<int dim>
void ElementExtensionsSq (ReferenceObjectID roid, MathVector< dim > &ext, const MathVector< dim > *vCornerCoords)
 
template<>
void ElementExtensionsSq< 1 > (ReferenceObjectID roid, MathVector< 1 > &ext, const MathVector< 1 > *vCornerCoords)
 
template<>
void ElementExtensionsSq< 2 > (ReferenceObjectID roid, MathVector< 2 > &ext, const MathVector< 2 > *vCornerCoords)
 
template<>
void ElementExtensionsSq< 3 > (ReferenceObjectID roid, MathVector< 3 > &ext, const MathVector< 3 > *vCornerCoords)
 
template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ElementGaussSeidelStep (const typename TAlgebra::matrix_type &A, GridFunction< TDomain, TAlgebra > &c, const typename TAlgebra::vector_type &d, number relax, const std::vector< std::string > &cmp, number alpha, bool elim_off_diag=false)
 
template<typename TRefElem , int TWorldDim>
void ElementNormal (MathVector< TWorldDim > &normalOut, const MathVector< TWorldDim > *vCornerCoords)
 Normal to an Element in a given Dimension. More...
 
template<int dim>
void ElementNormal (ReferenceObjectID roid, MathVector< dim > &normalOut, const MathVector< dim > *vCornerCoords)
 
template<>
void ElementNormal< 1 > (ReferenceObjectID roid, MathVector< 1 > &normalOut, const MathVector< 1 > *vCornerCoords)
 
template<>
void ElementNormal< 2 > (ReferenceObjectID roid, MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 
template<>
void ElementNormal< 3 > (ReferenceObjectID roid, MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 
template<>
void ElementNormal< ReferenceEdge, 2 > (MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 Normal to a Line in 2d. More...
 
template<>
void ElementNormal< ReferenceEdge, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Line in 3d. More...
 
template<>
void ElementNormal< ReferenceQuadrilateral, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Quadrilateral in 3d. More...
 
template<>
void ElementNormal< ReferenceTriangle, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Triangle in 3d. More...
 
template<>
void ElementNormal< ReferenceVertex, 1 > (MathVector< 1 > &normalOut, const MathVector< 1 > *vCornerCoords)
 Normal to a Point in 1d. More...
 
template<>
void ElementNormal< ReferenceVertex, 2 > (MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 Normal to a Point in 2d. More...
 
template<>
void ElementNormal< ReferenceVertex, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Point in 3d. More...
 
void ElementQualityStatistics (Grid &grid, int dim)
 
void ElementQualityStatistics (Grid &grid, int dim, number angleHistStepSize, number aspectRatioHistStepSize, bool bWriteHistograms)
 
void ElementQualityStatistics (MultiGrid &mg, int dim)
 
void ElementQualityStatistics (MultiGrid &mg, int dim, number angleHistStepSize, number aspectRatioHistStepSize, bool bWriteHistograms)
 
void ElementQualityStatistics2d (Grid &grid, GridObjectCollection goc, number angleHistStepSize, number aspectRatioHistStepSize, bool bWriteHistograms)
 
void ElementQualityStatistics3d (Grid &grid, GridObjectCollection goc, number angleHistStepSize, number aspectRatioHistStepSize, bool bWriteHistograms)
 
template<typename TRefElem , int TWorldDim>
bool ElementSideRayIntersection (size_t &sideOut, MathVector< TWorldDim > &GlobalIntersectionPointOut, MathVector< TRefElem::dim > &LocalIntersectionPoint, const MathVector< TWorldDim > &From, const MathVector< TWorldDim > &Direction, bool bPositiv, const MathVector< TWorldDim > *vCornerCoords)
 ElementSideRayIntersection. More...
 
template<typename TRefElem , int TWorldDim>
number ElementSize (const MathVector< TWorldDim > *vCornerCoords)
 Volume of an Element in a given Dimension. More...
 
template<typename TElem , typename TPosition >
number ElementSize (const TElem &elem, const Grid::VertexAttachmentAccessor< Attachment< TPosition > > &aaPos)
 returns the size of a geometric object More...
 
template<typename TElem , typename TDomain >
number ElementSize (const TElem &elem, const TDomain &domain)
 returns the size of a geometric object More...
 
template<int dim>
number ElementSize (ReferenceObjectID roid, const MathVector< dim > *vCornerCoords)
 
template<>
number ElementSize< 1 > (ReferenceObjectID roid, const MathVector< 1 > *vCornerCoords)
 
template<>
number ElementSize< 2 > (ReferenceObjectID roid, const MathVector< 2 > *vCornerCoords)
 
template<>
number ElementSize< 3 > (ReferenceObjectID roid, const MathVector< 3 > *vCornerCoords)
 
template<>
number ElementSize< ReferenceEdge, 1 > (const MathVector< 1 > *vCornerCoords)
 Volume of a Line in 1d. More...
 
template<>
number ElementSize< ReferenceEdge, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Line in 2d. More...
 
template<>
number ElementSize< ReferenceEdge, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Line in 3d. More...
 
template<>
number ElementSize< ReferenceHexahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Hexahedron in 3d. More...
 
template<>
number ElementSize< ReferenceOctahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of an Octahedron in 3d. More...
 
template<>
number ElementSize< ReferencePrism, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Prism in 3d. More...
 
template<>
number ElementSize< ReferencePyramid, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Pyramid in 3d. More...
 
template<>
number ElementSize< ReferenceQuadrilateral, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Quadrilateral in 2d. More...
 
template<>
number ElementSize< ReferenceQuadrilateral, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Quadrilateral in 3d. More...
 
template<>
number ElementSize< ReferenceTetrahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Tetrahedron in 3d. More...
 
template<>
number ElementSize< ReferenceTriangle, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Triangle in 2d. More...
 
template<>
number ElementSize< ReferenceTriangle, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Triangle in 3d. More...
 
template<class T >
bool EliminateInvalidCells (Field< T > &field, const T &noDataValue)
 eliminates invalid cells by repeatedly filling those cells with averages of neighboring cells More...
 
static void EnableDelaunayDebugSave (bool enable=true)
 
bool EnableMemTracker (bool b)
 
template<typename matrix_type , typename vector_type >
double EnergyNorm (vector_type &x, matrix_type &A)
 
template<typename matrix_type , typename vector_type >
double EnergyNorm (vector_type &x, matrix_type &A, vector_type &tmp)
 
template<typename T1 , typename T2 >
double EnergyProd (const T1 &v1, const DenseMatrix< T2 > &M, const T1 &v2)
 
double EnergyProd (double v1, double M, double v2)
 
template<typename matrix_type , typename vector_type >
double EnergyProd (vector_type &v1, matrix_type &A, vector_type &v2)
 
template<typename matrix_type , typename vector_type >
double EnergyProd (vector_type &v1, matrix_type &A, vector_type &v2, vector_type &tmp)
 
std::string EntryToString (const Table< std::string > &table, size_t rowInd, size_t colInd)
 
std::string EntryToString (const Table< std::stringstream > &table, size_t rowInd, size_t colInd)
 
template<class T >
std::string EntryToString (const Table< T > &table, size_t rowInd, size_t colInd)
 Returns a string-representation of the current entry. More...
 
void EraseConnectingElements (Grid &grid, Vertex *v1, Vertex *v2)
 erases all elements that connect v1 and v2 More...
 
template<class TElem >
UG_API void EraseElements (Grid &grid, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd)
 erases all elements between iterBegin and iterEnd. More...
 
template<class TElem >
void EraseElements (Grid &grid, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd)
 erases all elements between iterBegin and iterEnd. More...
 
void EraseEmptySubsets (ISubsetHandler &sh)
 Erases all subsets which do not contain any geometric objects. More...
 
template<class TSelector >
void EraseSelectedObjects (TSelector &sel)
 Erases selected objects from the associated grid. More...
 
template void EraseSelectedObjects< MGSelector > (MGSelector &)
 
template void EraseSelectedObjects< Selector > (Selector &)
 
std::string ErrorStringFromStdException (const std::exception *pex)
 
template<typename TGradientEvaluator , typename TFunction >
void EvaluateGradientJump_Norm (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TGradientEvaluator , typename TFunction >
void EvaluateGradientJump_SideIntegral (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError, bool addErrSquareToAAError=false)
 
template<typename TFunction >
void EvaluateResidualErrorP1 (SmartPtr< TFunction > u, SmartPtr< UserData< number, TFunction::dim > > f, const char *cmp, number time, int quadOrder, std::string quadType, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 Evaluates the residual error for P1 shape functions (with some simplifications) More...
 
template<class side_t , class TFunction >
void ExchangeAndAdjustSideErrors (TFunction &u, ANumber aSideError, ANumber aNumElems)
 
bool ExpandFractures2d (Grid &grid, SubsetHandler &sh, const std::vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures2d (Grid &grid, SubsetHandler &sh, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures3d (Grid &grid, SubsetHandler &sh, const std::vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures3d (Grid &grid, SubsetHandler &sh, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExportGridToSMESH (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *psh=NULL, std::vector< AFloat > *pvNodeAttributes=NULL, std::vector< vector3 > *pvHoles=NULL, std::vector< vector3 > *pvRegionPositions=NULL, std::vector< int > *pvRegionAttributes=NULL, std::vector< float > *pvRegionVolumeConstraints=NULL)
 writes an SMESH file. More...
 
bool ExportGridToSMESH (Grid &grid, const char *filename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes=NULL, AInt *paNodeBoundaryMarker=NULL, AInt *paFaceBoundaryMarker=NULL, std::vector< vector3 > *pvHoles=NULL, std::vector< vector3 > *pvRegionPositions=NULL, std::vector< int > *pvRegionAttributes=NULL, std::vector< float > *pvRegionVolumeConstraints=NULL)
 writes an SMESH file. More...
 
bool ExportGridToSWC (Grid &g, ISubsetHandler *pSH, const char *fileName, AVector3 &aPos)
 
bool ExportGridToTETGEN (Grid &grid, const char *filename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute, ANumber *paVolumeConstraint)
 
bool ExportGridToTIKZ (Grid &grid, const char *filename, const ISubsetHandler *psh, APosition aPos, TikzExportDesc desc)
 
bool ExportGridToUG (const Grid &g, const SubsetHandler &shFace, const SubsetHandler &shVolume, const char *fileNamePrefix, const char *lgmName, const char *problemName, int convex)
 converts tetgen files (*.node, *.face and *.ele) to UG files (*.lgm, *.ng) More...
 
bool ExportGridToUG_2D (Grid &grid, const char *fileName, const char *lgmName, const char *problemName, int convex, SubsetHandler *psh=NULL)
 exports a grid to a 2d lgm / ng file combination. More...
 
template<class TSelector >
void ExtendSelection (TSelector &sel, size_t extSize, ISelector::status_t status)
 extends the selection to neighbours of selected elements. More...
 
template<class TSelector >
UG_API void ExtendSelection (TSelector &sel, size_t extSize, ISelector::status_t status=ISelector::SELECTED)
 extends the selection to neighbours of selected elements. More...
 
template void ExtendSelection< MGSelector > (MGSelector &sel, size_t extSize, ISelector::status_t status)
 
template void ExtendSelection< Selector > (Selector &sel, size_t extSize, ISelector::status_t status)
 
template<class TSelector , class TAAPos >
void ExtendSelectionInDirection (TSelector &sel, size_t extSize, const typename TAAPos::ValueType &dir, number minAngle, number maxAngle, const TAAPos &aaPos, ISelector::status_t status)
 extends the selection to neighbours of selected elements in the given direction. More...
 
template<class TSelector , class TAAPos >
UG_API void ExtendSelectionInDirection (TSelector &sel, size_t extSize, const typename TAAPos::ValueType &dir, number minAngle, number maxAngle, const TAAPos &aaPos, ISelector::status_t status=ISelector::SELECTED)
 extends the selection to neighbours of selected elements in the given direction. More...
 
template<typename TGroupObj , typename GF >
void extract_by_grouping (std::vector< std::vector< DoFIndex > > &vvDoFIndex, const GF &c, const std::vector< size_t > &vFullRowCmp, const std::vector< size_t > &vRemainCmp)
 
string extract_path (const string &filename)
 
template<typename TDomain , typename TBaseElem >
void ExtractAlgebraIndices2 (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &fctIndex)
 
template<typename TGroupObj , typename TGridFunction >
void ExtractByObject (std::vector< DoFIndex > &vIndex, const TGridFunction &c, const std::vector< size_t > &vFullRowCmp, const std::vector< size_t > &vRemainCmp)
 
void extractPGraph (TGraph &G, std::vector< std::vector< size_t > > &vvConnection, size_t pmin, size_t dim, bool directed)
 
template<typename TFunction >
void ExtractPositions (const TFunction &u, std::vector< MathVector< TFunction::domain_type::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, const size_t fct, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, const size_t fct, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain >
void ExtractPositionsVertex (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositionsVertex (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
void extractVGraph (TGraph &G, std::vector< std::vector< size_t > > &vvConnection, size_t pmin, size_t dim, bool directed)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector1 &, Grid::VertexAttachmentAccessor< Attachment< vector1 > >, uint, std::vector< Volume * > *)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector2 &, Grid::VertexAttachmentAccessor< Attachment< vector2 > >, uint, std::vector< Volume * > *)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector3 &, Grid::VertexAttachmentAccessor< Attachment< vector3 > >, uint, std::vector< Volume * > *)
 
template void Extrude< vector1 > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector1 &, uint, Attachment< vector1 > &, std::vector< Volume * > *)
 
template void Extrude< vector2 > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector2 &, uint, Attachment< vector2 > &, std::vector< Volume * > *)
 
template void Extrude< vector3 > (Grid &, std::vector< Vertex * > *, std::vector< Edge * > *, std::vector< Face * > *, const vector3 &, uint, Attachment< vector3 > &, std::vector< Volume * > *)
 
bool ExtrudeCylinder (Grid &grid, SubsetHandler &sh, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, int bottomSubInd=-1, int cylSubInd=-1, Selector *pSel=NULL)
 adapts the grid around the given vertex to a cylinder and extrudes it. More...
 
static bool ExtrudeCylinder (Grid &grid, SubsetHandler *sh, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, int bottomSubInd, int cylSubInd, Selector *pSel)
 
bool ExtrudeCylinder (Grid &grid, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, Selector *pSel=NULL)
 adapts the grid around the given vertex to a cylinder and extrudes it. More...
 
void ExtrudeLayers (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler &sh, bool allowForTetsAndPyras, const ANumber *aRelZOut)
 
void ExtrudeLayersMixed (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler &sh, const ANumber *aRelZOut)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector1 > > &aaPos)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector2 > > &aaPos)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector3 > > &aaPos)
 
template<class TAAPosVRT >
UG_API number FaceArea (FaceVertices *f, TAAPosVRT &aaPos)
 Returns the area of a convex face. More...
 
template<class TAAPosVRT >
number FaceArea (FaceVertices *f, TAAPosVRT &aaPos)
 Returns the area of a convex face. More...
 
template<class TAAPosVRT >
UG_API number FaceArea (ISelector &sel, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
UG_API number FaceArea (ISubsetHandler &sh, int si, size_t lvl, TAAPosVRT &aaPos)
 Returns the area sum of convex faces given by subset index and level. More...
 
template<class TAAPosVRT >
number FaceArea (ISubsetHandler &sh, int si, size_t lvl, TAAPosVRT &aaPos)
 Returns the area sum of convex faces given by subset index and level. More...
 
template<typename TDomain >
static number FaceArea (TDomain &dom, int si)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, int si, size_t lvl)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, ISelector &sel)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, ISubsetHandler &sh, int si, size_t lvl)
 
template<class TIterator , class TAAPosVRT >
UG_API number FaceArea (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the area sum of convex faces. More...
 
template<class TIterator , class TAAPosVRT >
number FaceArea (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the area sum of convex faces. More...
 
bool FaceContains (Face *f, EdgeVertices *ev)
 returns true if the given face contains the two given vertices More...
 
bool FaceContains (FaceVertices *f, Vertex *v)
 returns true if the given face contains the given vertex More...
 
static bool FaceIsOnRightSide (Face *f, Edge *e)
 
static int FacePlane (const vector3 &p)
 
number FaceQuality (FaceVertices *f, Grid::VertexAttachmentAccessor< APosition > aaPos)
 a simple measure for the quality of a face More...
 
template<typename Matrix_type >
bool FactorizeILU (Matrix_type &A)
 
template<typename Matrix_type >
bool FactorizeILUBeta (Matrix_type &A, number beta)
 
template<typename Matrix_type >
bool FactorizeILUSorted (Matrix_type &A, const number eps=1e-50)
 
UG_API bool FileCompare (const char *file1, const char *file2)
 !!! Serial i/o version !!! More...
 
UG_API bool FileExists (const char *filename)
 !!! Serial i/o version !!! More...
 
static bool FileExists (std::string filename)
 
UG_API std::string FilenameAndPathWithoutExtension (std::string str)
 returns the best guess of the filename and path from given string More...
 
string FilenameAndPathWithoutExtension (string str)
 
UG_API std::string FilenameWithoutExtension (std::string str)
 returns the best guess of the filename from given string More...
 
string FilenameWithoutExtension (string str)
 
UG_API std::string FilenameWithoutPath (const std::string &str)
 returns best guess of a filename from a given string More...
 
string FilenameWithoutPath (const string &str)
 
UG_API size_t FileSize (const char *filename)
 Returns size of the specified file in bytes. More...
 
static size_t FileSize (std::string filename)
 
bool FileTypeIs (const char *filename, const char *extension)
 !!! Serial i/o version !!! More...
 
template<typename TDomain >
void FillCornerCoordinates (typename TDomain::position_type vCornerCoordsOut[], const RegularVertex &vtx, const TDomain &domain)
 returns the coordinates of a vertex (specialization) More...
 
template<typename TElem , typename TDomain >
void FillCornerCoordinates (typename TDomain::position_type vCornerCoordsOut[], const TElem &elem, const TDomain &domain)
 returns the corner coordinates of a geometric object More...
 
static void FillDistInfos (MultiGrid &mg, SubsetHandler &shPartition, MGSelector &msel, DistInfoSupplier &distInfos, const std::vector< int > *processMap, const pcl::ProcessCommunicator &procComm, bool createVerticalInterfaces, vector< bool > &partitionIsEmpty)
 
UG_API void FinalizeUGPlugin_Jupyter ()
 
UG_API void FinalizeUGPlugin_Limex ()
 
UG_API void FinalizeUGPlugin_Richards ()
 
IndexLayout::Interface::iterator find (IndexLayout::Interface &interface, size_t i)
 
template<typename TLayout >
TLayout::iterator find_pid (TLayout &layout, int pid)
 
static size_t findBlockSize (const std::vector< std::vector< size_t > > &vvConnection)
 
void FindBoundsForStiffnesMatrixMaxEigenvalue (MultiGrid &mg, MGSubsetHandler &shOut)
 
template<class TElem , class TVertexPositionAttachmentAccessor >
UG_API TElem * FindClosestByCoordinate (const typename TVertexPositionAttachmentAccessor::ValueType &coord, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the element of the given type, whose center is closest to coord. More...
 
template<class TElem , class TVertexPositionAttachmentAccessor >
TElem * FindClosestByCoordinate (const typename TVertexPositionAttachmentAccessor::ValueType &coord, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the element of the given type, whose center is closest to coord. More...
 
bool FindClosestPlane (vector3 &centerOut, vector3 &normalOut, const vector3 *pointSet, size_t numPoints)
 Finds the plane which minimizes the distance to the given point set. More...
 
template<class TAAPosVRT >
int FindClosestVertexInArray (const std::vector< Vertex * > &array, const Vertex *p, TAAPosVRT &aaPos, number snapThreshold)
 returns the index of the closest vertex to p if closer than snapThreshold. More...
 
template<class TAAPosVRT >
int FindClosestVertexInArray (std::vector< Vertex * > &array, const Vertex *p, TAAPosVRT &aaPos, number snapThreshold)
 returns the index of the closest vertex to p smaller than snapThreshold. More...
 
template<class TAAPosVRT , class vector_t >
int FindClosestVertexInPointSet (const vector_t *pointSet, const Vertex *p, TAAPosVRT &aaPos, number snapThreshold, size_t numPoints)
 returns the index of the closest vertex to p if closer than snapThreshold More...
 
template<class TAAPosVRT >
int FindCloseVertexInArray (const std::vector< Vertex * > &array, const typename TAAPosVRT::ValueType &p, TAAPosVRT &aaPos, number snapThreshold)
 returns the index of the first vertex closer to p than snapThreshold. More...
 
template<class TAAPosVRT >
int FindCloseVertexInArray (std::vector< Vertex * > &array, const typename TAAPosVRT::ValueType &p, TAAPosVRT &aaPos, number snapThreshold)
 returns the index of the first vertex closer to p than snapThreshold. More...
 
template<class tree_t >
bool FindContainingElement (typename tree_t::elem_t &elemOut, const tree_t &tree, const typename tree_t::vector_t &point)
 
std::string FindDirInStandardPaths (const char *dirname)
 searches the directory in the standard paths. More...
 
UG_API std::vector< std::string > FindDuplicates (const std::vector< std::string > &vec)
 Finds and returns all duplicate elements of given vector. More...
 
vector< string > FindDuplicates (const vector< string > &vec)
 
template<class TIterator , class TAttAcc >
TIterator FindElementByValue (TIterator begin, TIterator end, const typename TAttAcc::ValueType &val, TAttAcc &aa)
 returns the iterator whose element has the specified attachment value. More...
 
template<class tree_t >
bool FindElementsInIntersectingNodes (std::vector< typename tree_t::elem_t > &elemsOut, const tree_t &tree, const typename tree_t::box_t &bbox)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithLargestAspectRatio (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithLargestMaxAngle (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithLargestVolToRMSFaceAreaRatio (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithSmallestAspectRatio (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithSmallestMinAngle (Grid &grid, TIterator elementsBegin, TIterator elementsEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindElementWithSmallestVolToRMSFaceAreaRatio (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPosVRT &aaPos)
 
std::string FindFileInStandardPaths (const char *filename)
 searches the file in the standard paths. More...
 
template<class TIterator , class TAAPosVRT >
FaceFindLargestFace (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindLargestVolume (TIterator volumesBegin, TIterator volumesEnd, TAAPosVRT &aaPos)
 
template<class TEdgeIterator , class TAAPosVRT >
EdgeFindLongestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 
template<class tree_t >
size_t FindLowestLeafNodeLevel (const tree_t &tree)
 
bool FindNormal (vector3 &normOut, const vector3 &v)
 finds a normal to the given vector in 3d. More...
 
bool FindParam (const char *param, int argc, const char *const *argv)
 
void FindPositionInInterfaces (std::vector< std::pair< int, size_t > > &vIndexInterface, const IndexLayout &layout, size_t index)
 returns in a vector all appearencies of an index in a layout More...
 
template<class TEdgeIterator , class TAAPosVRT >
UG_API EdgeFindShortestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 Returns the shortest edge in a list of edges. More...
 
template<class TEdgeIterator , class TAAPosVRT >
EdgeFindShortestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 Returns the shortest edge in a list of edges. More...
 
template<class TIter , class TAAPos >
size_t FindSlivers (std::vector< typename TIter::value_type > &sliversOut, TIter elemsBegin, TIter elemsEnd, number thresholdRatio, TAAPos aaPos, bool clearContainer=true)
 Searchs for slivers in the given list of elements. More...
 
template<class TIterator , class TAAPosVRT >
UG_API FaceFindSmallestFace (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the face with the smallest area. More...
 
template<class TIterator , class TAAPosVRT >
FaceFindSmallestFace (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the face with the smallest area. More...
 
template<class TIterator , class TAAPosVRT >
TIterator::value_type FindSmallestVolume (TIterator volumesBegin, TIterator volumesEnd, TAAPosVRT &aaPos)
 
template<typename TBaseObj >
void FindSubsetGroups (std::vector< int > &minCondInd, const std::vector< bool > &isMarked, const ISubsetHandler &sh, const NeighborhoodType nbhType=NHT_VERTEX_NEIGHBORS)
 
VertexFindVertexByCoordiante (vector3 &coord, VertexIterator iterBegin, VertexIterator iterEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns the vertex that is the closest to the given coordinate More...
 
template<size_t dim>
int FindVertexByCoordinate (const MathVector< dim > &coord, size_t ncoords, const MathVector< dim > vCoords[])
 returns (non-unique?) index of closest vertex More...
 
void FinishShinyCallLogging ()
 
template<class TEdgeIterator >
UG_API void FixEdgeOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 creates uniform orientation of neighboured edges. More...
 
template<class TEdgeIterator >
void FixEdgeOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 creates uniform orientation of neighboured edges. More...
 
template<class TFaceIterator >
void FixFaceOrientation (Grid &grid, TFaceIterator facesBegin, TFaceIterator facesEnd)
 creates uniform orientation of neighboured and boundary faces. More...
 
template<class TVolIterator , class TAAPosVRT >
int FixOrientation (Grid &grid, TVolIterator volsBegin, TVolIterator volsEnd, TAAPosVRT &aaPosVRT)
 Changes orientation of badly oriented volumes. More...
 
template<typename Matrix_type , typename Vector_type >
void forward_gs_step (Vector_type &c, const Matrix_type &A, const Vector_type &d, const size_t i, const number relaxFactor)
 commmon GaussSeidel-step-calls for a single index 'i' More...
 
void GatherGrid (Grid &gridOut, Selector &sel, GridDataSerializationHandler &serializer, GridDataSerializationHandler &deserializer, int root, const pcl::ProcessCommunicator &procCom=pcl::ProcessCommunicator())
 Gathers selected parts of a grid into 'gridOut' on 'rootProc'. More...
 
template<typename T >
void GatherVectorOnOne (HorizontalAlgebraLayouts &agglomerationLayout, ParallelVector< T > &collectedVec, const ParallelVector< T > &vec, ParallelStorageType type)
 
template<typename T >
void GatherVectorOnOne (IndexLayout &agglomeratedMaster, IndexLayout &agglomeratedSlave, pcl::InterfaceCommunicator< IndexLayout > &com, ParallelVector< T > &collectedVec, const ParallelVector< T > &vec, ParallelStorageType type, bool bRoot)
 
static size_t gcd (size_t a, size_t b)
 greatest common divisor More...
 
template<typename A_type , typename TLambdaVectorType >
int GeneralizedEigenvalueProblemComplex (DenseMatrix< A_type > &A, DenseMatrix< A_type > &X, TLambdaVectorType &lambda, DenseMatrix< A_type > &B, bool bSortEigenvalues=false)
 
void GenerateAlgebraIDHashList (AlgebraIDHashList &hash, AlgebraIDVec &algebraIDs)
 Creates a hash which allows a algebraID->localIndex mapping. More...
 
template<class TIndVec >
void GenerateGlobalConsecutiveIndices (TIndVec &indsOut, size_t numLocalInds, const AlgebraLayouts &layouts)
 Generates a set of global consecutive indices. More...
 
void GenerateIcosahedron (Grid &grid, const vector3 &center, number radius, AVector3 &aPos)
 Creates an Icosahedron. More...
 
void GenerateIcosphere (Grid &grid, const vector3 &center, number radius, int numRefinements, AVector3 &aPos, Selector *psel=NULL)
 Creates a ico-sphere by repeatedly refining an icosahedron. More...
 
void GenerateIcosphere (std::vector< vector3 > &trisOut, const vector3 &center, number radius, size_t refinements)
 Generates a list of triangle-corners for the given Ico-Sphere. More...
 
int GenerateScriptReferenceDocu (const char *baseDir, bool silent, bool genHtml, bool genCpp, bool genList)
 
template<size_t dim>
void GenVecCross (MathVector< dim > &result, const MathVector< dim > &v_1, const MathVector< dim > &v_2)
 calculates the usual cross product in 3d, and the (det, 0) vector as a cross product in 2d More...
 
template<>
void GenVecCross< 2 > (MathVector< 2 > &result, const MathVector< 2 > &v_1, const MathVector< 2 > &v_2)
 specialization of the "generalized vector product" in 2d. More...
 
template<>
void GenVecCross< 3 > (MathVector< 3 > &result, const MathVector< 3 > &v_1, const MathVector< 3 > &v_2)
 specialization of the "generalized vector product" in 3d. More...
 
number GeometricApproximationDegree (SimpleGrid &sg)
 sums GeometricApproximationDegree for each triangle. More...
 
number GeometricApproximationDegree (SimpleGrid &sg, int triIndex)
 the returned degree lies between 0 and 1. The closer to 1 the better. More...
 
template<class vector_t >
number GeometricApproximationDegree (vector_t &n1, vector_t &n2, vector_t &n3, vector_t &tn)
 the returned degree lies between 0 and 1. The closer to 1 the better. More...
 
void get_algebra_indices (ConstSmartPtr< DoFDistribution > dd, ConstrainedVertex *hgVrt, std::vector< Vertex * > &vConstrainingVrt, std::vector< size_t > &constrainedInd, std::vector< std::vector< size_t > > &vConstrainingInd)
 Extract algebra indices for constrained and constraining indices from DoF distribution. More...
 
template<typename TDomain >
void get_algebra_indices (ConstSmartPtr< DoFDistribution > dd, ConstrainedVertex *hgVrt, std::vector< Vertex * > &vConstrainingVrt, std::vector< size_t > &constrainedInd, std::vector< std::vector< size_t > > &vConstrainingInd, const SortVertexPos< TDomain::dim > &sortVertexPos)
 Extract DoF indices for constrained and constraining indices from DoF distribution. More...
 
double get_clock_s ()
 
void get_constrained_sides_cr (secure_container &sides, const TGridFunction &u, std::vector< MultiIndex< 2 > > multInd, size_t fct=0)
 
void * get_mem (size_t size)
 
template<typename TGridFunction >
number get_number_on_coords (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, typename TGridFunction::domain_type::position_type pos, number time, const int si)
 
template<typename T >
size_t get_val (const T &t)
 
size_t get_val (size_t i)
 
void GetAct (string str, vector< size_t > &act)
 
template<class TElemIter , class TAAPos >
void GetAspectRatioHistogram (std::vector< int > &histoOut, TElemIter elemsBegin, TElemIter elemsEnd, int histoSecs, TAAPos &aaPos, Grid::AttachmentAccessor< typename PtrToValueType< typename TElemIter::value_type >::base_type, Attachment< int > > *paaHistoSec=NULL)
 
template<class TElemIter , class TAAPos >
AspectRatioInfo GetAspectRatioInfo (TElemIter elemsBegin, TElemIter elemsEnd, TAAPos &aaPos)
 Computes the AspectRatioInfo for a sample of elements. More...
 
int GetAssociatedFaces (Face **facesOut, Grid &grid, Edge *e, int maxNumFaces)
 writes associated faces of e to facesOut. More...
 
int GetAssociatedInterfaceType (int interfaceType)
 Returns the type of associated interfaces. More...
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrection (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, DenseMatrix< VariableArray2< double > > &AlocInv, std::vector< size_t > &indices)
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrection (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, DenseMatrix< VariableArray2< double > > &AlocInv, std::vector< size_t > &indices, DenseVector< VariableArray1< double > > &tmp, DenseVector< VariableArray1< double > > &tmp2)
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrectionILUT (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, SmartPtr< ILUTPreconditioner< CPUAlgebra > > &ilut, std::vector< size_t > &indices, CPUAlgebra::vector_type &tmp, CPUAlgebra::vector_type &tmp2)
 
GlobalBoundaryRefinementRule GetBoundaryRefinementRule ()
 get procedure for boundary refinement rule variable More...
 
string GetBytesSizeString (size_t s, int length)
 
vector3 GetColorFromDefaultPalette (int index)
 
vector3 GetColorFromStandardPalette (int index)
 Returns an rgb vector (values ranging from 0 to 1), with the i-th default color. More...
 
template<typename T >
size_t GetCols (const DenseMatrix< T > &t)
 
template<>
size_t GetCols (const number &t)
 
template<typename T >
size_t GetCols (const T &t)
 
EdgeGetConnectedEdge (Grid &g, Vertex *vrt, Face *tri)
 returns the edge in the triangle tri, which does not contain vrt. More...
 
template<typename TBaseElem >
TBaseElemGetConnectedNeighbor (Grid &g, typename TBaseElem::side *face, TBaseElem *elem)
 Finds the neighbor connected through a side. More...
 
template EdgeGetConnectedNeighbor< Edge > (Grid &, Vertex *, Edge *)
 
template FaceGetConnectedNeighbor< Face > (Grid &, Edge *, Face *)
 
template VolumeGetConnectedNeighbor< Volume > (Grid &, Face *, Volume *)
 
VertexGetConnectedVertex (Edge *e, Vertex *v)
 returns the vertex that is connected to v via e. More...
 
VertexGetConnectedVertex (EdgeVertices *e, Face *f)
 returns the index of the first vertex that is contained in f and is not contained in e. More...
 
int GetConnectedVertexIndex (Face *f, const EdgeDescriptor &ed)
 returns the index of the first vertex that is contained in the specified face and is not contained in the given edge. More...
 
int GetConnectedVertexIndex (Face *f, const EdgeVertices *e)
 
EdgeGetConnectingEdge (Grid &grid, Face *f1, Face *f2)
 
void GetCoord (string str, vector< double > &coord)
 
template<typename TSparseMatrix >
void GetCuthillMcKeeOrder (const TSparseMatrix &mat, std::vector< size_t > &newIndex, bool reverse=true, bool bPreserveConsec=false)
 
DebugIDManagerGetDebugIDManager ()
 
template<class TAttachment >
UG_API TAttachment & GetDefaultPositionAttachment ()
 this method can be used to retrieve the default position attachments for different types. More...
 
template<>
APositionGetDefaultPositionAttachment< APosition > ()
 
template<>
APosition1GetDefaultPositionAttachment< APosition1 > ()
 
template<>
APosition2GetDefaultPositionAttachment< APosition2 > ()
 
template<typename TDenseType , typename TSparseMatrix >
size_t GetDenseDoubleFromSparse (TDenseType &A, const TSparseMatrix &S)
 
template<typename TSparseMatrix >
DenseMatrixFromSparseMatrix< TSparseMatrix >::type & GetDenseFromSparse (typename DenseMatrixFromSparseMatrix< TSparseMatrix >::type &A, const TSparseMatrix &S)
 
template<typename T >
double GetDet2 (const DenseMatrix< T > &mat)
 
template<typename T >
double GetDet3 (const DenseMatrix< T > &mat)
 
void GetDiag (double &a, double b)
 
template<typename T1 , typename T2 >
void GetDiag (T1 &m1, const T2 &m)
 
void GetDiagSqrt (double &a, double b)
 
template<typename T1 , typename T2 >
void GetDiagSqrt (T1 &v, const T2 &m)
 
void GetDim (string str, vector< size_t > &dim)
 
template<class TElem1 , class TElem2 , class TAAPos >
TAAPos::ValueType GetDirection (TElem1 *e1, TElem2 *e2, const TAAPos &aaPos)
 Returns the direction from the center of e1 to the center of e2. More...
 
UG_API bool GetDirectoriesInDirectory (std::vector< std::string > &dirsOut, const char *dir)
 Returns a list of all directories in a directory. More...
 
std::string::size_type GetDirectorySeperatorPos (const std::string &str)
 determines last occurrence of '/' or '\' More...
 
string::size_type GetDirectorySeperatorPos (const string &str)
 
template<class TDomain >
TDomain::position_attachment_type & GetDomainPositionAttachment (TDomain &dom)
 Helper function for subdivision volumes multigrid smoothing. More...
 
template<typename TDoubleType , typename TSparseMatrix >
void GetDoubleFromSparseBlock (TDoubleType &A, const TSparseMatrix &S)
 
template<typename TSparseMatrix >
size_t GetDoubleSize (const TSparseMatrix &S)
 
template<typename TDoubleSparse , typename TSparseMatrix >
size_t GetDoubleSparseFromBlockSparse (TDoubleSparse &A, const TSparseMatrix &S)
 
const char * GetDynamicLibraryPrefix ()
 returns the standard prefix of static and dynamic libraries on this os More...
 
const char * GetDynamicLibrarySuffix ()
 returns the standard suffix of dynamic libraries on this os More...
 
int GetEdgeIndex (Face *f, Edge *e)
 returns the index at which edge e is found in the given object More...
 
int GetEdgeIndex (Volume *vol, Edge *e)
 returns the index at which edge e is found in the given object More...
 
SweepLineEdgeGetEdgeOnTheLeft (MapEdgeCuts &edgeCuts, SweepLineVertex &v)
 
template<typename TElemOut , typename TElemIn >
void GetElemDiscItemOnSubset (std::vector< TElemOut * > &vSubsetElemDiscOut, const std::vector< TElemIn * > &vElemDiscIn, const std::vector< SubsetGroup > &vSSGrp, int si, bool clearVec=true)
 
template<typename TDomain >
void GetElemDiscOnSubset (std::vector< IElemDisc< TDomain > * > &vSubsetElemDisc, const std::vector< IElemDisc< TDomain > * > &vElemDisc, const std::vector< SubsetGroup > &vSSGrp, int si, bool clearVec)
 
template<class TDomain , class TElem >
static TElem * GetElementByCoordinate (TDomain &dom, number x, number y, number z)
 
int GetFaceIndex (Volume *vol, Face *f)
 returns the index at which face f is found in the given object More...
 
string GetFileLine (const char *filename, size_t line)
 get a specific line of a file More...
 
string GetFileLines (const char *filename, size_t fromline, size_t toline, bool includeLineNumbers)
 get some specified lines of a file More...
 
string GetFileLinesParallel (string filename, size_t fromline, size_t toline, bool includeLineNumbers, const pcl::ProcessCommunicator &pc=pcl::ProcessCommunicator())
 
UG_API std::string GetFilenameExtension (const std::string &str)
 returns the best guess of a file extensions from given string More...
 
string GetFilenameExtension (const string &str)
 
UG_API bool GetFilesInDirectory (std::vector< std::string > &filesOut, const char *dir)
 Returns a list of all files in a directory. More...
 
int GetFirstFreeSubset (const ISubsetHandler &sh)
 returns the first subset, which does not contain any elements at all More...
 
static int GetFirstRegularVertex (Grid &grid, const SubsetHandler &sh, Face *q)
 
template<class TEdgeIterator >
std::pair< Vertex *, Edge * > GetFirstSectionOfPolyChain (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 Returns the start-vertex and start-edge of a polygonal chain. More...
 
template<class TElem >
int GetGridObjectIndex (Grid &g, TElem *elem)
 returns the index of the given element in the given grid. More...
 
int GetHighestReferencedIndex (IndexLayout &layout)
 
template<class face_iter_t >
void GetInnerEdgesOfFaceSoup (std::vector< Edge * > &edgesOut, Grid &g, face_iter_t facesBegin, face_iter_t facesEnd)
 
template<typename T >
bool GetInverse (block_traits< T >::inverse_type &inv, const T &m)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 1, 1 > > &inv, const DenseMatrix< FixedArray2< double, 1, 1 > > &mat)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 2, 2 > > &inv, const DenseMatrix< FixedArray2< double, 2, 2 > > &mat)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 3, 3 > > &inv, const DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
template<typename T , size_t TBlockSize, eMatrixOrdering TOrdering>
bool GetInverse (DenseMatrixInverse< FixedArray2< T, TBlockSize, TBlockSize, TOrdering > > &inv, const DenseMatrix< FixedArray2< T, TBlockSize, TBlockSize, TOrdering > > &mat)
 
template<typename T , eMatrixOrdering TOrdering>
bool GetInverse (DenseMatrixInverse< VariableArray2< T, TOrdering > > &inv, const DenseMatrix< VariableArray2< T, TOrdering > > &mat)
 
bool GetInverse (number &inv, const number &m)
 
template<typename T >
bool GetInverse1 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
template<typename T >
bool GetInverse2 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
template<typename T >
bool GetInverse3 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
bool GetInversePermutation (const std::vector< size_t > &perm, std::vector< size_t > &invPerm)
 
template<class TLayout >
void GetLayoutTargetProcs (std::vector< int > &procsOut, const TLayout &layout)
 
void * GetLibraryProcedure (DynLibHandle h, const char *procName)
 Returns the address of the specified procedure in the given library. More...
 
UG_API std::vector< std::string > GetLoadedPlugins ()
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool GetLocalMatrix (const TGlobalMatrix &mat, TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool GetLocalMatrix (const TGlobalMatrix &mat, TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TVector >
void GetLocalVector (LocalVector &lvec, const TVector &vec)
 
LogAssistantGetLogAssistant ()
 
template<typename TSparseMatrix >
size_t GetMaxConnections (const TSparseMatrix &A)
 returns max number of non-zero connections in rows More...
 
template<typename TDomain >
static number GetMaxEdgeLength (TDomain &dom)
 
template<class TAAPos >
number GetMaxEdgeLength (Volume *vol, TAAPos &aaPos)
 
template<class TElem >
int GetMaxSubsetIndex (SubsetHandler &sh)
 returns the index of the last subset, that contains elements of type TElem. More...
 
template<typename TGridFunction >
number GetMinimum (TGridFunction &gridFct, const char *cmp, const char *subsets)
 
template<class tree_t >
std::pair< size_t, size_t > GetMinMaxNumElements (const tree_t &tree, size_t lvl)
 
template<typename matrix_type , typename vector_type >
ug::ParallelStorageType GetMultType (const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &x)
 
template<typename TSparseMatrix >
void GetNeighborhood (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices)
 
template<typename TSparseMatrix >
void GetNeighborhood (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices, std::vector< bool > &bVisited, bool bResetVisitedFlags=true)
 
template<typename TElem >
void GetNeighborhood (Grid &grid, size_t extSize, TElem *elem, typename geometry_traits< TElem >::const_iterator &begin, typename geometry_traits< TElem >::const_iterator &end)
 Finds the neighborhood of a given size for specified element and type. More...
 
template<typename TSparseMatrix >
void GetNeighborhood_worker (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices, std::vector< bool > &bVisited)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy (const TSparseMatrix &A, size_t node, size_t depth, std::vector< std::vector< size_t > > &indices)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy (const TSparseMatrix &A, size_t node, size_t depth, std::vector< std::vector< size_t > > &indices, std::vector< bool > &bVisited, bool bResetVisitedFlags=true)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy_worker (const TSparseMatrix &A, size_t node, size_t depth, size_t maxdepth, std::vector< std::vector< size_t > > &indices, std::vector< bool > &bVisited)
 
void GetNeighbours (std::vector< Face * > &vFacesOut, Grid &grid, Face *f, int side, bool clearContainer=true)
 collects neighbours of the given side of a face. More...
 
void GetNeighbours (std::vector< Volume * > &vVolsOut, Grid &grid, Volume *v, int side, bool clearContainer=true)
 collects neighbours of the given side of a volume. More...
 
std::pair< Vertex *, Edge * > GetNextSectionOfPolyChain (Grid &grid, std::pair< Vertex *, Edge * > lastSection, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 returns the next section in a polygonal chain. More...
 
template<typename TSparseMatrix >
size_t GetNNZs (const TSparseMatrix &A)
 returns the number of non-zeroes (!= number of connections) More...
 
unsigned int GetNumberOfDigits (uint64_t i)
 
size_t GetNumberOfDoFsOfPyramid (int p)
 
VertexGetOpposingSide (Grid &g, Edge *elem, Vertex *side)
 
EdgeGetOpposingSide (Grid &g, Face *elem, Edge *side)
 
FaceGetOpposingSide (Grid &g, Volume *elem, Face *side)
 
int GetParamIndex (const char *param, int argc, const char *const *argv)
 
static pair< GridObject *, char > GetParent (BinaryBuffer &in, const vector< Vertex * > &vVrts, const vector< Edge * > &vEdges, const vector< Face * > &vFaces, const vector< Volume * > &vVols)
 
const char * GetPathSeparator ()
 returns a string containing the path-separator for the current os More...
 
template<class TEdgeIterator >
size_t GetPolyChainType (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 returns an or combination of constants enumerated in PolyChainTypes. More...
 
template<typename TAPos >
UG_API int GetPositionAttachmentDimension ()
 this function returns the dimension of the position attachment at compile time More...
 
template<typename TAPos >
int GetPositionAttachmentDimension ()
 this function returns the dimension of the position attachment at compile time More...
 
const UGProfileNodeGetProfileNode (const char *name)
 
const UGProfileNodeGetProfileNode (const char *name, const UGProfileNode *node)
 
bool GetProfilerAvailable ()
 
void GetProperty (string str, vector< double > &prop)
 
QuadType GetQuadratureType (const std::string &name)
 returns Identifier from string More...
 
std::string GetRegistryIdentifierMessage ()
 
lapack_int getrf (lapack_int rows, lapack_int cols, lapack_double *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, lapack_float *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, std::complex< lapack_double > *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, std::complex< lapack_float > *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getri (lapack_int n, lapack_double *pColMajorMatrix, lapack_int lda, const int *pPivot, lapack_double *pWork, lapack_int worksize)
 
lapack_int getri (lapack_int n, lapack_float *pColMajorMatrix, lapack_int lda, const int *pPivot, lapack_float *pWork, lapack_int worksize)
 
static bool GetRightLeftUnitIndex (int &rightIndex, int &leftIndex, Grid &grid, Face *face, const SubsetHandler &shVolume)
 identifies the right and left unit index to a given surface More...
 
template<typename T >
size_t GetRows (const DenseMatrix< T > &t)
 
template<>
size_t GetRows (const number &t)
 
template<typename T >
size_t GetRows (const T &t)
 
lapack_int getrs (eTransposeMode transposeMode, lapack_int n, lapack_int nrOfRHS, const double *pColMajorMatrix, lapack_int lda, const lapack_int *pPivot, lapack_double *pRHS, lapack_int ldb)
 
lapack_int getrs (eTransposeMode transposeMode, lapack_int n, lapack_int nrOfRHS, const float *pColMajorMatrix, lapack_int lda, const lapack_int *pPivot, lapack_float *pRHS, lapack_int ldb)
 
template<typename T >
double getScaling (const AlphaVec_Expression< T > &t)
 
template<typename T >
double getScaling (const T &t)
 
template<class elem_t >
void GetSelectedElementIndices (const ISelector &sel, std::vector< size_t > &indsOut)
 
size_t GetSelfMem (const Shiny::ProfileNode *p)
 
template<class TElem >
UG_API TElem::side * GetSharedSide (Grid &grid, TElem *e1, TElem *e2)
 returns the shared side between the two elements or NULL if no such side exists. More...
 
VertexGetSharedVertex (IVertexGroup *vrts0, IVertexGroup *vrts1)
 returns the first vertex of vrts0 that is also contained in vrts1 (or NULL if no such vertex exists) More...
 
size_t GetSharedVertices (std::vector< Vertex * > &vrtsOut, IVertexGroup *vrts0, IVertexGroup *vrts1)
 fills a vector with the vertices that are both contained in vrts0 and vrts1. More...
 
template<typename T >
size_t GetSize (const DenseVector< T > &t)
 
template<>
size_t GetSize (const number &t)
 
template<typename T >
size_t GetSize (const T &t)
 
template<typename TSparseMatrixType >
void GetSliceDenseInverse (const TSparseMatrixType &A, const std::vector< size_t > &indices, DenseMatrix< VariableArray2< double > > &AlocInv)
 
template<typename TSparseMatrixType >
void GetSliceDenseInverse (const TSparseMatrixType &A, const std::vector< size_t > &indices, DenseMatrix< VariableArray2< double > > &AlocInv, DenseMatrix< VariableArray2< typename TSparseMatrixType::value_type > > &tmp)
 
template<typename TSparseMatrixType >
void GetSliceSparse (const TSparseMatrixType &A, const std::vector< size_t > &indices, CPUAlgebra::matrix_type &R)
 
template<class TElem >
static char GetSmallestLocalSubsetDimension (typename Grid::traits< TElem >::secure_container &nbrs, MultiElementAttachmentAccessor< AChar > &aaDim)
 
template<typename TDomain >
SmartPtr< IElemProlongation< TDomain > > GetStandardElementProlongation (const LFEID &lfeid)
 
template<typename TDomain >
SmartPtr< IElemRestriction< TDomain > > GetStandardElementRestriction (const LFEID &lfeid)
 
UG_API std::string GetTmpPath ()
 Returns a path to which an application may write temporary files. More...
 
size_t GetTotalMem (const Shiny::ProfileNode *p)
 
template<class TType >
size_t GetUniqueFVGeomID ()
 This method associates a unique unsigned integer value with each type. More...
 
template<class TType >
size_t GetUniqueTypeID ()
 This method associated a unique unsigned integer value with each type. More...
 
template<typename T >
const T & getVector (const AlphaVec_Expression< T > &t)
 
template<typename TDomain , typename TAlgebra >
const TAlgebra::vector_typegetVector (const GridFunction< TDomain, TAlgebra > &t)
 
template<typename T >
const T & getVector (const T &t)
 
VertexGetVertex (Edge *e, size_t i)
 returns the i'th vertex of an edge More...
 
VertexGetVertex (Face *f, size_t i)
 returns the i'th vertex of a face More...
 
VertexGetVertex (Vertex *v, size_t i)
 returns the i'th vertex of a vertex More...
 
VertexGetVertex (Volume *v, size_t i)
 returns the i'th vertex of a volume More...
 
int GetVertexIndex (EdgeVertices *e, Vertex *v)
 returns the index at which vertex v is found in the given edge More...
 
int GetVertexIndex (FaceVertices *f, Vertex *v)
 returns the index at which vertex v is found in the given face More...
 
int GetVertexIndex (VolumeVertices *vol, Vertex *v)
 returns the index at which vertex v is found in the given volume More...
 
void GetZcorn (string str, vector< double > &zcorn)
 
template<typename matrix_t , typename vector_t >
void GivensMatVecMult (matrix_t &A, vector_t &v)
 Multiplication by the Givens rotation of the QR-Decomposition. More...
 
template<typename TDomain >
static SmartPtr< IRefinerGlobalDomainRefiner (TDomain *dom)
 Creates a global domain refiner. More...
 
template<class TDomain >
static SmartPtr< GlobalSubdivisionMultiGridRefiner< typename TDomain::position_attachment_type > > GlobalSubdivisionDomainRefiner (TDomain *dom, const char *linearManifoldSubsets, bool constrained)
 Factory method, that creates a global subdivision domain refiner. More...
 
template<typename T >
MathMatrix< 0, 0, T >::value_type GramDeterminant (const MathMatrix< 0, 0, T > &m)
 
template<size_t M, typename T >
MathMatrix< 0, M, T >::value_type GramDeterminant (const MathMatrix< 0, M, T > &m)
 
template<size_t N, typename T >
MathMatrix< N, 0, T >::value_type GramDeterminant (const MathMatrix< N, 0, T > &m)
 
template<typename TDistIntegrand , typename TGridFunction >
number GridFunctionDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 computes an (abstract) distance between two functions More...
 
template<typename TDistIntegrand , typename TGridFunction >
number GridFunctionDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename TDistIntegrand::weight_type > spWeights)
 Computes (weighted) distance. More...
 
template<typename TDistIntegrand , typename TGridFunction >
number GridFunctionDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename TDistIntegrand::weight_type > spWeights, number distAvg12)
 Computes (weighted) distance with shift for averages. More...
 
std::string GridLevelAppendix (const GridLevel &gl, int minfill=2)
 returns appendix for a grid level More...
 
template<typename Matrix_type , typename Vector_type >
void gs_step_LL (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Gauss-Seidel-Iterations. More...
 
template<typename Matrix_type , typename Vector_type >
bool gs_step_LL (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a forward gauss-seidel-step, that is, solve on the lower left of A. More...
 
template<typename Matrix_type , typename Vector_type >
void gs_step_UR (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Performs a backward gauss-seidel-step, that is, solve on the upper right of A. Using gs_step_UR within a preconditioner-scheme leads to the fact that we get the correction by successive inserting the already computed values of c in c = N * d, with c being the correction and d being the defect. N denotes the matrix of the second normal-form of a linear iteration scheme. More...
 
template<typename Matrix_type , typename Vector_type >
bool gs_step_UR (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a backward gauss-seidel-step, that is, solve on the upper right of A. More...
 
template<typename TGridFunction >
number H1Distance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets=NULL)
 
template<typename TGridFunction >
number H1Distance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets=NULL)
 
template<typename TGridFunction >
number H1EnergyDistance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Distance in H1 semi norm (with select subsets & weights) More...
 
template<typename TGridFunction >
number H1EnergyDistance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Distance in H1 semi norm (all subsets, with weights) More...
 
template<typename TGridFunction >
number H1EnergyDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Squared distance in H1 semi norm (with select subsets & weights) More...
 
template<typename TGridFunction >
number H1EnergyDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Squared distance in H1 semi norm (all subsets, with weights) More...
 
template<typename TGridFunction >
number H1EnergyNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder)
 
template<typename TGridFunction >
number H1EnergyNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 
template<typename TGridFunction >
number H1EnergyNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights)
 
template<typename TGridFunction >
number H1EnergyNorm (TGridFunction &gridFct, const char *cmp, int quadOrder, const char *subsets=NULL, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 
template<typename TGridFunction >
number H1EnergyNorm2 (TGridFunction &gridFct, const char *cmp, int quadOrder, const char *subsets=NULL, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 compute energy -norm of a function on the whole domain (or on selected subsets) More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder)
 for lua shell More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 for lua shell More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spExactGrad, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder)
 
template<typename TGridFunction >
number H1Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spExactGrad, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder, const char *subsets)
 compute H1 error of a function on the whole domain or on some subsets More...
 
template<typename TGridFunction >
number H1Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder)
 
template<typename TGridFunction >
number H1Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number H1Norm (TGridFunction &u, const char *cmp, int quadOrder, const char *subsets=NULL)
 
template<typename TGridFunction >
number H1Norm2 (TGridFunction &u, const char *cmp, int quadOrder, const char *subsets=NULL)
 
template<typename TGridFunction >
number H1SemiDistance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Distance in H1 semi norm (with select subsets & weights) More...
 
template<typename TGridFunction >
number H1SemiDistance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Distance in H1 semi norm (all subsets, with weights) More...
 
template<typename TGridFunction >
number H1SemiDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Squared distance in H1 semi norm (with select subsets & weights) More...
 
template<typename TGridFunction >
number H1SemiDistance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type > weights)
 Squared distance in H1 semi norm (all subsets, with weights) More...
 
template<typename TGridFunction >
number H1SemiError (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder)
 Distance in H1 semi norm (all subsets) More...
 
template<typename TGridFunction >
number H1SemiError (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 Distance in H1 semi norm (with subset selection) More...
 
template<typename TGridFunction >
number H1SemiError2 (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 Distance in H1 semi norm (with subset selection) More...
 
template<typename TGridFunction >
number H1SemiNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder)
 
template<typename TGridFunction >
number H1SemiNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number H1SemiNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 
template<typename TGridFunction >
number H1SemiNorm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights)
 
template<typename TGridFunction >
number H1SemiNorm (TGridFunction &gridFct, const char *cmp, int quadOrder, const char *subsets=NULL, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 Computes the H1SemiNorm. More...
 
template<typename TGridFunction >
number H1SemiNorm2 (TGridFunction &gridFct, const char *cmp, int quadOrder, const char *subsets=NULL, ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type > weights=SPNULL)
 compute H1 semi-norm of a function on the whole domain (or on selected subsets) More...
 
template<typename TDomain >
static SmartPtr< IRefinerHangingNodeDomainRefiner (TDomain *dom)
 Creates an adaptive hanging node domain refiner. More...
 
template<typename TRefElem , int TWorldDim>
void HangingNormalOnSCVF (MathVector< TWorldDim > &outNormal, const MathVector< TWorldDim > *vCornerCoords)
 
size_t hash_key (const EdgeVertices *key)
 
size_t hash_key (const FaceVertices *key)
 
template<>
UG_API size_t hash_key (const std::string &str)
 creates a hash key from a string value More...
 
template<>
size_t hash_key (const string &key)
 
size_t hash_key (const VolumeVertices *key)
 
size_t hash_key (Edge *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (EdgeDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (EdgeVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (Face *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (FaceDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (FaceVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (Vertex *key)
 returns the hash-value of the vertex. More...
 
size_t hash_key (Volume *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (VolumeDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (VolumeVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
template<>
size_t hash_key< AlgebraID > (const AlgebraID &key)
 
template<>
size_t hash_key< GeomObjID > (const GeomObjID &key)
 generates a hash key for a GeomObjID. More...
 
static unsigned long HashKey (const EdgeVertices *key)
 sums the squared hash-values of associated vertices. More...
 
static unsigned long HashKey (const FaceVertices *key)
 sums the squared hash-values of associated vertices. More...
 
static unsigned long HashKey (const VolumeVertices *key)
 sums the squared hash-values of associated vertices. More...
 
bool HasMemTracking ()
 
std::string HistogrammString (std::vector< double > values)
 
template<class TDomain >
void IdentifySubsets (TDomain &dom, const char *sName1, const char *sName2)
 identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created. More...
 
template<class TDomain >
void IdentifySubsets (TDomain &dom, int sInd1, int sInd2)
 identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created. More...
 
bool ImportGridFromLGM (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *pSurfaceHandler)
 
bool ImportGridFromNG (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *pSubdomainHandler)
 
bool ImportGridFromTETGEN (Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, ISubsetHandler *psh, std::vector< AFloat > *pvNodeAttributes)
 
bool ImportGridFromTETGEN (Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute)
 
template<class ind_t >
std::string IndexListToRangeString (const std::vector< ind_t > &inds)
 
template<typename G_t , typename M_t >
void induced_subgraph (G_t &ind_g, M_t *A, const std::vector< size_t > &inv_map)
 
void Init___CompressibleNavierStokes (bridge::Registry *reg, std::string grp)
 
void Init___CompressibleNavierStokes (Registry *reg, string grp)
 
void Init___CompressibleNavierStokes___FV1 (Registry *reg, string grp)
 
void Init___CompressibleNavierStokes___FV1 (ug::bridge::Registry *reg, std::string grp)
 
void Init___IncompressibleNavierStokes (bridge::Registry *reg, std::string grp)
 
void Init___IncompressibleNavierStokes (Registry *reg, string grp)
 
void Init___NavierStokes___FE (Registry *reg, string grp)
 
void Init___NavierStokes___FE (ug::bridge::Registry *reg, std::string grp)
 
void Init___NavierStokes___FV (Registry *reg, string grp)
 
void Init___NavierStokes___FV (ug::bridge::Registry *reg, std::string grp)
 
void Init___NavierStokes___FV1 (Registry *reg, string grp)
 
void Init___NavierStokes___FV1 (ug::bridge::Registry *reg, std::string grp)
 
void Init___NavierStokes___FVCR (Registry *reg, string grp)
 
void Init___NavierStokes___FVCR (ug::bridge::Registry *reg, std::string grp)
 
void InitLinearManifoldSubsetHandler (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &linearManifoldSH, const char *linearManifoldSubsets)
 Procedure to initialize the linear boundary manifold subsets SubsetHandler with user-specified subsets. More...
 
bool InitPaths (const char *argv0)
 Initializes the pathes of ug::PathProvider. More...
 
void InitUGPlugin_ConvectionDiffusion (ug::bridge::Registry *reg, string grp)
 
void InitUGPlugin_DemoPlugin (Registry *reg, string grp)
 
void InitUGPlugin_DocuGen (Registry *reg, string grp)
 
void InitUGPlugin_Electromagnetism (Registry *reg, string grp)
 
void InitUGPlugin_Jupyter (Registry *reg, string grp)
 
void InitUGPlugin_Limex (Registry *reg, string grp)
 
void InitUGPlugin_LuaShell (Registry *reg, string grp)
 
void InitUGPlugin_NavierStokes (Registry *reg, string grp)
 
void InitUGPlugin_ProMesh (Registry *reg, string grp)
 
void InitUGPlugin_Richards (Registry *reg, string grp)
 
void InitUGPlugin_SmallStrainMechanics (Registry *reg, string grp)
 
void InitUGPlugin_TemplatePlugin (Registry *reg, string grp)
 
template<int refDim, int dim>
bool InnerDoFPositionElem (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<int dim>
bool InnerDoFPositionVertex (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
void InsertCenterVertex (Grid &g, Face *f, Vertex *vrt, bool eraseOldFace)
 Refines the face by connecting its sides with the new center. More...
 
void InsertCenterVertex (Grid &g, Volume *vol, Vertex *vrt, bool eraseOldVol)
 Refines the volume by connecting its sides with the new center. More...
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int quadOrder)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, number time)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, int quadOrder)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int order)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int quadOrder, std::string quadType)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, number time)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, TGridFunction &spGridFct, const char *subsets, number time, int quadOrder, std::string quadType)
 
template<typename TGridFunction >
number Integral (TGridFunction &gridFct, const char *cmp, const char *subsets, int quadOrder)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset, number time)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset, number time, int quadOrder)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, number time)
 
template<int WorldDim, int dim, typename TConstIterator >
number IntegralNormalComponentOnManifoldGeneral (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, const ISubsetHandler *ish, IIntegrand< MathVector< WorldDim >, WorldDim > &integrand, const SubsetGroup &bndSSGrp, int quadOrder, Grid &grid)
 
template<typename TGridFunction , int dim>
number IntegralNormalComponentOnManifoldSubset (SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, int si, const SubsetGroup &bndSSGrp, int quadOrder)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifoldSubsets (SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, const char *BndSubsets, const char *InnerSubsets, int quadOrder)
 
template<int WorldDim, int dim, typename TConstIterator >
number IntegralNormalComponentOnManifoldUsingFV1Geom (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, const ISubsetHandler *ish, IIntegrand< MathVector< WorldDim >, WorldDim > &integrand, const SubsetGroup &bndSSGrp)
 
template<int WorldDim, int dim, typename TConstIterator >
number Integrate (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, IIntegrand< number, WorldDim > &integrand, int quadOrder, std::string quadType, Grid::AttachmentAccessor< typename domain_traits< dim >::grid_base_object, ANumber > *paaElemContribs=NULL)
 integrates on the whole domain More...
 
template<typename TGridFunction >
number IntegrateDiscFlux (SmartPtr< IAssemble< typename TGridFunction::algebra_type > > spAssemble, SmartPtr< TGridFunction > spGridFct, const char *pCmps, const char *subsets)
 
template<typename TGridFunction , int dim>
void IntegrateDiscFlux (std::vector< number > &vValue, const TGridFunction &rDefect, const FunctionGroup &fctGrp, int si)
 
template<typename TGridFunction >
number IntegrateNormalComponentOnManifold (TGridFunction &u, const char *cmp, const char *BndSubset)
 Integrates a component over some boundary subsets. More...
 
template<typename TGridFunction >
number IntegrateNormalGradientOnManifold (TGridFunction &u, const char *cmp, const char *BndSubset, const char *InnerSubset=NULL)
 Integrates the Flux of a component over some boundary subsets. More...
 
template<typename TGridFunction , int dim>
number IntegrateSubset (IIntegrand< number, TGridFunction::dim > &spIntegrand, TGridFunction &spGridFct, int si, int quadOrder, std::string quadType)
 
template<typename TGridFunction >
number IntegrateSubsets (IIntegrand< number, TGridFunction::dim > &spIntegrand, TGridFunction &spGridFct, const char *subsets, int quadOrder, std::string quadType=std::string())
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time, const SmartPtr< CplUserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > m_diff_pos)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time, const MathVector< TGridFunction::dim > diff_pos)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const MathVector< TGridFunction::dim > &m_diff_pos)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const size_t fct, const char *subsets, number time, const MathVector< TGridFunction::dim > diff_pos)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const size_t fct, const SubsetGroup &ssGrp, number time, const MathVector< TGridFunction::dim > diff_pos)
 interpolates a function on a subset More...
 
template<typename TElem , typename TGridFunction , typename TGGFND >
void interpolate_from_original_fct (SmartPtr< TGridFunction > u_new, const TGGFND &u_orig, size_t fct, const LFEID &lfeid)
 
void interpolateCRToLagrange (TGridFunction &uLagrange, TGridFunction &uCR)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void InterpolateInnerDiff (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time, const SmartPtr< CplUserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > m_diff_pos)
 interpolates a function on a subset More...
 
template<typename TElem , typename TGridFunction >
void InterpolateOnDiffElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time, const MathVector< TGridFunction::dim > diff_pos)
 
template<typename TGridFunction >
void InterpolateOnDiffElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp, const MathVector< TGridFunction::dim > diff_pos)
 
template<typename TGridFunction >
void InterpolateOnDiffVertices (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp, const MathVector< TGridFunction::dim > diff_pos)
 
template<typename TElem , typename TGridFunction >
void InterpolateOnElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TGridFunction >
void InterpolateOnElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TElem , typename TGridFunction >
void InterpolateOnElementsInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TElem , typename TGridFunction >
void InterpolateOnElementsInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time, const MathVector< TGridFunction::dim > diff_pos)
 
template<typename TGridFunction >
void InterpolateOnElementsInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TGridFunction >
void InterpolateOnVertices (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TVector >
void InterpolateValues (TVector &u, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<class TObjectCollection , class TAAPosVRT >
bool IntersectCloseEdges (Grid &grid, TObjectCollection &elems, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAAPos >
bool IntersectCoplanarTriangles (std::vector< typename TAAPos::ValueType > &edgesOut, FaceVertices *tri1, FaceVertices *tri2, TAAPos aaPos)
 Intersects Coplanar Triangles. More...
 
bool IntersectCoplanarTriangles (std::vector< vector2 > &edgesOut, const vector2 &p00, const vector2 &p01, const vector2 &p02, const vector2 &p10, const vector2 &p11, const vector2 &p12)
 Intersects Coplanar Triangles. More...
 
bool IntersectCoplanarTriangles (std::vector< vector3 > &edgesOut, const vector3 &p00, const vector3 &p01, const vector3 &p02, const vector3 &p10, const vector3 &p11, const vector3 &p12)
 Intersects Coplanar Triangles. More...
 
size_t IntersectPlaneWithTetrahedron (vector3 intsOut[4], const vector3 &planePoint, const vector3 &planeNormal, const vector3 t[4])
 Returns the number of intersections and the intersection points in intsOut. More...
 
template<class T >
void InvalidateSmallLenses (Field< T > &field, size_t thresholdCellCount, const T &noDataValue)
 invalidates cells that belong to a small lense More...
 
template<typename TMatrix , typename TInverseMatrixType , typename TVector >
void InverseFromInverseType (TMatrix &mat, TInverseMatrixType &inv, TVector &x, TVector &e)
 
template<typename TMatrix , typename TVector >
void InverseFromInverseType (TMatrix &mat, TMatrix &inv, TVector &x, TVector &e)
 
bool InverseMatMult (DenseVector< FixedArray1< double, 1 > > &dest, double beta1, const DenseMatrix< FixedArray2< double, 1, 1 > > &A1, const DenseVector< FixedArray1< double, 1 > > &w1)
 
template<typename T >
bool InverseMatMult (DenseVector< FixedArray1< double, 2 > > &dest, double beta, const DenseMatrix< FixedArray2< double, 2, 2 > > &mat, const DenseVector< FixedArray1< double, 2 > > &vec)
 
template<typename T >
bool InverseMatMult (DenseVector< FixedArray1< double, 3 > > &dest, double beta, const DenseMatrix< FixedArray2< double, 3, 3 > > &mat, const DenseVector< FixedArray1< double, 3 > > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
bool InverseMatMult (number &dest, const double &beta, const number &mat, const number &vec)
 
template<typename TMat , typename TVec >
bool InverseMatMult (number &dest, const double &beta, const TMat &mat, const TVec &vec)
 you can implement this function with GetInverse and MatMult More...
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult1 (DenseVector< vector_t > &dest, double beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult2 (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult3 (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMultN (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
bool Invert (DenseMatrix< FixedArray2< double, 1, 1 > > &mat)
 
bool Invert (DenseMatrix< FixedArray2< double, 2, 2 > > &mat)
 
bool Invert (DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
template<typename T , size_t TUnknowns>
bool Invert (DenseMatrix< FixedArray2< T, TUnknowns, TUnknowns > > &mat)
 
template<typename T >
bool Invert (DenseMatrix< T > &mat)
 
bool Invert (number &m)
 
template<typename T >
bool Invert (T &m)
 
template<typename T >
bool Invert1 (DenseMatrix< T > &mat)
 
template<typename T >
bool Invert2 (DenseMatrix< T > &mat)
 
bool Invert3 (DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
bool Invert3 (DenseMatrix< VariableArray2< double > > &mat)
 
template<typename Matrix_type , typename Vector_type >
bool invert_L (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 
template<typename Matrix_type , typename Vector_type >
bool invert_U (const Matrix_type &A, Vector_type &x, const Vector_type &b, const number eps=1e-8)
 
template<typename T >
bool InvertNdyn (DenseMatrix< T > &mat)
 
template<class iter_t >
void InvertOrientation (Grid &grid, iter_t elemsBegin, iter_t elemsEnd)
 inverts the orientation of all elements between elemsBegin and elemsEnd More...
 
template<class TSelector >
void InvertSelection (TSelector &sel)
 Inverts the selection. More...
 
template<class TSelector , class TIterator >
void InvertSelection (TSelector &sel, TIterator begin, TIterator end)
 Inverts the selection of the elements between begin and end. More...
 
template void InvertSelection< MGSelector > (MGSelector &)
 
template void InvertSelection< Selector > (Selector &)
 
template<std::size_t TDim>
void InvertTensor4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<typename matrix_t , typename vector_t >
void InvMatVecMult_byGivens (matrix_t &A, vector_t &v)
 Multiplication by the inverse using the Givens rotations. More...
 
template<typename TAAPos >
AnisotropyState is_anisotropic (Edge *elem, const TAAPos &aaPos, number thresholdRatio)
 
template<typename TAAPos >
AnisotropyState is_anisotropic (Face *elem, const TAAPos &aaPos, number thresholdRatio)
 
template<typename TAAPos >
static AnisotropyState is_anisotropic (Hexahedron *hex, const TAAPos &aaPos, number thresholdRatio)
 
template<typename TAAPos >
static AnisotropyState is_anisotropic (Prism *p, const TAAPos &aaPos, number thresholdRatio)
 
template<typename TAAPos >
static AnisotropyState is_anisotropic (Quadrilateral *q, const TAAPos &aaPos, number thresholdRatio)
 
template<typename TAAPos >
AnisotropyState is_anisotropic (Volume *elem, const TAAPos &aaPos, number thresholdRatio)
 
template<typename O_t >
bool is_permutation (O_t &o)
 
bool IsBigEndian ()
 
bool IsBoundaryEdge (Grid &grid, Edge *e, Grid::face_traits::callback funcIsSurfFace)
 returns true if the edge is connected to exactly one surface face. More...
 
bool IsBoundaryEdge2D (Grid &grid, Edge *e)
 returns whether an edge lies on the boundary of a 2D grid. More...
 
bool IsBoundaryEdge3D (Grid &grid, Edge *e)
 returns whether an edge lies on the boundary of a 3D grid. More...
 
template<class TFace >
UG_API bool IsBoundaryFace3D (Grid &grid, TFace *f)
 A wrapper for IsVolumeBoundaryFace. More...
 
bool IsBoundaryVertex1D (Grid &grid, Vertex *v, Grid::edge_traits::callback cbConsiderEdge=ConsiderAll())
 returns whether a vertex lies on the boundary of a polygonal chain. More...
 
bool IsBoundaryVertex2D (Grid &grid, Vertex *v)
 returns whether a vertex lies on the boundary of a 2D grid. More...
 
bool IsBoundaryVertex3D (Grid &grid, Vertex *v)
 returns true if a vertex lies on the boundary of a 3D grid. More...
 
template<typename TSparseMatrix >
bool IsCloseToBoundary (const TSparseMatrix &A, size_t node, size_t distance)
 gets the neighborhood of a node in the connectivity graph of a SparseMatrix. More...
 
template<class TAAPosVRT >
bool IsDegenerated (Face *f, TAAPosVRT &aaPos, number threshold)
 returns true if the given face is degenerated. More...
 
template<class TAAPosVRT >
UG_API bool IsDegenerated (Face *f, TAAPosVRT &aaPos, number threshold=SMALL)
 returns true if the given face is degenerated. More...
 
template<typename TSparseMatrix >
bool IsDirichletRow (const TSparseMatrix &A, size_t i, size_t alpha)
 Evaluates 'true', iff corresponding row is Dirichlet. More...
 
template<typename TVector >
bool IsFinite (const ParallelVector< TVector > &v)
 
template<typename T >
bool IsFiniteAndNotTooBig (const DenseMatrix< T > &m)
 
template<typename T >
bool IsFiniteAndNotTooBig (const DenseVector< T > &v)
 
template<std::size_t N, std::size_t M, typename T >
bool IsFiniteAndNotTooBig (const MathMatrix< N, M, T > &m)
 
template<size_t TRank, size_t N, typename T >
bool IsFiniteAndNotTooBig (const MathTensor< TRank, N, T > &t)
 
template<typename TData , size_t N>
bool IsFiniteAndNotTooBig (const MathTensorX< TData, N > &t)
 
template<std::size_t N, typename T >
bool IsFiniteAndNotTooBig (const MathVector< N, T > &m)
 
template<typename TVector >
bool IsFiniteAndNotTooBig (const ParallelVector< TVector > &v)
 
template<typename TData >
bool IsFiniteAndNotTooBig (const std::vector< TData > &t)
 
template<typename TVector >
bool IsFiniteAndNotTooBig (const TVector &v, double tooBigValue=1e24)
 
bool IsFiniteAndNotTooBig (double d)
 
bool IsInInterface (IndexLayout::Interface &interface, size_t i)
 
bool IsLittleEndian ()
 
UG_API bool IsLonger (const std::string &a, const std::string &b)
 checks whether second string is longer than first string More...
 
bool IsLonger (const string &a, const string &b)
 
bool IsMemTrackerEnabled ()
 
bool IsRegularSurfaceVertex (Grid &grid, Vertex *v)
 returns true if the vertex lies inside a regular surface More...
 
bool IsShiftChar (char c)
 
int IsSliver (const vector3 &v0, const vector3 &v1, const vector3 &v2, const vector3 &v3, number thresholdRatio)
 
template<class TElem >
bool IsSubSurfaceElement (MultiGrid &mg, TElem *e, bool checkSides=false)
 returns true, if the element lies one level below the surface More...
 
bool IsValidRegistryIdentifier (const std::string &name)
 
template<typename T >
bool IsVectorFiniteAndNotTooBig (const T &t)
 
static bool IsVertical (const vector1 &, const vector1 &)
 
static bool IsVertical (const vector2 &from, const vector2 &to)
 
static bool IsVertical (const vector3 &from, const vector3 &to)
 
bool IsVolumeBoundaryFace (Grid &grid, ConstrainedFace *f)
 returns true if the given face is a boundary face. More...
 
bool IsVolumeBoundaryFace (Grid &grid, ConstrainingFace *f)
 returns true if the given face is a boundary face. More...
 
bool IsVolumeBoundaryFace (Grid &grid, Face *f)
 returns true if the given face is a boundary face. More...
 
template<class __T >
bool iszero (__T __val)
 
template<class TIterDest , class TIterSrc >
TIterDest iterator_cast (const TIterSrc &iter)
 You should avoid casting whenever possible! More...
 
template<typename TStorage >
std::string JuliaString (const DenseMatrix< TStorage > &A, const char *name)
 
number kineticEnergy (TGridFunction &u)
 
template<typename TGridFunction >
number L2Distance (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 computes the l2 distance between two functions More...
 
template<typename TGridFunction >
number L2Distance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 computes the squared l2 distance between two functions More...
 
template<typename TGridFunction >
number L2Distance2 (TGridFunction &spGridFct1, const char *cmp1, TGridFunction &spGridFct2, const char *cmp2, int quadOrder, const char *subsets, ConstSmartPtr< typename L2Integrand< TGridFunction >::weight_type > spWeight, number avgDist12=0.0)
 computes the squared l2 distance between two functions More...
 
template<typename TGridFunction >
number L2Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder)
 
template<typename TGridFunction >
number L2Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder)
 
template<typename TGridFunction >
number L2Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, TGridFunction &gridFct, const char *cmp, number time, int quadOrder, const char *subsets)
 computes the l2 error function on the whole domain or on some subsets More...
 
template<typename TGridFunction >
number L2Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder)
 
template<typename TGridFunction >
number L2Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Norm (TGridFunction &gridFct, const char *cmp, int quadOrder)
 
template<typename TGridFunction >
number L2Norm (TGridFunction &u, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Norm2 (TGridFunction &u, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Norm2 (TGridFunction &u, const char *cmp, int quadOrder, const char *subsets, ConstSmartPtr< typename L2Integrand< TGridFunction >::weight_type > spWeight)
 
size_t LagrangeNumDoFOnSub (const ReferenceObjectID elem, const ReferenceObjectID sub, const size_t p)
 returns number of DoFs Subelement for an element type and order p More...
 
size_t LagrangeNumDoFs (const ReferenceObjectID elem, const size_t p)
 returns number of DoFs on element type for order p More...
 
template<class TIterator , class AAPosVRT >
void LaplacianSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations)
 
number LegendrePoly (size_t k, number x)
 
UG_API size_t LevenshteinDistance (const std::string &s1, const std::string &s2)
 Calculate Levenshtein Distance of to strings. More...
 
size_t LevenshteinDistance (const string &s1, const string &s2)
 
DebugID LIB_ALG_AMG ("LIB_ALG_AMG")
 
DebugID LIB_ALG_LINEAR_OPERATOR ("LIB_ALG_LINEAR_OPERATOR")
 
DebugID LIB_ALG_LINEAR_SOLVER ("LIB_ALG_LINEAR_SOLVER")
 
DebugID LIB_ALG_MATRIX ("LIB_ALG_MATRIX")
 
DebugID LIB_ALG_VECTOR ("LIB_ALG_VECTOR")
 
DebugID LIB_DISC ("LIB_DISC")
 
DebugID LIB_DISC_ASSEMBLE ("LIB_DISC_ASSEMBLE")
 
DebugID LIB_DISC_D3F ("LIB_DISC_D3F")
 
DebugID LIB_DISC_DISCRETE_FUNCTION ("LIB_DISC_DISCRETE_FUNCTION")
 
DebugID LIB_DISC_LINKER ("LIB_DISC_LINKER")
 
DebugID LIB_DISC_MULTIGRID ("LIB_DISC_MULTIGRID")
 
DebugID LIB_DISC_NEWTON ("LIB_DISC_NEWTON")
 
DebugID LIB_DISC_OPERATOR_INVERSE ("LIB_DISC_OPERATOR_INVERSE")
 
DebugID LIB_DISC_OUTPUT ("LIB_DISC_OUTPUT")
 
DebugID LIB_DISC_TRANSFER ("LIB_DISC_TRANSFER")
 
DebugID LIB_GRID ("LIB_GRID")
 
DebugID LIB_GRID_REFINER ("LIB_GRID_REFINER")
 
DebugID LIB_PCL ("LIB_PCL")
 
bool LiesOnBoundary (Grid &grid, Edge *e)
 returns true, if the edge lies on a 2d or 3d boundary More...
 
template<class TFace >
UG_API bool LiesOnBoundary (Grid &grid, TFace *f)
 A wrapper for IsVolumeBoundaryFace. More...
 
bool LiesOnBoundary (Grid &grid, Vertex *v)
 returns true, if the vertex lies on a 1d, 2d or 3d boundary More...
 
template<class vector_t >
bool LineBoxIntersection (const vector_t &v1, const vector_t &v2, const vector_t &boxMin, const vector_t &boxMax)
 checks whether the given line-segment (v1, v2) intersect the given box. More...
 
template<class vector_t >
bool LineLineIntersection2d (vector_t &vOut, number &t0Out, number &t1Out, const vector_t &from0, const vector_t &to0, const vector_t &from1, const vector_t &to1, const number threshold=0)
 calculates the intersection of a two lines in 2d More...
 
bool LineLineIntersection3d (vector3 &aOut, vector3 &bOut, const vector3 &a1, const vector3 &a2, const vector3 &b1, const vector3 &b2)
 intersects two 3d line segments More...
 
template<class vector_t >
bool LineLineProjection (number &t1Out, number &t2Out, const vector_t &a1, const vector_t &a2, const vector_t &b1, const vector_t &b2)
 calculates the closest point between the rays through the given lines. More...
 
template<class vector_t >
int LineSphereIntersection (number &s1Out, number &s2Out, const vector_t &v1, const vector_t &v2, const vector_t &center, number radius)
 
template<typename TDomain >
static void LoadAndRefineDomain (TDomain &domain, const char *filename, int numRefs)
 
template void LoadDomain< Domain1d > (Domain1d &domain, const char *filename)
 
template void LoadDomain< Domain1d > (Domain1d &domain, const char *filename, int procId)
 
template void LoadDomain< Domain2d > (Domain2d &domain, const char *filename)
 
template void LoadDomain< Domain2d > (Domain2d &domain, const char *filename, int procId)
 
template void LoadDomain< Domain3d > (Domain3d &domain, const char *filename)
 
template void LoadDomain< Domain3d > (Domain3d &domain, const char *filename, int procId)
 
template<class TAPos >
static bool LoadGrid (Grid &grid, ISubsetHandler *psh, const char *filename, TAPos &aPos, int procId)
 This method calls specific load routines or delegates loading to LoadGrid3d. More...
 
template<class TAPos >
static bool LoadGrid (Grid &grid, SPProjectionHandler *ph, size_t &num_ph, ISubsetHandler *psh, std::vector< std::string > additionalSHNames, std::vector< SmartPtr< ISubsetHandler >> ash, const char *filename, TAPos &aPos, int procId)
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition1 &aPos)
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition2 &aPos)
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition3 &aPos)
 
static bool LoadGrid3d_IMPL (Grid &grid, ISubsetHandler *pSH, const char *filename, AVector3 &aPos)
 
bool LoadGridFrom2DF (Grid &grid, const char *filename, ISubsetHandler *psh, AVector3 &aPos)
 Reads .2df files. 'psh' is optional and may be NULL. More...
 
bool LoadGridFromART (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 loads a grid from art More...
 
bool LoadGridFromASC (Grid &grid, const char *filename, AVector3 &aPos)
 
bool LoadGridFromDUMP (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 loads dump-files. More...
 
bool LoadGridFromELE (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos)
 
template bool LoadGridFromFile (Grid &, const char *, AVector1 &, int)
 
template bool LoadGridFromFile (Grid &, const char *, AVector2 &, int)
 
template bool LoadGridFromFile (Grid &, const char *, AVector3 &, int)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector1 &, int)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector2 &, int)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector3 &, int)
 
template bool LoadGridFromFile (Grid &, SPProjectionHandler &, size_t &, ISubsetHandler &, std::vector< std::string >, std::vector< SmartPtr< ISubsetHandler >>, const char *, AVector1 &, int)
 
template bool LoadGridFromFile (Grid &, SPProjectionHandler &, size_t &, ISubsetHandler &, std::vector< std::string >, std::vector< SmartPtr< ISubsetHandler >>, const char *, AVector2 &, int)
 
template bool LoadGridFromFile (Grid &, SPProjectionHandler &, size_t &, ISubsetHandler &, std::vector< std::string >, std::vector< SmartPtr< ISubsetHandler >>, const char *, AVector3 &, int)
 
template<class TAPos >
bool LoadGridFromFile (Grid &grid, const char *filename, TAPos &aPos, int procId)
 
template<class TAPos >
bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos, int procId)
 
template<class TAPos >
bool LoadGridFromFile (Grid &grid, SPProjectionHandler &ph, size_t &num_ph, ISubsetHandler &sh, vector< string > additionalSHNames, vector< SmartPtr< ISubsetHandler >> ash, const char *filename, TAPos &aPos, int procId)
 
bool LoadGridFromGRDECL (Grid &grid, const char *filename, AVector3 &aPos=aPosition)
 loads a grid from txt More...
 
bool LoadGridFromLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, ISelector **ppSel, int numSels, ProjectionHandler *pPH, APosition aPos)
 
bool LoadGridFromLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, ProjectionHandler *pPH, APosition aPos)
 
bool LoadGridFromMSH (Grid &grid, const char *filename, ISubsetHandler *psh=NULL, AVector3 &aPos=aPosition)
 loads a grid from the GMSH ascii .msh format More...
 
bool LoadGridFromOBJ (Grid &grid, const char *filename, AVector3 &aPos, AVector2 *paTexCoord, ISubsetHandler *pSubsetHandler, std::vector< OBJMaterial > *pvMaterials)
 Loads a file from a wavefront '.obj' file. Fills optional subset-infos. More...
 
bool LoadGridFromSMESH (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *psh)
 
bool LoadGridFromSTL (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition, AVector3 &aNormFACE=aNormal)
 loads stl-ascii-files. More...
 
bool LoadGridFromSTL_ASCII (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition, AVector3 &aNormFACE=aNormal)
 
bool LoadGridFromSTL_BINARY (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition, AVector3 &aNormFACE=aNormal)
 
bool LoadGridFromSWC (Grid &g, ISubsetHandler *pSH, const char *fileName, AVector3 &aPos)
 
bool LoadGridFromTXT (Grid &grid, const char *filename, AVector3 &aPos=aPosition)
 loads a grid from txt More...
 
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename)
 Reads a grid to an ugx file. More...
 
template<class TAPosition >
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename, APosition &aPos)
 Reads a grid to an ugx file. internally uses GridReaderUGX. More...
 
template<class TAPosition >
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 
template<class TAPosition >
bool LoadGridFromUGX (Grid &grid, SPProjectionHandler &ph, size_t &num_ph, ISubsetHandler &sh, std::vector< std::string > additionalSHNames, std::vector< SmartPtr< ISubsetHandler >> ash, const char *filename, TAPosition &aPos)
 
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename)
 Reads a grid to a vtu (vtk unstructured mesh) file. More...
 
template<class TAPosition >
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename, APosition &aPos)
 Reads a grid to an vtu (vtk) file. internally uses GridReaderVTK. More...
 
template<class TAPosition >
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 
void LoadHeightfieldFromASC (Heightfield &hfield, const char *filename)
 
bool LoadMarkerPointsFromFile (MarkerPointManager &manager, const char *filename)
 Loads marker points from a file. More...
 
UG_API bool LoadPlugins (const char *pluginPath, std::string parentGroup, bridge::Registry &reg, bool bPrefixGroup=false)
 Loads all plugins in the given path. More...
 
bool LoadPlugins (const char *pluginPath, string parentGroup, bridge::Registry &reg, bool bPrefixGroup)
 
template<typename TGridFunction >
void LoadVector (TGridFunction &u, const char *filename)
 
void LogIndexLayout (IndexLayout &layout, int depth=0)
 Logs the internals of an index layout. More...
 
void LogIndexLayoutOnAllProcs (IndexLayout &layout, int depth=0)
 logs index infos for all procs successively More...
 
template<typename TAAPos >
AnisotropyState long_edges_of_anisotropic_elem (Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &longEdges)
 
template<typename TAAPos >
AnisotropyState long_edges_of_anisotropic_elem (Face *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &longEdges)
 
template<typename TAAPos >
AnisotropyState long_edges_of_anisotropic_elem (Volume *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &longEdges)
 
template<typename matrix_t >
bool LUDecomp (DenseMatrix< matrix_t > &A, size_t *pInterchange)
 
template<typename matrix_t >
bool LUDecompIKJ (DenseMatrix< matrix_t > &A, size_t *pInterchange)
 
DebugID MAIN ("MAIN")
 
template<typename TAlgebra >
std::tuple< dirichlet_iterator< TAlgebra >, dirichlet_iterator< TAlgebra > > make_dirichlet_iterator (typename TAlgebra::matrix_type &mat)
 
template<typename TAlgebra >
std::tuple< non_dirichlet_iterator< TAlgebra >, non_dirichlet_iterator< TAlgebra > > make_non_dirichlet_iterator (typename TAlgebra::matrix_type &mat)
 
template<typename matrix_type >
bool MakeConsistent (const ParallelMatrix< matrix_type > &_mat, ParallelMatrix< matrix_type > &newMat)
 
template bool MakeDelaunay (DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &)
 
template<class TAAPos >
bool MakeDelaunay (DelaunayInfo< TAAPos > &info)
 
template<class TAPos >
SPIGeometry3d MakeGeometry3d (Grid &grid, TAPos aPos)
 Utility method to construct an IGeometry3d for a given grid and position attachment. More...
 
GeomObjID MakeGeomObjID (int procRank, size_t localGeomObjID)
 Can be used to construct a GeomObjID from a proc-rank and a local id. More...
 
template<class TElem >
void MakeSubsetsConsecutive (SubsetHandler &sh)
 moves subsets so that no empty subset of type TElem is between filled ones. More...
 
UG_API std::string MakeTmpFile (std::string filename, const std::string &extension, bool &bSuccess)
 
string MakeTmpFile (string filename, const string &extension, bool &bSuccess)
 !!! Serial i/o version !!! More...
 
static SmartPtr< vector1MakeVec (number x)
 
static SmartPtr< vector2MakeVec (number x, number y)
 
static SmartPtr< vector3MakeVec (number x, number y, number z)
 
static SmartPtr< vector4MakeVec (number x, number y, number z, number w)
 
void MapLagrangeMultiIndexQuad (std::vector< size_t > &vOrientOffset, const int id0, bool sameOrientation, const size_t pOuter)
 
void MapLagrangeMultiIndexTriangle (std::vector< size_t > &vOrientOffset, const int id0, bool sameOrientation, const size_t pOuter)
 
template<typename TStorage >
void MaplePrint (const DenseMatrix< TStorage > &A, const char *name)
 
template<class TElem >
static void mark_if_periodic (IRefiner &ref, TElem *e)
 
template<typename TElem >
static void MarkAllElemsForAssemblyButHSlaves (Grid &grid, BoolMarker &bMarker)
 
template<typename TAlgebra >
static void MarkAllElemsForAssemblyButHSlaves (SmartPtr< IAssemble< TAlgebra > > ass, Grid &grid)
 
void MarkAllFromInterface (std::vector< bool > &mark, const IndexLayout::Interface &interface)
 
template<class T >
void MarkAllFromInterface (std::vector< T > &mark, const IndexLayout::Interface &interface, const T &default_val)
 
void MarkAllFromLayout (std::vector< bool > &mark, const IndexLayout &layout)
 
template<class T >
void MarkAllFromLayout (std::vector< T > &mark, const IndexLayout &layout, const T &default_val)
 
template<typename TDomain >
void MarkAlongSurface (SmartPtr< IRefiner > refiner, SmartPtr< TDomain > domain, const std::vector< std::string > &surfaceSubsets, const std::vector< std::string > &volumeSubsets)
 Mark elements neighboring a surface. More...
 
template<typename TDomain >
void MarkAnisotropic (SmartPtr< IRefiner > refiner, SmartPtr< TDomain > domain, number thresholdRatio)
 Mark all anisotropic elements of the surface grid for ansiotropic refinement. More...
 
template<class TDomain >
void MarkAnisotropic_LongEdges (TDomain &dom, IRefiner &refiner, number minLen)
 Marks all elements for anisotropic refienment and also marks all edges > minLen. More...
 
template<typename TDomain >
void MarkAnisotropicOnlyX (SmartPtr< IRefiner > refiner, SmartPtr< TDomain > domain, number thresholdRatio)
 Mark all elements that are anisotropic in direction of the x-axis for ansiotropic refinement. More...
 
template<class TVertexIterator , class TAPosition >
UG_API void MarkCorners (Grid &grid, ISubsetHandler &sh, TVertexIterator vrtsBegin, TVertexIterator vrtsEnd, Grid::edge_traits::callback cbPathEdge, int subsetIndex, number angle, TAPosition &aPos)
 
template<class TVertexIterator , class TAPosition >
void MarkCorners (Grid &grid, ISubsetHandler &sh, TVertexIterator vrtsBegin, TVertexIterator vrtsEnd, Grid::edge_traits::callback cbPathEdge, int subsetIndex, number angle, TAPosition &aPos)
 
template<class TEdgeIterator >
void MarkCreaseEdges (Grid &grid, ISubsetHandler &sh, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, int subsetIndex, number angle, APosition &aPos, ANormal *paFaceNormal)
 
template<class TEdgeIterator >
UG_API void MarkCreaseEdges (Grid &grid, ISubsetHandler &sh, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, int subsetIndex, number angle, APosition &aPos=aPosition, ANormal *paFaceNormal=NULL)
 
template<typename TElem >
void MarkElements (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 marks elements according to an attached error value field More...
 
template<typename TElem >
void MarkElementsAbsolute (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number refTol, number coarsenTol, int minLevel, int maxLevel, bool refTopLvlOnly=false)
 marks elements according to an attached error value field More...
 
template<typename TElem >
void MarkElementsForCoarsening (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number TOL, number safety, int minLevel=0)
 marks elements for coarsening according to an attached error value field More...
 
template<typename TElem >
void MarkElementsForRefinement (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number tol, int maxLevel)
 marks elements according for refinement to an attached error value field More...
 
void MarkFixedCreaseVertices (Grid &grid, SubsetHandler &sh, int creaseSI, int fixedSI)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_AbsoluteGradientIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number refTol, number coarsenTol, int minLvl, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_AbsoluteGradientJumpIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number refTol, number coarsenTol, int minLvl, int maxLevel)
 
template<class TDomain , class TElem >
void MarkForAdaption_ElementsContainingPoint (TDomain &dom, IRefiner &refiner, number x, number y, number z, std::string markType)
 
template<class TDomain >
void MarkForAdaption_ElementsTouchingSubset (TDomain &dom, IRefiner &refiner, ISubsetHandler &sh, int subsetIndex, std::string markType)
 
template<class TDomain >
void MarkForAdaption_ElementsTouchingSubsets (TDomain &dom, IRefiner &refiner, const char *subsets, std::string markType)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientAverage (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, const char *cmp, number refFrac, int minLvl, int maxLvl)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientJump (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, const char *cmp, number refFrac, int minLvl, int maxLvl, std::string jumpType)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientJumpIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_L2ErrorExact (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > spExactSol, const char *cmp, number minL2Error, number maxL2Error, number refFrac, int minLvl, int maxLvl, number time, int quadOrder)
 
template<typename TDomain , typename TAlgebra >
number MarkForAdaption_ResidualErrorP1Absolute (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > f, const char *cmp, number time, number refTol, number coarsenTol, int maxLvl, int quadOrder, std::string quadType, bool refTopLvlOnly=false)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_ResidualErrorP1Relative (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > f, const char *cmp, number time, number refFrac, int minLvl, int maxLvl, int quadOrder, std::string quadType)
 
template<class TDomain >
void MarkForAdaption_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max, std::string markType)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<class TDomain >
void MarkForAdaption_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius, std::string markType)
 
template<class TDomain >
void MarkForAdaption_VerticesInSphereMaxLvl (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius, std::string markType, int maxLvl)
 Marks all vertices in the given d-dimensional sphere. More...
 
template<class TRef , class TIter , class TAAPos >
void MarkForAnisotropicRefinement (Grid &grid, TRef &ref, number minEdgeRatio, TIter elemsBegin, TIter elemsEnd, TAAPos aaPos)
 
template<class TDomain >
void MarkForCoarsen_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, const char *luaCallbackName)
 
template<typename TDomain , typename TAlgebra >
void MarkForCoarsenening_SurfaceLayer (const GridFunction< TDomain, TAlgebra > &u, IRefiner &refiner)
 Mark surface layer for coarsening. More...
 
static void MarkForRefinement_All (SmartPtr< IRefiner > ref)
 Marks all elements from refinement. More...
 
template<class TElem >
static void MarkForRefinement_AllAnisotropic (SmartPtr< IRefiner > ref)
 
template<class TDomain >
void MarkForRefinement_AnisotropicDirection (TDomain &dom, IRefiner &refiner, MathVector< TDomain::dim > &dir, number minEdgeRatio)
 
template<class TDomain >
void MarkForRefinement_AnisotropicElements (TDomain &dom, IRefiner &refiner, number minEdgeRatio)
 
template<class TDomain >
void MarkForRefinement_CloseToSurface (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const TDomain &surfaceDomain)
 
template<class TDomain >
void MarkForRefinement_ContainsSurfaceNode (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const TDomain &surfaceDomain)
 
template<class TDomain >
void MarkForRefinement_EdgeDirection (TDomain &dom, IRefiner &refiner, MathVector< TDomain::dim > &dir, number minDeviationAngle, number maxDeviationAngle, bool selectFlipped)
 
template<class TDomain >
void MarkForRefinement_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const char *luaCallbackName)
 
template<class TDomain , class TElem >
void MarkForRefinement_ElementsInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 Marks all elements which lie completely in the given d-dimensional sphere. More...
 
template<class TDomain , class TSubsetHandler , class TElem >
void MarkForRefinement_ElementsInSubset (TDomain &dom, IRefiner &refiner, TSubsetHandler &sh, int subsetIndex)
 
template<class elem_t >
void MarkForRefinement_SubsetInterfaceElements (IRefiner &refiner, ISubsetHandler &sh)
 
template<class TDomain , class TElem >
void MarkForRefinement_SubsetInterfaceElements (TDomain &dom, IRefiner &refiner)
 
template<class TDomain >
void MarkForRefinement_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max)
 
template<class TDomain >
void MarkForRefinement_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 
template<class TRef , class TEdgeIter , class TAAPos >
void MarkForRefinementByDirection (TRef &ref, TAAPos aaPos, TEdgeIter edgesBegin, TEdgeIter edgesEnd, const typename TAAPos::ValueType &dir, number minDeviationAngle, number maxDeviationAngle, bool selectFlipped)
 
template<typename TDomain >
void MarkGlobal (SmartPtr< IRefiner > refiner, SmartPtr< TDomain > domain)
 Mark all surface elements for refinement. More...
 
template<typename TSparseMatrix >
void MarkNeighbors (const TSparseMatrix &A, size_t node, size_t depth, std::vector< bool > &bVisited)
 
void MarkNeighborsForAnisotropicRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
void MarkNeighborsForFullRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
template<typename TGridFunction , typename TBaseElem >
unsigned long MarkOutOfRangeElems (SmartPtr< IRefiner > refiner, ConstSmartPtr< TGridFunction > u, size_t cmp, number lowerBnd, number upperBnd)
 
template<typename TGridFunction >
void MarkOutOfRangeElems (SmartPtr< IRefiner > refiner, ConstSmartPtr< TGridFunction > u, size_t cmp, number lowerBnd, number upperBnd)
 
template<typename TDomain >
void MarkSubsets (SmartPtr< IRefiner > refiner, SmartPtr< TDomain > domain, const std::vector< std::string > &vSubset)
 Mark all surface elements of specific subsets for refinement. More...
 
template<typename matrix_t >
void MatAdd (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Add a scalar to a matrix (componentwise) More...
 
template<typename matrix_t >
void MatAdd (matrix_t &mOut, const matrix_t &m1, const matrix_t &m2)
 adds two matrices and stores the result in a third one More...
 
template<typename matrix_type >
void MatAdd (matrix_type &M, number alpha1, const matrix_type &A, number alpha2, const matrix_type &B)
 Calculates M = A + B. More...
 
template<typename X , typename Y , typename M >
void MatAdd (MatrixOperator< M, X, Y > &res, number alpha1, MatrixOperator< M, X, Y > &A1, number alpha2, MatrixOperator< M, X, Y > &A2)
 
template<typename TAlgebra >
void MatAdditiveToConsistentOnDiag (typename TAlgebra::matrix_type *pMat, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to consistent on diagonal of a matrix More...
 
template<typename matrix_type >
void MatAddNonDirichlet (matrix_type &M, number alpha1, const matrix_type &A, number alpha2, const matrix_type &B)
 Calculates M = A + B. More...
 
template<typename matrix_t >
matrix_t::value_type MatContraction (const matrix_t &m1, const matrix_t &m2)
 
template<typename matrix_t >
matrix_t::value_type MatDeviatorTrace (const matrix_t &m, matrix_t &dev)
 
template<typename T1 >
double matDiagMax (const DenseMatrix< T1 > &mat)
 
double matDiagMax (const double d)
 
template<typename matrix_t >
void MatDiagSet (matrix_t &mInOut, typename matrix_t::value_type s)
 Set diagonal entries of a matrix to a scalar (other entries are not changed) More...
 
template<typename matrix_t >
void MatDivide (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Devide a matrix by a scalar (componentwise) More...
 
template<typename TMatrix , typename TVector >
void MatExtractDiagOnLayout (TVector *pDiagVector, const TMatrix *pMatrix, const IndexLayout &Layout)
 extracts diagonal of a matrix for interface indices More...
 
template<typename matrix_t >
matrix_t::value_type MatFrobeniusNorm (matrix_t &m)
 
template<typename matrix_t >
matrix_t::value_type MatFrobeniusNormSq (matrix_t &m)
 
template<typename matrix_t , typename vector_t >
void MatHouseholder (matrix_t &mOut, const vector_t &orthoVec)
 
template<typename matrix_t >
void MatIdentity (matrix_t &mOut)
 Fills the matrix with the identity matrix. More...
 
template<typename X , typename Y , typename M >
void MatIdentity (MatrixOperator< M, X, Y > &opOut)
 
template<typename matrix_t >
matrix_t::value_type MatInftyNorm (matrix_t &m)
 
template<typename TStorage >
std::string MatlabString (const DenseMatrix< TStorage > &A, const char *name)
 
template<typename matrix_t >
matrix_t::value_type MatMaxNorm (matrix_t &m)
 
template<typename vector_t , typename matrix_t >
void MatMult (DenseVector< vector_t > &dest, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = beta1 * A1 * w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMult (DenseVector< vector_t > &dest, const number &beta1, const DenseMatrixInverse< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = beta1 * A1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMult (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = beta1 * A1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrixInverse< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &alpha2, const vector_t &v2, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + alpha2*v2 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = alpha1*v1 + beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename matrix_type , typename vector_type >
bool MatMultAddDirect (ParallelVector< vector_type > &dest, const number &alpha1, const ParallelVector< vector_type > &v1, const number &alpha2, const ParallelVector< vector_type > &v2, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename matrix_type , typename vector_type >
bool MatMultAddDirect (ParallelVector< vector_type > &dest, const number &alpha1, const ParallelVector< vector_type > &v1, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &alpha1, const vector_t &v1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &alpha1, const vector_t &v1, const number &alpha2, const vector_t &v2)
 calculates dest = alpha1*v1 + beta1 * A1 *w1 + alpha2*v2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2, const number &alpha1, const vector_t &v1)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2 + alpha1*v1; More...
 
template<typename matrix_type , typename vector_type >
bool MatMultDirect (ParallelVector< vector_type > &dest, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiply (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< L, M, T > &m2)
 multiply two matrices and stores the result in a third one More...
 
template<size_t N, size_t M, size_t L, size_t P, typename T >
void MatMultiply (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< L, P, T > &m2, const MathMatrix< P, M, T > &m3)
 multiply three matrices and stores the result in a fourth one More...
 
template<typename matrix_t >
void MatMultiply (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Multiply a matrix by a scalar (componentwise) More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMBMT (MathMatrix< N, N, T > &mOut, const MathMatrix< N, M, T > &m1, const MathMatrix< M, M, T > &m2)
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyMBT (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< M, L, T > &m2)
 multiply a matrix with the transposed of a second one and stores the result in mOut More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMMT (MathMatrix< M, M, T > &mOut, const MathMatrix< M, N, T > &m)
 multiply a matrix with its transposed and stores the result in a second one More...
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyMTB (MathMatrix< N, M, T > &mOut, const MathMatrix< L, N, T > &m1, const MathMatrix< L, M, T > &m2)
 multiply the transposed of a matrix with a matrix and stores the result in mOut More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMTBM (MathMatrix< N, N, T > &mOut, const MathMatrix< M, N, T > &m1, const MathMatrix< M, M, T > &m2)
 
template<size_t N, size_t M, typename T >
void MatMultiplyMTM (MathMatrix< N, N, T > &mOut, const MathMatrix< M, N, T > &m)
 multiply a transposed matrix with itself and stores the result in a second one More...
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyTransposed (MathMatrix< N, M, T > &mOut, const MathMatrix< L, N, T > &m1, const MathMatrix< M, L, T > &m2)
 multiply two transposed matrices and stores the result in a third one More...
 
template<typename vector_t , typename matrix_t >
bool MatMultTransposed (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const GPUSparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const MapSparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const SparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename matrix_type , typename vector_type >
void MatMultTransposedDirect (ParallelVector< vector_type > &dest, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename matrix_t >
matrix_t::value_type MatOneNorm (matrix_t &m)
 
template<typename TStorage >
DenseMatrix< TStorage > MatrixTranspose (const DenseMatrix< TStorage > &A)
 
double MatrixTranspose (const double &b)
 
template<typename matrix_t >
void MatRotationX (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the x-axis in 3 dimensions. More...
 
template<typename matrix_t >
void MatRotationY (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the y-axis in 3 dimensions. More...
 
template<typename matrix_t >
void MatRotationYawPitchRoll (matrix_t &mOut, typename matrix_t::value_type yaw, typename matrix_t::value_type pitch, typename matrix_t::value_type roll)
 Creates a rotation matrix given yaw, pitch and roll in radiants. More...
 
template<typename matrix_t >
void MatRotationZ (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the y-axis in 2 or 3 dimensions. More...
 
template<typename matrix_t >
void MatScale (matrix_t &mOut, typename matrix_t::value_type s, const matrix_t &m)
 scales a matrix_t More...
 
template<typename X , typename Y , typename M >
void MatScale (MatrixOperator< M, X, Y > &A, number alpha)
 
template<typename matrix_t >
void MatScaleAppend (matrix_t &mOut, typename matrix_t::value_type s, const matrix_t &m)
 scales a matrix_t and adds to result to a second matrix More...
 
template<typename matrix_t >
void MatSet (matrix_t &mInOut, typename matrix_t::value_type s)
 Set each matrix entry to a scalar (componentwise) More...
 
template<typename matrix_t >
void MatSubtract (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Subtract a scalar from a matrix (componentwise) More...
 
template<typename matrix_t >
void MatSubtract (matrix_t &mOut, const matrix_t &m1, const matrix_t &m2)
 subtracts m2 from m1 and stores the result in a mOut More...
 
void matSum (double &erg, double alpha, double vec)
 
template<typename T1 , typename T2 >
T1 matSum (double alpha, T2 &mat)
 
template<typename T1 , typename T2 >
void matSum (T1 &erg, double alpha, T2 &mat)
 
template<std::size_t TDim, std::size_t TDimSQ>
void MatToTens4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4, const DenseMatrixInverse< FixedArray2< number, TDimSQ, TDimSQ > > &mat)
 
template<typename T1 >
double matTrace (const DenseMatrix< T1 > &mat)
 
double matTrace (const double d)
 
template<typename X , typename Y , typename M >
void MatTranspose (MatrixOperator< M, X, Y > &AT, MatrixOperator< M, X, Y > &A)
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecMult (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecMultAppend (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication adding to a second vector. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecScaleMultAppend (vector_t_out &vOut, typename vector_t_out::value_type s, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication added scaled to a second vector. More...
 
template<typename TMatrix , typename TVector >
void MatWriteDiagOnLayout (TMatrix *pMatrix, const TVector *pDiagVector, const IndexLayout &Layout)
 writes diagonal of a matrix for interface indices More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type MaxAbsEigenvalue (const MathMatrix< 1, 1, T > &m)
 
template<typename T >
MathMatrix< 2, 2, T >::value_type MaxAbsEigenvalue (const MathMatrix< 2, 2, T > &m)
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type MaxAbsEigenvalue (const MathMatrix< M, N, T > &m)
 Computes maximum eigenvalue of a (symmetric) matrix. More...
 
template<class TAAPos , class TIterator >
number MaxElementDiameter (Grid &grid, TAAPos &aaPos, TIterator iterBegin, TIterator iterEnd)
 returns the maximal diameter of all elements between iterBegin and iterEnd. More...
 
template<typename TDomain >
number MaxElementDiameter (TDomain &domain, int level)
 returns the maximal diameter of all elements between iterBegin and iterEnd. More...
 
template number MaxElementDiameter< Domain1d > (Domain1d &domain, int level)
 
template number MaxElementDiameter< Domain2d > (Domain2d &domain, int level)
 
template number MaxElementDiameter< Domain3d > (Domain3d &domain, int level)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 computes maximum error of a grid function on a subset More...
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TElem , typename TGridFunction >
void MaxErrorOnElements (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TGridFunction >
void MaxErrorOnElements (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TGridFunction >
void MaxErrorOnVertices (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
void MeasureTetrahedronWithSmallestMinAngle (MultiGrid &grid)
 
template<typename T >
void MemSwap (T &a, T &b)
 
void MergeGlobalLayout (GlobalLayout &globalLayout, const std::map< int, int > &merge)
 
template void MergeGrids (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition1, bool)
 
template void MergeGrids (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition2, bool)
 
template void MergeGrids (Grid &, Grid &, ISubsetHandler &, ISubsetHandler &, APosition3, bool)
 
template<typename TAPos >
void MergeGrids (Grid &mrgGrid, Grid &grid, ISubsetHandler &mrgSh, ISubsetHandler &sh, TAPos aPos, bool joinSubsets)
 Merges to grids into one grid. More...
 
template<typename TLayout >
void MergeInterfaces (TLayout &layout, const std::map< int, int > merge)
 
template<typename TLayout >
void MergeInterfaces (TLayout &layout, const std::vector< int > pidSources, int pidAppendTo)
 
template<class TVrtIterator >
UG_API VertexMergeMultipleVertices (Grid &grid, TVrtIterator vrtsBegin, TVrtIterator vrtsEnd)
 Merges all vertices between the given iterators into a single vertex. More...
 
template<class TVrtIterator >
VertexMergeMultipleVertices (Grid &grid, TVrtIterator vrtsBegin, TVrtIterator vrtsEnd)
 Merges all vertices between the given iterators into a single vertex. More...
 
void MergeVertices (Grid &grid, Vertex *v1, Vertex *v2)
 merges two vertices and restructures the adjacent elements. More...
 
void MeshLayerBoundaries (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler *pSH)
 
void MeshLayers (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler *pSH)
 
template<typename TElem >
bool MightContainGhosts (const GridLayoutMap &layoutMap, int lvl)
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type MinAbsEigenvalue (const MathMatrix< M, N, T > &m)
 Computes minimum eigenvalue of a (symmetric) matrix. More...
 
template<typename matrix_t >
matrix_t::value_type MinAbsEigenvalue (matrix_t &m)
 
template<class TAAPos , class TIterator >
number MinElementDiameter (Grid &grid, TAAPos &aaPos, TIterator iterBegin, TIterator iterEnd)
 returns the minimal diameter of all elements between iterBegin and iterEnd. More...
 
template<typename TDomain >
number MinElementDiameter (TDomain &domain, int level)
 returns the minimal diameter of all elements between iterBegin and iterEnd. More...
 
template number MinElementDiameter< Domain1d > (Domain1d &domain, int level)
 
template number MinElementDiameter< Domain2d > (Domain2d &domain, int level)
 
template number MinElementDiameter< Domain3d > (Domain3d &domain, int level)
 
template<class EdgeIterator , class TAAPos >
UG_API void MinimizeEdgeLength_SwapsOnly (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, TAAPos &aaPos)
 Transforms the given edge-set so that the sum of the length the edges is minimized. More...
 
template<class EdgeIterator , class TAAPos >
void MinimizeEdgeLength_SwapsOnly (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, TAAPos &aaPos)
 Transforms the given edge-set so that the sum of the length the edges is minimized. More...
 
template<typename TDomain >
static void MinimizeMemoryFootprint (TDomain &dom)
 
template<typename TGridFunction >
number Minimum (SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<class TIterator , class TAAPos >
void MoveVertices (TIterator vrtsBegin, TIterator vrtsEnd, TAAPos aaPos, const typename TAAPos::ValueType &offset)
 moves vertices by the specified offset More...
 
template<class TVrtIter , class TAAPos >
void MultiEdgeSplit (Grid &grid, Edge *edge, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos aaPos)
 Inserts the specified vertices on the given edge. More...
 
template<typename matrix_type , typename vector_type , typename densematrix_type >
void MultiEnergyProd (matrix_type &A, SmartPtrVector< vector_type > &px, DenseMatrix< densematrix_type > &rA, size_t n)
 
template<typename vector_type , typename densematrix_type >
void MultiScalProd (vector_type &px, DenseMatrix< densematrix_type > &rA, size_t n)
 
template<typename T >
T * MyCudaAlloc (size_t N)
 
static void MyPrintError (UGError &err)
 
template<class TElem >
static bool NbrIsInSubset (ISubsetHandler &sh, typename Grid::traits< TElem >::secure_container &nbrs, int si)
 
static void newton_for_bp_projection (vector3 &posOut, const std::vector< NeuriteProjector::BPProjectionHelper > &vProjHelp, float rad, const vector3 &constAngleSurfNormal, const NeuriteProjector *np)
 
static std::string NextValid2DFLine (ifstream &in)
 
template<typename TStorage >
std::string NonzeroString (const DenseMatrix< TStorage > &A, const char *brackets, const char *seperator, int base, const char *name)
 
number NormalizedChebyshev1Poly (size_t k, number x)
 
number NormalizedChebyshev2Poly (size_t k, number x)
 
number NormalizedLegendrePoly (size_t k, number x)
 
static bool NotVertical (const vector1 &, const vector1 &)
 
static bool NotVertical (const vector2 &from, const vector2 &to)
 
static bool NotVertical (const vector3 &from, const vector3 &to)
 
int NumAssociatedEdges (Grid &grid, Vertex *v)
 returns the number of associated edges of the given vertex More...
 
int NumAssociatedFaces (Grid &grid, Edge *e)
 returns the number of associated faces of the given edge More...
 
int NumAssociatedFaces (Grid &grid, Vertex *v)
 returns the number of associated faces of the given vertex More...
 
int NumAssociatedVolumes (Grid &grid, Face *f)
 returns the number of associated volumes of the specified face More...
 
int NumberOfDigits (int n)
 returns the number of digits of an integer (expressed with base 10) More...
 
void NumeriereKnoten (const std::vector< std::vector< size_t > > &vvConnections, std::vector< bool > &vVisited, std::vector< size_t > &vAncestorsCount, std::vector< size_t > &vNewIndex, size_t &N, size_t v)
 
static size_t NumIndices (const IndexLayout &Layout)
 
template<class TElemPtr1 , class TElemPtr2 >
UG_API size_t NumSharedVertices (Grid &grid, TElemPtr1 elem1, TElemPtr2 elem2)
 returns the number of vertices that are shared by two objects More...
 
template<class TElemPtr1 , class TElemPtr2 >
size_t NumSharedVertices (Grid &grid, TElemPtr1 elem1, TElemPtr2 elem2)
 returns the number of vertices that are shared by two objects More...
 
size_t NumSharedVertices (IVertexGroup *vrts0, IVertexGroup *vrts1)
 Returns the number of shared vertices between vrts0 and vrts1. More...
 
template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ObtainSimpleGrid (SimpleGrid &sgOut, Grid &grid, Vertex *vrt1, Vertex *vrt2, size_t size, TPosAcc &aaPos, TNormAcc &aaNorm, TIntAcc &aaInt)
 returns a neighbourhood of the edge defined by vrt1 and vrt2 in a SimpleGrid. More...
 
template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ObtainSimpleGrid_CollapseEdge (SimpleGrid &sgOut, Grid &grid, Edge *e, size_t size, TPosAcc &aaPos, TNormAcc &aaNorm, TIntAcc &aaInt)
 returns a neighbourhood of the edge e after e has been collapsed. More...
 
void OctReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vCornerCoord2, std::vector< number > vCornerCoord3, std::vector< number > vCornerCoord4, std::vector< number > vCornerCoord5, std::vector< number > vGlobPos)
 
const char * OnOffString (bool b)
 
DynLibHandle OpenLibrary (const char *fileName)
 Loads a library and returns a handle. More...
 
template<std::size_t N, typename T >
bool operator!= (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
ParallelStorageType operator& (const ParallelStorageType &a, const ParallelStorageType &b)
 
template<typename L , typename R >
MatVec_Expression< L, R > operator* (const AlphaMat_Expression< L > &l, const R &r)
 create a MatVec_Expression by (alpha*MATRIX) * VECTOR More...
 
template<typename T >
TE_AlphaVec< typename T::vector_typeoperator* (const TE_AlphaVec< T > &l, double alpha)
 
template<typename T >
TE_VecAdd2< T > operator* (const TE_VecAdd2< T > &t, double alpha)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename T >
TE_VecAdd3< T > operator* (const TE_VecAdd3< T > &t, double alpha)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename value_type >
double operator* (const TRANSPOSED< Vector< value_type > > &x, const Vector< value_type > &y)
 
template<typename TStorage >
DenseVector< TStorage > operator* (double alpha, const DenseVector< TStorage > &vec)
 
template<typename T >
TE_VecScale< typename T::vector_typeoperator* (double alpha, const TE_AlphaVec< T > &r)
 
template<typename T >
TE_VecAdd2< T > operator* (double alpha, const TE_VecAdd2< T > &t)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename T >
TE_VecAdd3< T > operator* (double alpha, const TE_VecAdd2< T > &t)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename TStorage >
DenseMatrix< TStorage > operator* (number a, const DenseMatrix< TStorage > &b)
 
template<typename L , typename R >
TE_VecAdd2< typename L::vector_typeoperator+ (const TE_AlphaVec< L > &l, const TE_AlphaVec< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_typeoperator+ (const TE_AlphaVec< R > &r, const TE_VecAdd2< L > &l)
 
template<typename L , typename R >
AlphaMatVec_X_Expression< L, operation_add, R > operator+ (const TE_AMV_X< L > &l, const TE_AMV_X< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_typeoperator+ (const TE_VecAdd2< L > &l, const TE_AlphaVec< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
ReferenceObjectID operator++ (ReferenceObjectID &roid, int)
 
template<typename L , typename R >
TE_VecAdd2< typename L::vector_typeoperator- (const TE_AlphaVec< L > &l, const TE_AlphaVec< R > &r)
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_typeoperator- (const TE_AlphaVec< R > &r, const TE_VecAdd2< L > &l)
 
template<typename L , typename R >
AlphaMatVec_X_Expression< L, operation_sub, R > operator- (const TE_AMV_X< L > &l, const TE_AMV_X< R > &r)
 create AlphaMatVec_X_Expression<L, operation_minus, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_typeoperator- (const TE_VecAdd2< L > &l, const TE_AlphaVec< R > &r)
 
UG_API bool operator< (const GeomObjID &gid1, const GeomObjID &gid2)
 
template<std::size_t N, typename T >
bool operator< (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
template<typename TStorage >
bool operator< (double alpha, const DenseVector< TStorage > &vec)
 
std::ostream & operator<< (std::ostream &os, const NeuriteProjector::Mapping &mapping)
 
std::ostream & operator<< (std::ostream &os, const NeuriteProjector::SurfaceParams &surfParams)
 
std::ostream & operator<< (std::ostream &os, const StringTableStream &sts)
 
template<class T >
std::ostream & operator<< (std::ostream &os, const Table< T > &table)
 prints a table to the specified ostream. More...
 
template<class vector_t >
std::ostream & operator<< (std::ostream &out, const AABox< vector_t > &box)
 
std::ostream & operator<< (std::ostream &out, const AlgebraID &ID)
 
std::ostream & operator<< (std::ostream &out, const AlgebraLayouts &layouts)
 
std::ostream & operator<< (std::ostream &out, const AlgebraType &v)
 writes the Identifier to the output stream More...
 
std::ostream & operator<< (std::ostream &out, const CommonLocalDoFSet &v)
 writes to the output stream More...
 
template<typename TStorage >
std::ostream & operator<< (std::ostream &out, const DenseMatrix< TStorage > &mat)
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const DenseMatrixInverse< T > &mat)
 
template<typename TStorage >
std::ostream & operator<< (std::ostream &out, const DenseVector< TStorage > &vec)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 0 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 1 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 2 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 3 > &v)
 
template<int dim>
std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< dim > &v)
 writes to the output stream More...
 
template<typename T , size_t n>
std::ostream & operator<< (std::ostream &out, const FixedArray1< T, n > &arr)
 
template<typename T , size_t rowsT, size_t colsT, eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const FixedArray2< T, rowsT, colsT, T_ordering > &arr)
 
UG_API std::ostream & operator<< (std::ostream &out, const GeomObjID &goId)
 
std::ostream & operator<< (std::ostream &out, const GridLevel &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &out, const HorizontalAlgebraLayouts &layouts)
 
std::ostream & operator<< (std::ostream &out, const IndexLayout &layout)
 
std::ostream & operator<< (std::ostream &out, const LocalDoFSet &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &out, const QuadType &v)
 writes the Identifier to the output stream More...
 
template<typename T , eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const ReservableArray2< T, T_ordering > &arr)
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const VariableArray1< T > &arr)
 
template<typename T , eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const VariableArray2< T, T_ordering > &arr)
 
template<typename TDomain , typename TAlgebra >
std::ostream & operator<< (std::ostream &outStream, const GridFunction< TDomain, TAlgebra > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ParallelStorageType &type)
 
std::ostream & operator<< (std::ostream &outStream, const ug::FunctionGroup &grp)
 
std::ostream & operator<< (std::ostream &outStream, const ug::FunctionIndexMapping &map)
 
std::ostream & operator<< (std::ostream &outStream, const ug::LocalMatrix &mat)
 
std::ostream & operator<< (std::ostream &outStream, const ug::LocalVector &vec)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 2, 2 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 2, 3 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 3, 2 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 3, 3 > &m)
 
template<std::size_t N, std::size_t M>
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< N, M > &m)
 Print MathMatrix<N,M> to standard output. More...
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< 2 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< 3 > &m)
 
template<std::size_t N>
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< N > &m)
 Print MathSymmetricMatrix<N> to standard output. More...
 
template<size_t TRank, size_t N, typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensor< TRank, N, T > &v)
 
template<typename TEntry >
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensorX< TEntry, 1 > &v)
 
template<typename TEntry , size_t N>
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensorX< TEntry, N > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 0, T > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 1 > &v)
 formatted output of MathVector objects: (...,...) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 1, T > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 2 > &v)
 formatted output of MathVector objects: (...,...) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 2, T > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 3 > &v)
 formatted output of MathVector objects: (...,...) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 3, T > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 4 > &v)
 formatted output of MathVector objects: (...,...) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 4, T > &v)
 
template<std::size_t N, typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< N, T > &v)
 
template<int N>
std::ostream & operator<< (std::ostream &outStream, const ug::MultiIndex< N > &v)
 
std::ostream & operator<< (std::ostream &outStream, DiscPart part)
 
std::ostream & operator<< (std::ostream &outStream, Polynomial1D &v)
 
std::ostream & operator<< (std::ostream &outStream, ReferenceObjectID type)
 
template<>
std::string operator<< (std::string a, const char *s)
 
template<>
std::string operator<< (std::string a, std::string b)
 
template<typename T >
std::string operator<< (std::string a, T t)
 
template<typename TStorage >
bool operator<= (double alpha, const DenseVector< TStorage > &vec)
 
template<typename T >
bool operator== (const MathVector< 0, T > &v, const MathVector< 0, T > &w)
 
template<std::size_t N, typename T >
bool operator== (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
template<typename TStorage >
bool operator> (double alpha, const DenseVector< TStorage > &vec)
 
template<typename TStorage >
bool operator>= (double alpha, const DenseVector< TStorage > &vec)
 
std::istream & operator>> (std::istream &in, NeuriteProjector::Mapping &mapping)
 
std::istream & operator>> (std::istream &in, NeuriteProjector::SurfaceParams &surfParams)
 
void OrderCRCuthillMcKee (ApproximationSpace< TDomain > &approxSpace, TGridFunction &u, bool bReverse)
 
template<typename TDomain >
void OrderCuthillMcKee (ApproximationSpace< TDomain > &approxSpace, bool bReverse)
 orders the all DofDistributions of the ApproximationSpace using Cuthill-McKee More...
 
void OrderCuthillMcKee (DoFDistribution &dofDistr, bool bReverse)
 orders the dof distribution using Cuthill-McKee More...
 
template<typename TDomain >
void OrderDirectionYForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, std::vector< size_t > &indY)
 
template<typename TDomain >
void OrderDirectionZForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, std::vector< size_t > &indZ)
 
template<typename TDomain >
void OrderDownwind (ApproximationSpace< TDomain > &approxSpace, const std::vector< number > &vVel)
 
template<typename TDomain >
void OrderDownwind (ApproximationSpace< TDomain > &approxSpace, const std::vector< number > &vVel, number threshold)
 
template<typename TDomain >
void OrderDownwind (ApproximationSpace< TDomain > &approxSpace, SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > > spVelocity)
 
template<typename TDomain >
void OrderDownwind (ApproximationSpace< TDomain > &approxSpace, SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > > spVelocity, number threshold)
 
template<typename TDomain >
void OrderDownwindForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > > spVelocity, number time, int si, number threshold)
 
template<typename TDomain >
void OrderDownwindForDofDist (SmartPtr< DoFDistribution > spDd, ConstSmartPtr< TDomain > spDomain, SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > > spVelocity, number threshold)
 
template<typename TDomain >
void OrderLex (ApproximationSpace< TDomain > &approxSpace, const char *order)
 orders the all DofDistributions of the ApproximationSpace using lexicographic order More...
 
template<typename TDomain >
void OrderLexForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, size_t orderDim, bool increasing)
 orders the dof distribution using Cuthill-McKee More...
 
bool OrientationMatches (const EdgeVertices &e1, const EdgeVertices &e2)
 
UG_API bool OrientationMatches (FaceVertices *fv, Volume *v)
 
template<typename matrix_t , typename vector_t >
void OrthogProjectVec (vector_t &v, const matrix_t &A)
 Orthogonal projection. More...
 
template<typename T >
std::string OstreamShift (const T &t)
 
static void ParallelLayoutDebugSave (MultiGrid &mg)
 temporary method, which will be removed when debugging is done. More...
 
template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ParallelSubspaceCorrectionLoop (const typename TAlgebra::matrix_type &A, GridFunction< TDomain, TAlgebra > &c, const typename TAlgebra::vector_type &d, number omega_relax, ILocalSubspace< TDomain, TAlgebra, TGroupObj > &subspace, typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator objIterBegin, typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator objIterEnd)
 Abstract loop. More...
 
double ParamToDouble (const char *param, int argc, const char *const *argv, double dDefault)
 
bool ParamToDouble (double &dOut, const char *param, int argc, const char *const *argv)
 
int ParamToInt (const char *param, int argc, const char *const *argv, int iDefault)
 
bool ParamToInt (int &iOut, const char *param, int argc, const char *const *argv)
 
bool ParamToString (const char **strOut, const char *param, int argc, const char *const *argv)
 
template<typename TDomain >
static bool PartitionDistributedDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 
template<typename TDomain >
static bool PartitionDomain_Bisection (TDomain &domain, PartitionMap &partitionMap, int firstAxisToCut)
 partitions a domain by repeatedly cutting it along the different axis More...
 
template<typename TDomain >
static bool PartitionDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 Partitions a domain based on the elements of one level. More...
 
template<typename TDomain >
static bool PartitionDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, int hWeight, int vWeight)
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, SmartPtr< PartitionWeighting > weightFct)
 partitions a domain by using graph-based partitioning by METIS More...
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, SmartPtr< PartitionWeighting > weightFct)
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel=0, int hWeight=1, int vWeight=1)
 partitions a domain by using graph-based partitioning by METIS More...
 
template<typename TDomain >
static bool PartitionDomain_RegularGrid (TDomain &domain, PartitionMap &partitionMap, int numCellsX, int numCellsY, int numCellsZ, bool surfaceOnly)
 partitions a domain by sorting all elements into a regular grid More...
 
template<typename TDomain >
static bool PartitionDomain_RegularGrid (TDomain &domain, PartitionMap &partitionMap, int numCellsX, int numCellsY, int numCellsZ, bool surfaceOnly)
 partitions a domain by sorting all elements into a regular grid More...
 
template<class TElem , class TIterator , class TAAPos >
bool PartitionElements_RegularGrid (SubsetHandler &shOut, TIterator begin, TIterator end, int numCellsX, int numCellsY, int numCellsZ, TAAPos &aaPos, typename Grid::traits< TElem >::callback cbConsiderElem=ConsiderAll(), int bucketSubset=-1)
 Partitions the elements in the grid by sorting them into a regular grid. More...
 
template<class TGeomBaseObj >
bool PartitionGrid_MetisKway (SubsetHandler &shPartitionOut, Grid &grid, int numParts)
 Partitions the elements in the grid using the METIS library. More...
 
template bool PartitionGrid_MetisKway< Edge > (SubsetHandler &, Grid &, int)
 
template bool PartitionGrid_MetisKway< Face > (SubsetHandler &, Grid &, int)
 
template bool PartitionGrid_MetisKway< Volume > (SubsetHandler &, Grid &, int)
 
template<class TGeomBaseObj >
bool PartitionMultiGrid_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &grid, int numParts, size_t baseLevel, boost::function< int(TGeomBaseObj *, TGeomBaseObj *)> &weightFct)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template<class TGeomBaseObj >
bool PartitionMultiGrid_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &grid, int numParts, size_t baseLevel=0, int hWeight=1, int vWeight=1)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template bool PartitionMultiGrid_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Edge *, Edge *)> &)
 
template bool PartitionMultiGrid_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template bool PartitionMultiGrid_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Face *, Face *)> &)
 
template bool PartitionMultiGrid_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template bool PartitionMultiGrid_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Volume *, Volume *)> &)
 
template bool PartitionMultiGrid_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template<class TGeomBaseObj >
bool PartitionMultiGridLevel_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &mg, int numParts, size_t level)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template bool PartitionMultiGridLevel_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t)
 
template<class TGeomBaseObj >
bool PartitionMultiGridLevel_ParmetisKway (SubsetHandler &shPartitionOut, MultiGrid &mg, int numParts, size_t level)
 Partitions the elements in the multi-grid using the PARMETIS library. More...
 
template bool PartitionMultiGridLevel_ParmetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_ParmetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_ParmetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t)
 
UG_API std::string PathFromFilename (const std::string &str)
 returns best guess of a path without a filename from a given string More...
 
string PathFromFilename (const string &str)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static bool PerformCollapses (const AdjustEdgeLengthDesc &desc, Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool PerformCollapses (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, number minEdgeLen, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, bool adaptive=true)
 
static bool PerformRetetrahedralization (Grid &grid, SubsetHandler &sh, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, ANumber &aVolCon, bool applyVolumeConstraint, int verbosity)
 
template<class TAAPosVRT , class TAANormVRT >
static bool PerformSplits (const AdjustEdgeLengthDesc &desc, Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm)
 
template<class TAAPosVRT , class TAANormVRT >
bool PerformSplits (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, number maxEdgeLen, TAAPosVRT &aaPos, TAANormVRT &aaNorm, bool adaptive=true)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool PerformSwaps (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt)
 
static bool PerformTetrahedralization (Grid &grid, ISubsetHandler *pSH, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, int verbosity)
 
void PermuteIndicesInIndexLayout (IndexLayout &layout, const std::vector< size_t > &vIndNew)
 permutes an IndexLayout for the permutation of indices More...
 
UG_API bool PluginLoaded (const std::string &name)
 
bool PluginLoaded (const string &name)
 
template<class TAAPosVRT >
UG_API int PointFaceTest (vector3 &v, Face *f, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
int PointFaceTest (vector3 &v, Face *f, TAAPosVRT &aaPos)
 
template<>
bool PointIsInsideQuadrilateral (const MathVector< 3 > &v, const MathVector< 3 > &v0, const MathVector< 3 > &v1, const MathVector< 3 > &v2, const MathVector< 3 > &v3)
 
template<class vector_t >
bool PointIsInsideQuadrilateral (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Returns true if the point lies inside or on the boundary of a quadrilateral. More...
 
UG_API bool PointIsInsideTetrahedron (const vector3 &v, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns true if the point lies inside the tetrahedron More...
 
template<class vector_t >
bool PointIsInsideTetrahedron (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Returns true if the point lies inside or on the boundary of a tetrahedron. More...
 
template<>
bool PointIsInsideTriangle (const MathVector< 3 > &v, const MathVector< 3 > &v0, const MathVector< 3 > &v1, const MathVector< 3 > &v2)
 
template<class vector_t >
bool PointIsInsideTriangle (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2)
 Returns true if the point lies inside or on the boundary of a triangle. More...
 
template<class vector_t >
bool PointIsInsideTriangle_HighAcc (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2)
 Returns true if the point lies inside or on a side of the given triangle. More...
 
template<class vector_t >
vector_t PointOnRay (const vector_t &from, const vector_t &dir, number s)
 returns the point described by a relative ray coordinate More...
 
static int PointTriangleIntersection (const vector3 &p, const TRI &t)
 
static void pos_in_bp (vector3 &posOut, const NeuriteProjector::Neurite &neurite, uint32_t neuriteID, float &t, float &angle, float rad, std::vector< NeuriteProjector::BranchingRegion >::const_iterator &it, const IVertexGroup *parent, const NeuriteProjector *np)
 
static void pos_in_neurite (vector3 &posOut, const NeuriteProjector::Neurite &neurite, size_t neuriteID, float t, float angle, float rad)
 
static void pos_on_surface_tip (vector3 &posOut, const NeuriteProjector::Neurite &neurite, const IVertexGroup *parent, const NeuriteProjector *np, number rad)
 
template<class TElemDisc >
static void post_assemble_loop (std::vector< TElemDisc * > vElemDisc)
 
template<class TElem >
static void PostProcessDistInfos (MultiGrid &mg, DistInfoSupplier &distInfos)
 DistInfos are post-processed and some values are adjusted (primarily missing vslaves-marks are added) More...
 
template<class TElemDisc >
static void prep_assemble_loop (std::vector< TElemDisc * > vElemDisc)
 
static void print_mark (int &posNow, int length)
 
static void print_mark (int &posNow, int length)
 
void PrintAngleHistogram (vector< number > &locAngles, number stepSize, ug::Table< std::stringstream > &outTable)
 
void PrintAngleStatistics2d (Grid &grid, GridObjectCollection &goc, int level, TAAPosVRT &aaPos)
 
void PrintAngleStatistics3d (Grid &grid, GridObjectCollection &goc, int level, TAAPosVRT &aaPos)
 
void PrintAspectRatioHistogram (vector< number > &locAspectRatios, number stepSize, ug::Table< std::stringstream > &outTable)
 
template<class TGeomObj >
void PrintAttachmentInfo (Grid &grid)
 prints information on all attachments of the specified grid More...
 
template<class TData , int dim>
void PrintCondUserDataValue (const UserData< TData, dim, bool > &ud, const MathVector< dim > &globIP, number time, int si)
 
void PrintDebugInfos (const vector< SweepLineVertex > &vrts, const list< SweepLineEdge > &edges)
 
void PrintDoFCount (const vector< DoFCount > &vDC, const string &sInfo, const string &sAlgebra, const string &sflags)
 
template<class TIterator , class TAAPos >
void PrintElementEdgeRatios (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPos aaPos)
 
template<typename TDomain >
static void PrintElementEdgeRatios (TDomain &dom)
 
void PrintElementNumbers (const GridObjectCollection &goc)
 prints how many elements of each type exist in the goc. More...
 
void PrintGlobalLayout (const GlobalLayout &globalLayout, const char *name)
 
void PrintGridElementNumbers (Grid &grid)
 prints how many elements of each type exist in the grid. More...
 
void PrintGridElementNumbers (GridSubsetHandler &sh)
 prints how many elements of each type exist in the subset handler. More...
 
void PrintGridElementNumbers (MultiGrid &mg)
 prints how many elements of each type exist in the multi grid. More...
 
bool PrintLayouts (const HorizontalAlgebraLayouts &layout)
 
void PrintLUA ()
 
template<typename matrix_type >
void PrintMaple (const matrix_type &mat, const char *name)
 
template<typename matrix_type >
void PrintMatrix (const matrix_type &mat, const char *name)
 
void PrintQuadRule (const QuadratureRule< 2 > &q)
 
void PrintSimpleGrid (SimpleGrid &sg)
 
template<typename tvector >
void PrintStorageType (const tvector &v)
 
void PrintSubdivisionVolumesRefinementMask ()
 Function for printing the subdivision volumes tet-oct refinement mask. More...
 
template<class TData , int dim>
void PrintUserDataValue (const UserData< TData, dim > &ud, const MathVector< dim > &globIP, number time, int si)
 
template<typename T >
void PrintVector (const T &v, std::string desc="")
 
void PrintVertexVolumeValence (MultiGrid &mg, SubsetHandler &sh, int subsetIndex)
 
template void ProjectHierarchyToSubdivisionLimit (MultiGrid &mg, APosition &aPos)
 
template void ProjectHierarchyToSubdivisionLimit (MultiGrid &mg, APosition1 &aPos)
 
template void ProjectHierarchyToSubdivisionLimit (MultiGrid &mg, APosition2 &aPos)
 
template<class TAPosition >
void ProjectHierarchyToSubdivisionLimit (MultiGrid &mg, TAPosition &aPos)
 Projection function for smooth subdivision (volumes+surface) refinement. More...
 
template<class vector_t >
number ProjectPointToLine (vector_t &vOut, const vector_t &v, const vector_t &from, const vector_t &to)
 finds the projection of v onto the line defined by from and to More...
 
template<class vector_t >
void ProjectPointToPlane (vector_t &vOut, const vector_t &v, const vector_t &p, const vector_t &n)
 projects v onto the plane defined by the point p and the planes normal n. More...
 
template<class vector_t >
number ProjectPointToRay (vector_t &vOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 finds the projection of v onto the ray defined by from and dir More...
 
template<class TTriangleIterator , class TAAPosVRT >
bool ProjectPointToSurface (vector3 &vOut, const vector3 &v, const vector3 &n, TTriangleIterator trisBegin, TTriangleIterator trisEnd, TAAPosVRT &aaPos, bool compareNormals)
 
template<class TTriangleIterator , class TAAPosVRT >
UG_API bool ProjectPointToSurface (vector3 &vOut, const vector3 &v, const vector3 &n, TTriangleIterator trisBegin, TTriangleIterator trisEnd, TAAPosVRT &aaPos, bool compareNormals=false)
 
void ProjectToLayer (Grid &grid, const RasterLayers &layers, int layerIndex, Grid::VertexAttachmentAccessor< AVector3 > aaPos)
 projects the given (surface-) grid to the specified raster More...
 
bool ProjectToLimitLoop (Grid &grid, APosition &aProjPos)
 projects surface vertices to their limit subdivision surface position More...
 
template<class TAVrtPos >
void ProjectToLimitPLoop (Grid &grid, TAVrtPos aPos, TAVrtPos aProjPos)
 projects all vertices in the given grid to their limit-positions using the piecewise loop scheme. More...
 
template<class TAVrtPos >
void ProjectToLimitSubdivBoundary (Grid &grid, TAVrtPos aPos, TAVrtPos aProjPos)
 projects all boundary vertices in the given grid to their limit-positions using the piecewise loop scheme. More...
 
template<class TAAPosVRT >
bool ProjectVerticesToCloseEdges (Grid &grid, GridObjectCollection elems, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAPos >
bool ProjectVerticesToCloseEdges (Grid &grid, GridObjectCollection elems, TAPos &aPos, number snapThreshold)
 
template<class TObjectCollection , class TAPos >
bool ProjectVerticesToCloseFaces (Grid &grid, TObjectCollection &elems, TAPos &aPos, number snapThreshold)
 
template<typename TDomain >
static void ProjectVerticesToSphere (TDomain &dom, std::vector< number > center, number radius, number eps)
 
template<typename TDomain , typename TAlgebra >
void Prolongate (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
template<typename TDomain , typename TAlgebra >
void ProlongateElemwise (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
template<typename TDomain , typename TAlgebra >
void ProlongateP1 (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
bool QuadDiagonalIsValid (const vector3 &c0, const vector3 &c1, const vector3 &c2, const vector3 &c3)
 returns true if the normals of the resulting triangles point into the same direction More...
 
template<class vector_t >
number QuadrilateralArea (const vector_t &p1, const vector_t &p2, const vector_t &p3, const vector_t &p4)
 calculates the are of the triangle defined by p1, p2 and p3 More...
 
template<class TAAPos >
number QuadrilateralAspectRatio (FaceVertices *f, TAAPos &aaPos)
 Returns the aspect ratio of a quadrilateral. More...
 
template bool QualityGridGeneration (Grid &, DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &, number, int)
 
template<class TAAPos >
bool QualityGridGeneration (Grid &grid, DelaunayInfo< TAAPos > &info, number minAngle=0, int maxSteps=-1)
 Transforms the given triangle-set into a delaunay set. More...
 
template<class TriIter , class TAAPos >
bool QualityGridGeneration (Grid &grid, TriIter trisBegin, TriIter trisEnd, TAAPos &aaPos, number minAngle=0, Grid::edge_traits::callback cbConstrainedEdge=ConsiderNone(), int maxSteps=-1)
 
template<class TNumber >
TNumber rad_to_deg (TNumber rad)
 
template<typename TDomain >
static void RandomizeDomain (TDomain &dom, number dx, number dy, number dz)
 
template<class ind_t >
void RangeStringToIndexList (std::vector< ind_t > &indsOut, const char *rangeString)
 
template<class vector_t >
bool RayBoxIntersection (const vector_t &rayFrom, const vector_t &rayDir, const vector_t &boxMin, const vector_t &boxMax, number *tNearOut=NULL, number *tFarOut=NULL)
 checks if a ray is intersecting a box More...
 
bool RayCylinderIntersection (number &tMinOut, number &tMaxOut, const vector3 &rayFrom, const vector3 &rayDir, const vector3 &cylCenter, const vector3 &cylAxis, number cylRadius)
 returns the parameter values at which a given ray intersects an infinite cylinder. More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector2 &from, const vector2 &dir, Edge *e, Grid &g, Grid::VertexAttachmentAccessor< AVector2 > aaPos, number sml=SMALL)
 2d ray-element intersection for edges More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector2 &from, const vector2 &dir, Face *f, Grid &g, Grid::VertexAttachmentAccessor< AVector2 > aaPos, number sml=SMALL)
 2d ray-element intersection for faces More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Edge *e, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for edges More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Face *f, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for faces More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Volume *v, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for volumes More...
 
template<class TElem , class vector_t >
static bool RayElementIntersectionImpl (number &sminOut, number &smaxOut, const vector_t &from, const vector_t &dir, TElem *e, Grid &g, Grid::VertexAttachmentAccessor< Attachment< vector_t > > aaPos, number sml)
 utility method for the full-dimensional RayElementIntersection implementation More...
 
template<class tree_t >
bool RayElementIntersections (std::vector< RayElemIntersectionRecord< typename tree_t::elem_t > > &intersectionsOut, const tree_t &tree, const typename tree_t::vector_t &rayFrom, const typename tree_t::vector_t &rayDir, const number small=1.e-12)
 
template<class vector_t >
bool RayLineIntersection2d (vector_t &vOut, number &bcOut, number &tOut, const vector_t &p0, const vector_t &p1, const vector_t &vFrom, const vector_t &vDir, number sml=0)
 calculates the intersection of a ray with a Line in 2d More...
 
template<class vector_t >
bool RayPlaneIntersection (vector_t &vOut, number &tOut, const vector_t &rayFrom, const vector_t &rayDir, const vector_t &p, const vector_t &n)
 calculates the intersection of the ray rayFrom+t*rayDir and the plane (x-p)*n=0. More...
 
template<class vector_t >
bool RayRayIntersection2d (vector_t &vOut, number &t0Out, number &t1Out, const vector_t &p0, const vector_t &dir0, const vector_t &p1, const vector_t &dir1)
 calculates the intersection of two Rays in 2d More...
 
bool RayRayIntersection3d (vector3 &aOut, vector3 &bOut, const vector3 &p0, const vector3 &dir0, const vector3 &p1, const vector3 &dir1)
 intersects two 3d rays More...
 
template<class vector_t >
bool RayRayProjection (number &t1Out, number &t2Out, const vector_t &from1, const vector_t &dir1, const vector_t &from2, const vector_t &dir2)
 Calculates the parameter values at wich two rays are closest. More...
 
template<class vector_t >
int RaySphereIntersection (number &s1Out, number &s2Out, const vector_t &v, const vector_t &dir, const vector_t &center, number radius)
 checks whether the line segment (v1, v2) intersect the given sphere. More...
 
template<class vector_t >
bool RayTriangleIntersection (vector_t &vOut, const vector_t &p0, const vector_t &p1, const vector_t &p2, const vector_t &vFrom, const vector_t &vDir)
 calculates the intersection of a ray with a triangle More...
 
template<class vector_t >
bool RayTriangleIntersection (vector_t &vOut, number &bc1Out, number &bc2Out, number &tOut, const vector_t &p0, const vector_t &p1, const vector_t &p2, const vector_t &vFrom, const vector_t &vDir, const number small=SMALL)
 calculates the intersection of a ray with a triangle More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 1 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 2 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 3 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 4 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
UG_API bool ReadFile (const char *filename, std::vector< char > &file, bool bText)
 
bool ReadFile (const char *filename, vector< char > &file, bool bText)
 
template<typename T >
void ReadFromFile (T &v, std::string filename)
 
static bool ReadGridHeader (GridHeader &gridHeader, BinaryBuffer &in)
 
static void ReadIndices (vector< int > &vIndsOut, char *buffer, const char *delim, bool newTokBuff=true)
 
template<class TElemIter >
static void ReadSelectionStatesFromStream (TElemIter iterBegin, TElemIter iterEnd, ISelector &sel, BinaryBuffer &in)
 
template<class TElemIter >
static void ReadSubsetIndicesFromStream (TElemIter iterBegin, TElemIter iterEnd, ISubsetHandler &sh, BinaryBuffer &in)
 
static bool ReadTetrahedrons (Grid &grid, ifstream &in, Grid::VertexAttachmentAccessor< APosition > &aaPos, int &lineCount)
 
static bool ReadTriangles (Grid &grid, ifstream &in, Grid::VertexAttachmentAccessor< APosition > &aaPos, int &lineCount)
 
template<typename vector_type >
bool ReadVector (std::string filename, vector_type &vec, int dim)
 
void ReceiveGlobalLayout (pcl::InterfaceCommunicator< IndexLayout > &comm, const std::vector< int > &srcprocs, GlobalLayout &globalMasterLayout, GlobalLayout &globalSlaveLayout)
 
template<typename matrix_type >
void ReceiveMatrix (const matrix_type &A, matrix_type &M, IndexLayout &verticalMasterLayout, const std::vector< int > &srcprocs, ParallelNodes &PN)
 
template<typename TPIDs , typename TReceiveScheme >
void ReceiveOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TReceiveScheme &receiver)
 receives data over a interface based on a CommunicationScheme on a subgroup of processes More...
 
template<int dim>
MathVector< dimReferenceElementCenter (ReferenceObjectID roid)
 returns the Center of a reference element at run-time More...
 
template<>
MathVector< 1 > ReferenceElementCenter< 1 > (ReferenceObjectID roid)
 
template<>
MathVector< 2 > ReferenceElementCenter< 2 > (ReferenceObjectID roid)
 
template<>
MathVector< 3 > ReferenceElementCenter< 3 > (ReferenceObjectID roid)
 
int ReferenceElementDimension (ReferenceObjectID roid)
 returns the reference element dimension at run-time More...
 
bool Refine (Grid &grid, Selector &sel, AInt &aInt, RefinementProjector *projector=NULL, bool useSnapPoints=false)
 refines selected faces and edges regularily and builds a closure on adjacent unselected faces. More...
 
bool Refine (Grid &grid, Selector &sel, RefinementProjector *projector=NULL, bool useSnapPoints=false)
 refines selected faces and edges regularily and builds a closure on adjacent unselected faces. More...
 
template<class TElemClass >
static bool Refine (std::vector< Volume * > &vNewVolumesOut, Vertex **ppNewVertexOut, Vertex **newEdgeVertices, Vertex **newFaceVertices, Vertex *newVolumeVertex, const Vertex &prototypeVertex, Vertex **vrts, int(*funcRefine)(int *, int *, bool &, vector3 *, bool *), vector3 *corners=NULL, bool *isSnapPoint=NULL)
 
template<class vector_t >
void ReflectVectorAtPlane (vector_t &vReflectedOut, const vector_t &v, const vector_t &n, const vector_t &r0)
 reflects a vector at a plane More...
 
void release_mem (void *p)
 
template<int dim, class TVrtIterator >
void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, Attachment< MathVector< dim > > &aPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<int dim, class TVrtIterator , class TAAPos >
void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, TAAPos aaPos, number threshold)
 
template<class TElemIter >
void RemoveDuplicates (Grid &grid, TElemIter elemsBegin, TElemIter elemsEnd)
 Removes elements which share the same set of vertices with other elements in the given range. More...
 
template<class TGeomObj >
static void RemoveEmptyInterfaces (typename GridLayoutMap::Types< TGeomObj >::Map &map)
 A helper method for GridLayoutMap::remove_empty_interfaces() More...
 
template<typename TLayout >
bool RemoveInterface (TLayout &layout, int pid)
 
template<typename TLayout >
void RemoveInterfaces (TLayout &layout, std::vector< int > group)
 
void RemoveLowerDimSubsets (SubsetGroup &subsetGroup)
 
void RemoveWhitespaceFromString (std::string &string)
 removes all white space from a string, also within the string More...
 
static bool ReorderCornersCCW (Vertex **cornersOut, Vertex **const cornersIn, int numCorners, int firstCorner)
 helpful if a local vertex-order is required More...
 
string repeat (char c, int nr)
 Builds a string with specified repetitions of given character. More...
 
template<class TIterator >
bool RepeatedEdgeExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
template<class TIterator >
bool RepeatedFaceExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
template<class TIterator >
bool RepeatedVertexExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
string replace_chars (string &str, char cToR, char cNew)
 
UG_API std::string ReplaceAll (std::string target, const std::string &oldstr, const std::string &newstr)
 Substitutes substrings of given string with other substrings. More...
 
string ReplaceAll (string target, const string &oldstr, const string &newstr)
 
static void ReplaceByConstrained (MultiGrid &mg, Edge *e)
 
static void ReplaceByConstrained (MultiGrid &mg, Face *f)
 
static void ReplaceByConstrained (MultiGrid &mg, Vertex *v)
 
static void ReplaceByConstraining (MultiGrid &, Vertex *)
 
static void ReplaceByConstraining (MultiGrid &mg, Edge *e)
 
static void ReplaceByConstraining (MultiGrid &mg, Face *f)
 
static void ReplaceByNormal (MultiGrid &mg, Edge *e)
 
static void ReplaceByNormal (MultiGrid &mg, Face *f)
 
static void ReplaceByNormal (MultiGrid &mg, Vertex *v)
 
QuadrilateralReplaceByQuadrilateral (Grid &g, Face *tri1, Face *tri2)
 Replaces the specified triangles by one quadrilateral. More...
 
template<class edge_iter_t , class TAAPos >
void ReplaceByQuadrilaterals_EdgeBased (Grid &g, edge_iter_t edgesBegin, edge_iter_t edgesEnd, TAAPos aaPos)
 Attempts to replace triangles associated with the given set of edges by a set of quadrilaterals. More...
 
template<class edge_iter_t >
void ReplaceByQuadrilaterals_EdgeBasedNoSort (Grid &g, edge_iter_t edgesBegin, edge_iter_t edgesEnd)
 Attempts to replace triangles associated with the given set of edges by a set of quadrilaterals. More...
 
template<class face_iter_t , class TAAPos >
void ReplaceByQuadrilaterals_FaceBased (Grid &g, face_iter_t facesBegin, face_iter_t facesEnd, TAAPos aaPos)
 Attempts to replace the given set of triangles by a set of quadrilaterals. More...
 
template<class face_iter_t >
void ReplaceByQuadrilaterals_FaceBasedNoSort (Grid &g, face_iter_t facesBegin, face_iter_t facesEnd)
 Attempts to replace the given set of faces by a set of quadrilaterals. More...
 
void ReplaceIndicesInLayout (IndexLayout &layout, const std::vector< int > &vMap)
 replaces the indices in the layout based on a passed mapping More...
 
template<class TVrtIter , class TAAPos >
void ReplaceLowValenceVertices (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number maxSquaredHeightToBaseAreaRatio, TAAPos aaPos)
 
template<class TVrtIter , class TAAPos >
void ReplaceValence3Vertices (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number maxSquaredHeightToBaseAreaRatio, TAAPos aaPos)
 
static std::ios_base & reset_floats (std::ios_base &o)
 used to unset flags set by std::scientific or std::fixed. More...
 
template<class TElem , class TAAInd >
static void ResetSubsetIndices (Grid *pGrid, TAAInd &aaInd)
 
template<class TAAPosVRT >
VertexResolveEdgeEdgeIntersection (Grid &grid, Edge *e1, Edge *e2, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAAPosVRT >
bool ResolveEdgeFaceIntersection (Grid &grid, Edge *e, Face *f, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAPos >
bool ResolveTriangleIntersections (Grid &grid, TriangleIterator trisBegin, TriangleIterator trisEnd, number snapThreshold, TAPos &aPos)
 
template<class TAAPosVRT >
VertexResolveVertexEdgeIntersection (Grid &grid, Vertex *v, Edge *e, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAAPosVRT >
bool ResolveVertexFaceIntersection (Grid &grid, Vertex *v, Face *f, TAAPosVRT &aaPos, number snapThreshold, std::vector< Face * > *pNewFacesOut)
 
template<typename TDomain , typename TAlgebra >
void Restrict (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
template<typename TDomain , typename TAlgebra >
void RestrictElemwise (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
template<typename TDomain , typename TAlgebra >
void RestrictP1 (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
bool Retetrahedralize (Grid &grid, SubsetHandler &sh, ANumber &aVolumeConstraint, number quality=5, bool preserveBnds=false, bool preserveAll=false, APosition &aPos=aPosition, bool applyVolumeConstraint=true, int verbosity=0)
 If tetrahedrons are already present, this method refines them based on the given volume constraints. More...
 
number ReturnValueToBool (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
int ReturnValueToInteger (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
number ReturnValueToNumber (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
static void rot (number A[3][3], const number s, const number tau, const int i, const int j, const int k, const int l)
 
bool SameDimensionsInAllSubsets (const SubsetGroup &subsetGroup)
 
static void SaveCoarsenMarksToFile (ISelector &sel, const char *filename)
 
template<typename TDomain >
void SaveDomain (TDomain &domain, const char *filename)
 Saves the domain to a grid-file. More...
 
template void SaveDomain< Domain1d > (Domain1d &domain, const char *filename)
 
template void SaveDomain< Domain2d > (Domain2d &domain, const char *filename)
 
template void SaveDomain< Domain3d > (Domain3d &domain, const char *filename)
 
template<class TAPos >
static bool SaveGrid (Grid &grid, ISubsetHandler *psh, const char *filename, TAPos &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition1 &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition2 &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition3 &aPos)
 
static bool SaveGrid3d_IMPL (Grid &grid, ISubsetHandler *pSH, const char *filename, AVector3 &aPos)
 
bool SaveGridHierarchyTransformed (MultiGrid &mg, const char *filename, number offset)
 Saves a grid hierarchy by offsetting levels along the z-axis. More...
 
bool SaveGridHierarchyTransformed (MultiGrid &mg, ISubsetHandler &sh, const char *filename, number offset)
 Saves a grid hierarchy by offsetting levels along the z-axis. More...
 
template<class TAPos >
bool SaveGridLevel (MultiGrid &srcMG, ISubsetHandler &srcSH, int lvl, const char *filename, TAPos aPos)
 Saves a grid level to a file. More...
 
bool SaveGridLevelToFile (MultiGrid &srcMG, ISubsetHandler &srcSH, int lvl, const char *filename)
 Saves a grid level to a file. More...
 
bool SaveGridTo2DF (Grid &grid, const char *filename, ISubsetHandler *psh, AVector3 &aPos)
 Writes .2df files. 'psh' is optional and may be NULL. More...
 
bool SaveGridToART (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 saves a grid to art More...
 
bool SaveGridToELE (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos, ANumber *paVolumeConstraint)
 
template bool SaveGridToFile (Grid &, const char *, AVector1 &)
 
template bool SaveGridToFile (Grid &, const char *, AVector2 &)
 
template bool SaveGridToFile (Grid &, const char *, AVector3 &)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector1 &)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector2 &)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector3 &)
 
template<class TAPos >
bool SaveGridToFile (Grid &grid, const char *filename, TAPos &aPos)
 
template<class TAPos >
bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
bool SaveGridToLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, ISelector **ppSel, int numSels, ProjectionHandler *pPH, APosition aPos)
 
bool SaveGridToLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, ProjectionHandler *pPH, APosition aPos)
 
bool SaveGridToNCDF (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition aPos)
 
bool SaveGridToOBJ (Grid &grid, const char *filename, AVector3 &aPos=aPosition, AVector2 *paTexCoord=NULL, ISubsetHandler *pSubsetHandler=NULL, std::vector< OBJMaterial > *pvMaterials=NULL)
 Saves a file from a wavefront '.obj' file. Writes optional subset-infos. More...
 
bool SaveGridToSTL (Grid &grid, const char *filename, ISubsetHandler *pSH, AVector3 &aPos)
 
bool SaveGridToTXT (Grid &grid, const char *filename, AVector3 &aPos=aPosition)
 saves a grid to txt More...
 
bool SaveGridToUGX (Grid &grid, ISubsetHandler &sh, const char *filename)
 Writes a grid to a ugx file. More...
 
template<class TAPosition >
bool SaveGridToUGX (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 Writes a grid to an ugx file. internally uses GridWriterUGX. More...
 
template<class TAPosition >
bool SaveGridToVTU (Grid &grid, ISubsetHandler *psh, const char *filename, TAPosition &aPos)
 Writes a grid to a vtu (vtk unstructured mesh) file. More...
 
template<typename TGridFunction >
void SaveMatrixForConnectionViewer (TGridFunction &u, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
void SaveMatrixToMTX (const char *filename, MatrixOperator< CPUAlgebra::matrix_type, CPUAlgebra::vector_type > &A, std::string comment="%Generated with ug4.")
 Save the assembled matrix of a matrix operator to MatrixMarket format. More...
 
bool SaveParallelGridLayout (MultiGrid &mg, const char *filename, number offset=0.1)
 Saves the grid-layout of parallel multi-grids. More...
 
template<typename TDomain >
static bool SavePartitionMap (PartitionMap &pmap, TDomain &domain, const char *filename)
 
bool SaveSurfaceViewTransformed (MultiGrid &mg, const SurfaceView &sv, const char *filename, number offset=0.1)
 Saves a grid and assigns elements to subsets based on their surface-view-state. More...
 
template<typename T >
void SaveToFile (const T &v, std::string filename)
 
template<typename TGridFunction >
void SaveVectorCSV (TGridFunction &b, const char *filename)
 
template<typename TGridFunction >
void SaveVectorDiffForConnectionViewer (TGridFunction &b, TGridFunction &bCompare, const char *filename)
 
template<typename TGridFunction >
void SaveVectorDiffForConnectionViewer (TGridFunction &u, TGridFunction &compareVec, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
template<typename TGridFunction >
void SaveVectorForConnectionViewer (TGridFunction &b, const char *filename)
 
template<typename TGridFunction >
void SaveVectorForConnectionViewer (TGridFunction &u, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
template<class TDomain >
void ScaleDomain (TDomain &dom, const vector3 &center, const vector3 &scale)
 Scales selected elements around the given center. More...
 
template<class TDomain >
void ScaleDomain (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 Scales selected elements around the given center. More...
 
template<typename TDomain >
static void ScaleDomain (TDomain &dom, number sx, number sy, number sz)
 
template<class TDomain >
void ScaleDomainSqrtWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<class TDomain >
void ScaleDomainSquaredWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<class TDomain >
void ScaleDomainWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<typename TGridFunction >
void ScaleGF (SmartPtr< TGridFunction > scaledVecOut, ConstSmartPtr< TGridFunction > vecIn, const std::vector< number > &scalingFactors)
 Scales all functions contained in a grid function. More...
 
template<typename TBaseElem , typename TGridFunction >
static void ScaleGFOnElems (ConstSmartPtr< DoFDistribution > dd, SmartPtr< TGridFunction > vecOut, ConstSmartPtr< TGridFunction > vecIn, const std::vector< number > &vScale)
 
template<typename TSparseMatrix >
void ScaleRow (TSparseMatrix &A, size_t i, number fac)
 
template<typename TSparseMatrix >
void ScaleSparseMatrixCommon (TSparseMatrix &A, double d)
 
DebugID SchurDebug ("SchurComplementDebug")
 
std::string scientificStr (double d, size_t width)
 
template<int TDim, int TWorldDim>
bool SCVFofSCVRayIntersection (size_t &sideOut, number &bc, MathVector< TWorldDim > &GlobalIntersectionPointOut, MathVector< TDim > &LocalIntersectionPoint, const MathVector< TWorldDim > &Root, const MathVector< TWorldDim > &Direction, bool bPositiv, const MathVector< TWorldDim > *vCornerCoords)
 
template<class TIter >
void SelectAreaBoundary (ISelector &sel, const TIter begin, const TIter end)
 selects sides that are only adjacent to one of the given inner elements More...
 
template<class TElem , class TIterator >
void SelectAssociated (ISelector &sel, TIterator begin, TIterator end, ISelector::status_t status=ISelector::SELECTED)
 Selects all elements of type TElem, which touch an element between begin and end. More...
 
static void SelectAssociatedConstrainedElements (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
template<class TSelector , class TElemIterator >
void SelectAssociatedEdges (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated edges of the elements between elemsBegin and elemsEnd More...
 
void SelectAssociatedElements (ISelector &sel, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces)
 Selects / Deselects associated (low dimensional) elements. More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedFaces (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated faces of the elements between elemsBegin and elemsEnd More...
 
void SelectAssociatedGenealogy (MGSelector &msel, bool selectAssociatedElements)
 Selects the complete genealogy of all selected elements. More...
 
template<class TSelector >
void SelectAssociatedGridObjects (TSelector &sel, ISelector::status_t status)
 selects associated geometric objects of selected ones on each level. More...
 
template<class TSelector >
UG_API void SelectAssociatedGridObjects (TSelector &sel, ISelector::status_t status=ISelector::SELECTED)
 selects associated geometric objects of selected ones on each level. More...
 
template void SelectAssociatedGridObjects< MGSelector > (MGSelector &sel, ISelector::status_t status)
 
template void SelectAssociatedGridObjects< Selector > (Selector &sel, ISelector::status_t status)
 
template<class TElem >
static void SelectAssociatedSides (MGSelector &msel, TElem *e, ISelector::status_t status=ISelector::SELECTED)
 Recursively selects unselected sides. More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedVertices (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated vertices of the elements between elemsBegin and elemsEnd More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedVolumes (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated faces of the elements between elemsBegin and elemsEnd More...
 
template<class TElemIterator >
void SelectBoundaryElements (ISelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd)
 selects elements that lie on the associated grid's boundary More...
 
static void SelectChildrenOfSelectedShadowRimEdges (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
static void SelectChildrenOfSelectedShadowRimFaces (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
static void SelectChildrenOfSelectedShadowVertices (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 Recursively selects all children of selected vertices. More...
 
template<class TEdgeIterator >
void SelectCreaseEdges (ISelector &sel, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, number minAngle, APosition aVrtPos, bool ignoreBoundaryEdges=true, ISelector::status_t state=ISelector::SELECTED)
 Selects edges which at which triangles meet in a large angle. More...
 
void SelectDomainElements (ISelector &sel, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces, bool selectVolumes)
 Selects / Deselects all elements. More...
 
template<class TDomain >
void SelectDomainSubset (ISelector &sel, TDomain &dom, int subsetIndex, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces, bool selectVolumes)
 Selects / Deselects elements in the given subset of the given domain. More...
 
template<class TAAPos >
void SelectEdgesByDirection (Selector &sel, TAAPos &aaPos, const vector3 &dir, number minDeviationAngle, number maxDeviationAngle, bool selectFlipped)
 Selects all edges that face a given direction. More...
 
template void SelectElementsByIndex< Edge > (ISelector &sel, const std::vector< size_t > &inds)
 
template void SelectElementsByIndex< Face > (ISelector &sel, const std::vector< size_t > &inds)
 
template void SelectElementsByIndex< Vertex > (ISelector &sel, const std::vector< size_t > &inds)
 
template void SelectElementsByIndex< Volume > (ISelector &sel, const std::vector< size_t > &inds)
 
static void SelectElementsForTargetPartition (MGSelector &msel, SubsetHandler &shPartition, int partitionIndex, bool partitionForLocalProc, bool createVerticalInterfaces)
 
template<class TElemIterator >
void SelectInnerElements (ISelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd)
 selects elements that do not lie on the associated grid's boundary More...
 
template<class TSelector >
void SelectInnerSelectionEdges (TSelector &sel)
 selects all edges that are only connected to selected elements. More...
 
template void SelectInnerSelectionEdges< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionEdges< Selector > (Selector &)
 
template<class TSelector >
void SelectInnerSelectionFaces (TSelector &sel)
 selects all faces that are only connected to selected elements. More...
 
template void SelectInnerSelectionFaces< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionFaces< Selector > (Selector &)
 
template<class TSelector >
void SelectInnerSelectionVertices (TSelector &sel)
 selects all vertices that are only connected to selected elements. More...
 
template void SelectInnerSelectionVertices< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionVertices< Selector > (Selector &)
 
template<class TIter >
void SelectInterfaceElements (ISelector &sel, ISubsetHandler &sh, const TIter begin, const TIter end, bool regardSelectedNbrsOnly=false)
 Selects elements which are adjacent to higher dimensional elements of different subsets. More...
 
template<class TGeomObj >
void SelectionFill (Selector &sel, typename Grid::traits< typename TGeomObj::side >::callback cbRegionBoundary)
 Extends the selection around selected objects until selected sides are reached. More...
 
template void SelectionFill< Edge > (Selector &, Grid::vertex_traits::callback)
 
template void SelectionFill< Face > (Selector &, Grid::edge_traits::callback)
 
template void SelectionFill< Volume > (Selector &, Grid::face_traits::callback)
 
template<class TVrtIter , class TAAPos >
void SelectKinkVertices (Grid &grid, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number thresholdAngle, bool selectDarts, TAAPos aaPos, Grid::edge_traits::callback cbConsiderEdge=ConsiderAll())
 
template<class TVrtIter , class TAAPos >
void SelectKinkVertices (Selector &sel, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number thresholdAngle, bool selectDarts, TAAPos aaPos, Grid::edge_traits::callback cbConsiderEdge)
 
template<class TElem >
void SelectLinkedElements (ISelector &sel, typename Grid::traits< TElem >::callback cbIsSelectable=ConsiderAll(), typename Grid::traits< typename TElem::side >::callback cbIsTraversable=ConsiderAll())
 Repeatedly traverses sides of selected elements and selects associated elements. More...
 
void SelectLinkedFlatAndDegeneratedFaces (Selector &sel, number maxDeviationAngle, bool ignoreOrientation=false, bool stopAtSelectedEdges=false, number degThreshold=SMALL, APosition &aPos=aPosition)
 Extends the selection of faces to all neighbouring faces that have a similar normal. More...
 
void SelectLinkedFlatFaces (Selector &sel, number maxDeviationAngle, bool ignoreOrientation=false, bool stopAtSelectedEdges=false, APosition &aPos=aPosition)
 Extends the selection of faces to all neighbouring faces that have a similar normal. More...
 
void SelectNonShadowsAdjacentToShadowsOnLevel (BoolMarker &sel, const SurfaceView &surfView, int level)
 selects all non-shadows, that are adjacent to a shadow on a grid levels More...
 
template<class TIterator >
static void SelectParents (MultiGrid &mg, MGSelector &msel, TIterator iterBegin, TIterator iterEnd)
 helper for SelectAssociatedGenealogy. More...
 
template<class TGeomObj , class TAAPos >
bool SelectRegion (Selector &sel, const typename TAAPos::ValueType &p, TAAPos &aaPos, typename Grid::traits< typename TGeomObj::side >::callback cbRegionBoundary)
 Selects the region which contains the given point. More...
 
template<class TElem >
static void SelectSelectedRootElementsAsVSlaves (MGSelector &msel)
 
template<class TAAPos >
void SelectShortPolychains (ISelector &sel, number maxLength, bool closedChainsOnly, TAAPos aaPos)
 Selects regular polygonal chains which are shorter than a given threshold. More...
 
void SelectSmoothEdgePath (Selector &sel, number thresholdDegree, number normalWeight, bool stopAtSelVrts=true, APosition &aPos=aPosition)
 selects for each selected edge all edges that can be reached by a smooth path. More...
 
void SelectSubset (ISelector &sel, const ISubsetHandler &sh, int si, ISelector::status_t status)
 Select all elements specified by a subset index ans selection status. More...
 
template<class TAAPos >
void SelectSubsetEdgesByDirection (Selector &sel, SubsetHandler &sh, int subsetIndex, TAAPos &aaPos, const vector3 &dir, number minDeviationAngle, number maxDeviationAngle, bool selectFlipped)
 Selects all subset edges that face a given direction. More...
 
template<class TElem >
void SelectSubsetElements (ISelector &sel, ISubsetHandler &sh, int subsetIndex, ISelector::status_t status=ISelector::SELECTED)
 selects all elements of the given type in the given subset More...
 
template<class TElem >
static void SelectUnselectedRootElementsAsVMasters (MGSelector &msel)
 
void SendGlobalLayout (pcl::InterfaceCommunicator< IndexLayout > &comm, const GlobalLayout &globalMasterLayout, const GlobalLayout &globalSlaveLayout, int pid)
 
template<typename matrix_type >
void SendMatrix (const matrix_type &A, IndexLayout &verticalSlaveLayout, int destproc, ParallelNodes &PN)
 
template<typename TSendingScheme , typename TPIDs >
void SendOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TSendingScheme &sender)
 sends data over a interface based on a CommunicationScheme to a subgroup of processes More...
 
void SeparateFaceSubsetsByNormal (Grid &grid, SubsetHandler &sh, APosition aPos=aPosition, ANormal *paNorm=NULL, int applyToSubset=-2)
 separates faces by orthogonal axis-aligned normals. More...
 
void SeparateFaceSubsetsByNormal (Grid &grid, SubsetHandler &sh, std::vector< vector3 > vNormals, APosition aPos=aPosition, ANormal *paNorm=NULL, int applyToSubset=-2)
 separates subset by the given normals. More...
 
bool SeparateRegions (Grid &grid, ISubsetHandler &shVolsOut, const ISubsetHandler &shFaces, const MarkerPointManager &mpm, int firstSubsetIndex)
 finds regions by marker-points More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSelection (Grid &grid, SubsetHandler &sh, Selector &sel, bool appendAtEnd=false)
 Assigns all elements of the given type to subsets. More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSeparators (Grid &grid, SubsetHandler &sh, bool appendAtEnd, boost::function< bool(typename TElem::lower_dim_base_object *)> cbIsSeparator)
 Assigns all elements of the given type to subsets. More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSubsets (Grid &grid, SubsetHandler &sh, bool appendAtEnd=false)
 Assigns all elements of the given type to subsets. More...
 
template<typename TGroupObj , typename TGroupObjIter , typename TDomain , typename TAlgebra >
void SequentialSubspaceCorrectionLoop (const typename TAlgebra::matrix_type &A, GridFunction< TDomain, TAlgebra > &c, const typename TAlgebra::vector_type &d, number omega_relax, ILocalSubspace< TDomain, TAlgebra, TGroupObj > &subspace, TGroupObjIter objIterBegin, TGroupObjIter objIterEnd)
 Abstract loop over TGroupObj (forward) More...
 
template<typename TGroupObj , typename TDomain , typename TAlgebra >
void SequentialSubspaceCorrectionLoopBackward (const typename TAlgebra::matrix_type &A, GridFunction< TDomain, TAlgebra > &c, const typename TAlgebra::vector_type &d, number omega_relax, ILocalSubspace< TDomain, TAlgebra, TGroupObj > &subspace, typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator objIterBegin, typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator objIterEnd)
 Abstract loop (backward) More...
 
template<typename T >
void Serialize (std::ostream &buff, const DenseMatrix< VariableArray2< T > > &mat)
 
template<size_t n>
void Serialize (std::ostream &buff, const DenseVector< FixedArray1< number, n > > &vec)
 
template<typename T >
void Serialize (std::ostream &buff, const DenseVector< VariableArray1< T > > &vec)
 
template<class TIStream >
void Serialize (TIStream &buf, const std::vector< bool > &vec)
 
template<class TOStream >
void Serialize (TOStream &buf, const IndexLayout &layout)
 
template<class TOStream >
void Serialize (TOStream &buf, const IndexLayout::Interface &interface)
 
template<typename T , class TOStream >
void Serialize (TOStream &buf, const ParallelVector< T > &v)
 Serialize for ParallelVector<T> More...
 
template<class TOStream >
void Serialize (TOStream &buf, const pcl::InterfaceCommunicator< IndexLayout > &ic)
 
template<class TOStream >
void Serialize (TOStream &buf, const pcl::ProcessCommunicator &ic)
 
template<class Key , class T , class TOStream >
void Serialize (TOStream &buf, const std::map< Key, T > &m)
 writes data from a map to a binary stream More...
 
template<class T1 , class T2 , class TOStream >
void Serialize (TOStream &buf, const std::pair< T1, T2 > &v)
 
template<class T , class TOStream >
void Serialize (TOStream &buf, const std::set< T > &m)
 writes data from a set to a binary stream More...
 
template<class TOStream >
void Serialize (TOStream &buf, const std::string &str)
 Writes a string to a binary stream. More...
 
template<class TOStream >
void Serialize (TOStream &buf, const std::vector< bool >::reference &boolRef)
 
template<class T , class TOStream >
void Serialize (TOStream &buf, const std::vector< T > &vec)
 writes data in a vector to a binary stream More...
 
template<class TOStream >
void Serialize (TOStream &buf, const Variant &v)
 serializes a variant More...
 
template<typename TValueType , class TOStream >
void Serialize (TOStream &buf, const Vector< TValueType > &v)
 
template<class TStream , class T >
void Serialize (TStream &buf, const T &val)
 
template<class TStream , std::size_t N, class T >
void Serialize (TStream &out, const MathVector< N, T > &val)
 
template<class TElem , class TAttachment >
bool SerializeAttachment (Grid &grid, TAttachment &attachment, BinaryBuffer &out)
 
template<class TElem , class TAttachment >
bool SerializeAttachment (Grid &grid, TAttachment &attachment, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, BinaryBuffer &out)
 copies attached values to a binary stream. More...
 
void SerializeGlobalLayout (BinaryBuffer &stream, const GlobalLayout &globalLayout)
 
bool SerializeGridElements (Grid &grid, BinaryBuffer &out)
 Writes all grid elements into a binary-stream. More...
 
bool SerializeGridElements (Grid &grid, GridObjectCollection goc, AInt &aIntVRT, BinaryBuffer &out)
 Writes a part of the grids elements to a binary-stream. More...
 
bool SerializeGridElements (Grid &grid, GridObjectCollection goc, BinaryBuffer &out)
 Writes a part of the grids elements to a binary-stream. More...
 
template<typename TLocalToGlobal >
void SerializeInterface (BinaryBuffer &stream, const IndexLayout::Interface &interface, const TLocalToGlobal &localToGlobal)
 
template<typename TLocalToGlobal >
void SerializeLayout (BinaryBuffer &stream, const IndexLayout &layout, const TLocalToGlobal &localToGlobal)
 
template<typename TSparseMatrix , class TOStream >
void SerializeMatrix (TOStream &buf, const TSparseMatrix &A)
 
bool SerializeMultiGridElements (MultiGrid &mg, BinaryBuffer &out)
 writes the elements of a MultiGrid to a binary stream. More...
 
bool SerializeMultiGridElements (MultiGrid &mg, GridObjectCollection goc, BinaryBuffer &out)
 writes a part of the elements of a MultiGrid to a binary stream. More...
 
bool SerializeMultiGridElements (MultiGrid &mg, GridObjectCollection goc, MultiElementAttachmentAccessor< AInt > &aaInt, BinaryBuffer &out, MultiElementAttachmentAccessor< AGeomObjID > *paaID=NULL)
 writes a part of the elements of a MultiGrid to a binary stream. More...
 
template<typename T , class TOStream >
void SerializeParallelData (TOStream &buf, T &t)
 
void SerializeProjectionHandler (BinaryBuffer &out, ProjectionHandler &ph)
 
void SerializeProjector (BinaryBuffer &out, RefinementProjector &proj)
 
size_t SerializerGetLastID ()
 
template<typename matrix_type >
void SerializeRow (BinaryBuffer &stream, const matrix_type &mat, size_t localRowIndex, ParallelNodes &PN)
 
bool SerializeSelector (Grid &grid, ISelector &sel, BinaryBuffer &out)
 writes the subset-indices of all elements in the grid to a stream. More...
 
bool SerializeSelector (Grid &grid, ISelector &sel, GridObjectCollection goc, BinaryBuffer &out)
 writes the subset-indices of all elements in the goc to a stream. More...
 
bool SerializeSubsetHandler (Grid &grid, ISubsetHandler &sh, BinaryBuffer &out)
 writes the subset-indices of all elements in the grid to a stream. More...
 
bool SerializeSubsetHandler (Grid &grid, ISubsetHandler &sh, GridObjectCollection goc, BinaryBuffer &out)
 writes the subset-indices of all elements in the goc to a stream. More...
 
template<typename T , class TOStream >
void SerializeUniquePart (TOStream &buf, const ParallelMatrix< T > &A)
 
template<typename TValueType , class TOStream >
void SerializeUniquePart (TOStream &buf, const ParallelVector< TValueType > &v)
 
void SetAppsPath (const char *c_strApps)
 
void SetAppsPath (const std::string &strApps)
 Initializes the APPS_PATH of ug::PathProvider. More...
 
template<class TAttachmentAccessor , class TIter , class TVal >
void SetAttachmentValues (TAttachmentAccessor &aaVal, TIter elemsBegin, TIter elemsEnd, const TVal &val)
 sets attachment-values for elements between elemsBegin and elemsEnd. More...
 
void SetBoundaryRefinementRule (GlobalBoundaryRefinementRule refRule)
 setting procedure for global boundary refinement rule variable More...
 
template<typename TSparseMatrix >
void SetCol (TSparseMatrix &A, size_t i, size_t alpha, number val=0.0)
 
template<typename TMatrix >
void SetDirichletRow (TMatrix &mat, const DoFIndex &ind)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, const std::vector< size_t > vIndex)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, size_t i)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, size_t i, size_t alpha)
 
static void SetFrequency (const std::string &csvFile)
 
template<typename TMatrix >
void SetInterpolation (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex, bool assembleLinearProblem=true)
 sets a matrix row corresponding to averaging the constrained index More...
 
void SetLagrangeEdgeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeEdgeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeFaceLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeFaceMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p)
 
void SetLagrangeVertexLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeVertexMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeVolumeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeVolumeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool SetLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool SetLocalMatrix (TGlobalMatrix &mat, TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TMatrix >
static void SetMatrixAsPermutation (TMatrix &PA, const TMatrix &A, const std::vector< size_t > &perm)
 
template<typename T >
void SetParallelData (T &t, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > &ic, pcl::ProcessCommunicator &pc)
 
void SetPluginPath (const char *c_strPlugin)
 
void SetPluginPath (const std::string &strPlugin)
 Initializes the PLUGIN_PATH of ug::PathProvider. More...
 
void SetRootPath (const char *c_strRoot)
 
void SetRootPath (const std::string &strRoot)
 Initializes the paths of ug::PathProvider. More...
 
template<typename TMatrix >
void SetRow (TMatrix &mat, const DoFIndex &ind, number val=0.0)
 
template<typename TSparseMatrix >
void SetRow (TSparseMatrix &A, size_t i, number val=0.0)
 
template<typename TSparseMatrix >
void SetRow (TSparseMatrix &A, size_t i, size_t alpha, number val=0.0)
 
void SetScriptPath (const char *c_strScript)
 
void SetScriptPath (const std::string &strScript)
 Initializes the SCRIPT_PATH of ug::PathProvider. More...
 
static void SetShinyCallLoggingMaxFrequency (int maxFreq)
 
template<typename T >
void SetSize (DenseMatrix< T > &t, size_t a, size_t b)
 
template<typename T >
void SetSize (DenseVector< T > &t, size_t a)
 
template<>
void SetSize (number &d, size_t a)
 
template<>
void SetSize (number &d, size_t a, size_t b)
 
template<typename T >
void SetSize (T &t, size_t a)
 
template<typename T >
void SetSize (T &t, size_t a, size_t b)
 
void SetSmoothSubdivisionVolumesBoundaryRefinementRule (std::string bndRefRule)
 Setting procedure for global boundary refinement rule variable. More...
 
void SetTetRefinementRule (std::string ruleName)
 Setting procedure for global refinement rule variable. More...
 
template<typename TVector >
static void SetVectorAsPermutation (TVector &Pv, const TVector &v, const std::vector< size_t > &perm)
 
void sgetrf_ (lapack_int *m, lapack_int *n, lapack_float *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void sgetri_ (lapack_int *n, lapack_float *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_float *pWork, lapack_int *worksize, lapack_int *info)
 
void sgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const lapack_float *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_float *b, lapack_int *ldb, lapack_int *info)
 
template<typename Matrix_type , typename Vector_type >
void sgs_step (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Performs a symmetric gauss-seidel step. Using sgs_step within a preconditioner-scheme leads to the fact that we get the correction by successive inserting the already computed values of c in c = N * d, with c being the correction and d being the defect. N denotes the matrix of the second normal-form of a linear iteration scheme. More...
 
template<typename Matrix_type , typename Vector_type >
bool sgs_step (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a symmetric gauss-seidel step. More...
 
number ShapeQualityDegree (SimpleGrid &sg)
 returns the worst quality-degree of the triangles in sg. More...
 
number ShapeQualityDegree (SimpleGrid &sg, int triIndex)
 compares the area of the triangle to the length of its edges. More...
 
template<int refDim, int dim>
void ShapesAtGlobalPositionElem (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 
template<int dim>
void ShapesAtGlobalPositionVertex (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const LFEID &lfeID)
 
void ShinyCallLoggingEnd ()
 
void ShinyCallLoggingStart ()
 
template<typename TRefElem , int TWorldDim>
void SideNormal (MathVector< TWorldDim > &normalOut, int side, const MathVector< TWorldDim > *vCornerCoords)
 Normal to a side of an Element in a given Dimension. More...
 
template<int dim>
void SideNormal (ReferenceObjectID roid, MathVector< dim > &normalOut, int side, const MathVector< dim > *vCornerCoords)
 Computation of the side normal for a generic reference element: More...
 
template<>
void SideNormal< 1 > (ReferenceObjectID roid, MathVector< 1 > &normalOut, int side, const MathVector< 1 > *vCornerCoords)
 
template<>
void SideNormal< 2 > (ReferenceObjectID roid, MathVector< 2 > &normalOut, int side, const MathVector< 2 > *vCornerCoords)
 
template<>
void SideNormal< 3 > (ReferenceObjectID roid, MathVector< 3 > &normalOut, int side, const MathVector< 3 > *vCornerCoords)
 
template<class TEdgeIter , class TAAPos >
void SimplifyPolylines (Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd, number curvatureThreshold, TAAPos aaPos)
 
template<class TEdgeIter , class TAAPos >
void SimplifySmoothedPolylines (Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd, number curvatureThreshold, TAAPos aaPos, number smoothingAlpha, int smoothingIterations)
 
template<class TIterator , class AAPosVRT >
void SlopeSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, const vector3 &up, int numIterations)
 
void SnapMarkerPointToGridVertex (MarkerPoint &markerInOut, Grid &grid, number normalOffset, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid::VertexAttachmentAccessor< ANormal > *paaNorm=NULL)
 Snaps a marker point to a grid vertex. More...
 
void SnapToHorizontalRaster (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos)
 horizontally snaps vertices of the given (surface-) grid to the specified raster More...
 
UG_API std::string SnipString (const std::string &str, size_t totalSize, size_t replaceLast=0, const char replace='.')
 creates a truncated string and may add truncation symbol at end More...
 
string SnipString (const string &str, size_t totalSize, size_t replaceLast, const char replace)
 
UG_API std::string SnipStringFront (const std::string &str, size_t totalSize, size_t replaceFront=0, const char replace='.')
 creates a truncated string and may add truncation symbol at front More...
 
string SnipStringFront (const string &str, size_t totalSize, size_t replaceFirst, const char replace)
 
bool SolveDeficit (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &x, DenseVector< VariableArray1< double > > &rhs, double deficitTolerance)
 
template<typename matrix_t , typename vector_t >
bool SolveLU (const DenseMatrix< matrix_t > &A, DenseVector< vector_t > &x, const size_t *pInterchange)
 
template<std::size_t TDim>
void SolveTensorMatrixEquation (MathMatrix< TDim, TDim > &X, const MathTensor4< TDim, TDim, TDim, TDim > &A, const MathMatrix< TDim, TDim > &rhs)
 
bool SortDD (SmartPtr< DoFDistribution > spDD1, SmartPtr< DoFDistribution > spDD2)
 
template<class TVrtIter , class TAAPos >
void SpacialVertexSort (std::multimap< number, Vertex * > &vrtsOut, const TVrtIter vrtsBegin, const TVrtIter vrtsEnd, const typename TAAPos::ValueType &rayFrom, const typename TAAPos::ValueType &rayDir, TAAPos aaPos, bool clearContainer=true)
 sorts vertices along the specified ray More...
 
static void split_parameters (ParameterList *pParamList, const char *pParamString)
 
void split_parameters (std::vector< std::string > &paramsOut, char *strParams, const char *delims=" ")
 fills paramsOut with the parameters that are seperated by the characters given in delim. More...
 
template<typename TVector >
void SplitAddRhs_OneSide (TVector &rhs, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TVector >
void SplitAddRhs_Symmetric (TVector &rhs, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TMatrix >
void SplitAddRow_OneSide (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TMatrix >
void SplitAddRow_Symmetric (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<class TVertex >
TVertex * SplitEdge (Grid &destGrid, Grid &srcGrid, Edge *e, AVertex *paAssociatedVertices=NULL, bool bConservative=false)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
template<class TVertex >
TVertex * SplitEdge (Grid &grid, Edge *e, bool bConservative=false)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
bool SplitEdge (SimpleGrid &sg)
 
bool SplitIrregularManifoldSubset (SubsetHandler &sh, int srcIndex, int targetIndex, bool strictSplitting=false)
 Keeps a regular part in the subset and assigns all other faces to another one. More...
 
bool SplitIrregularPolyChain (SubsetHandler &sh, int srcIndex, int targetIndex)
 Makes sure that the polychain at srcIndex is regular and not separated. More...
 
void SplitOctahedronToTetrahedrons (Grid &grid, Octahedron *oct, Volume *parentVol, std::vector< Tetrahedron * > &vTetsOut, int bestDiag)
 Function for splitting an octahedron to 4 sub-tetrahedrons. More...
 
template<class TNumber >
TNumber sq (TNumber val)
 returns the square of a value (val*val) More...
 
number SqNormOfChebyshev1Poly (size_t k)
 
number SqNormOfChebyshev2Poly (size_t k)
 
number SqNormOfLegendrePoly (size_t k)
 
template<typename T >
MathMatrix< 0, 0, T >::value_type SqrtGramDeterminant (const MathMatrix< 0, 0, T > &m)
 
template<size_t M, typename T >
MathMatrix< 0, M, T >::value_type SqrtGramDeterminant (const MathMatrix< 0, M, T > &m)
 
template<size_t N, typename T >
MathMatrix< N, 0, T >::value_type SqrtGramDeterminant (const MathMatrix< N, 0, T > &m)
 
UG_API bool StartsWith (const std::string &str, const std::string &search)
 checks whether a given string starts with a specified substring More...
 
bool StartsWith (const string &str, const string &begin)
 
template<typename TGridFunction >
number StdFuncIntegralOnVertex (SmartPtr< TGridFunction > spGridFct, size_t fct, int si)
 
template<typename TGridFunction >
number StdFuncIntegralOnVertex (TGridFunction &gridFct, size_t fct, int si)
 
bool STLFileHasASCIIFormat (const char *filename)
 
static RefinementMark StringToRefinementMark (std::string markType)
 Returns a refinement mark, given a string describing it. More...
 
template<typename A >
void SubMult (A &dest, const A &vec, const double &b)
 
template<typename A , typename B , typename C >
void SubMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B >
void SubMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B , typename C >
void SubMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
template<typename A , typename B >
void SubMult (DenseVector< A > &dest, const double &b, const DenseVector< B > &vec)
 
void SubMult (number &dest, const number &b, const number &vec)
 
bool SubsetIsRegularGrid (const ISubsetHandler &ish, int si)
 returns if a subset is a regular grid More...
 
bool SubsetIsRegularGrid (const MGSubsetHandler &sh, int si)
 returns if a subset is a regular grid More...
 
bool SubsetIsRegularGrid (const SubsetHandler &sh, int si)
 returns if a subset is a regular grid More...
 
template<typename TGridFunction , typename TBaseElem >
void SubtractValueFromComponent (SmartPtr< TGridFunction > spGF, size_t fct, number sub)
 
template<typename T1 >
DenseMatrix< T1 >::value_type Sum1Mat1 (const DenseMatrix< T1 > &mat)
 
double Sum1Mat1 (double d)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, const char *fct_names)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, const char *fct_names, const char *subset_names)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, size_t fct)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, size_t fct, SubsetGroup &ssGroup)
 
EdgeSwapEdge (Grid &grid, Edge *e)
 swaps e and thus reconnects its two adjacent triangles. More...
 
bool SwapEdge (SimpleGrid &sg)
 
bool SweepLine_CreateMonotones (vector< SweepLineVertex > &vrts, list< SweepLineEdge > &edges)
 inserts new edges so that edges contains a set of monotone polynomes More...
 
bool SweepLineEdgeIntersectsSweepLine (number &xOut, const SweepLineEdge &edge, number sweepLineY)
 
static void SynchronizeAttachedGlobalAttachments (Grid &g, const pcl::ProcessCommunicator &procComm)
 
template<class TElem >
static void SynchronizeDistInfos (MultiGrid &mg, DistInfoSupplier &distInfos)
 
template<class TVrtIter , class TAAPos3 >
void TangentialSmooth (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos3 aaPos, number alpha, size_t numIterations)
 
template<class TVrtIter , class TAAPos3 >
void TangentialSmoothSimple (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos3 aaPos, number alpha, size_t numIterations)
 
const double & te_transpose (const double &t)
 
template<typename T >
TE_TRANSPOSED< T > te_transpose (const T &t)
 
double & te_transpose (double &t)
 
template<std::size_t TDim, std::size_t TDimSQ>
void Tens2ToVec (DenseVector< FixedArray1< number, TDimSQ > > &vec, const MathMatrix< TDim, TDim > &tens2)
 transformation of a tensor of rank 2 (R^dim x R^dim) into a vector (R^(dim^2)) More...
 
template<std::size_t TDim>
void Tens4Add (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim>
void Tens4Contract (MathMatrix< TDim, TDim > &tens2_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4, const MathMatrix< TDim, TDim > &tens2)
 
template<std::size_t TDim>
void Tens4Contract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim>
void Tens4Contract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b, const MathTensor4< TDim, TDim, TDim, TDim > &tens4c)
 
template<std::size_t TDim>
void Tens4Identity (MathTensor4< TDim, TDim, TDim, TDim > &Ident)
 this function computes the 4th order identity tensor More...
 
template<std::size_t TDim>
void Tens4IdentitySym (MathTensor4< TDim, TDim, TDim, TDim > &Ident)
 this function computes the symmetric 4th order identity tensor More...
 
template<std::size_t TDim>
void Tens4Subtract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim, std::size_t TDimSQ>
void Tens4ToMat (DenseMatrix< FixedArray2< number, TDimSQ, TDimSQ > > &mat, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<std::size_t TDim>
void Tens4Zero (MathTensor4< TDim, TDim, TDim, TDim > &tensOut)
 
void TerminateAbortedRun ()
 Terminates the current run if AbortRun() was called and the abort-run-flag is thus set to true. More...
 
template<typename TDomain >
static bool TestDomainInterfaces (TDomain *dom)
 
template<typename TDomain >
static bool TestDomainInterfaces (TDomain *dom, bool verbose)
 
bool TestGridLayoutMap (MultiGrid &mg, GridLayoutMap &glm, bool verbose=true)
 Checks whether the grid-layout-map on this proc is consistent with connected ones. More...
 
template<class TAPos >
bool TestGridLayoutMap (MultiGrid &mg, GridLayoutMap &glm, TAPos &aPos, bool verbose=true)
 
template<class TMatrix >
void TestHorizontalAlgebraLayouts (const TMatrix &mat, std::vector< AlgebraID > *algebraIDs=NULL, bool verbose=false)
 Tests layouts by matching master and slave interfaces and by comparing global id's. More...
 
void TestQuadRule ()
 
void TetrahedralizeHybridTetOctGrid (MultiGrid &mg, int bestDiag)
 Conversion function for hybrid tetra-/octahedral multigrids. More...
 
template<class TAAPos >
number TetrahedronAspectRatio (Volume *vol, TAAPos &aaPos)
 
void TetReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vCornerCoord2, std::vector< number > vCornerCoord3, std::vector< number > vGlobPos)
 
template<typename T >
bool ThrowIfIsVectorNanOrTooBig (const T &t, const char *callerName)
 
void ThrowMissingVirtualMethod (const char *method)
 
void ThrowMissingVirtualMethod (const char *method, const ReferenceObjectID roid)
 
vector< string > TokenizeString (const char *str, const char delimiter=',')
 splits the string into parts based on a separating character More...
 
UG_API std::vector< std::string > TokenizeString (const std::string &str, const char delimiter=',')
 splits the string into parts based on a separating character More...
 
UG_API void TokenizeString (const std::string &str, std::vector< std::string > &vToken, const char delimiter=',')
 splits the string into parts based on a separating char More...
 
vector< string > TokenizeString (const string &str, const char delimiter)
 
void TokenizeString (const string &str, vector< string > &vToken, const char delimiter)
 
UG_API std::vector< std::string > TokenizeTrimString (const std::string &str, const char delimiter=',')
 splits the string into trimmed parts based on a separating char More...
 
UG_API void TokenizeTrimString (const std::string &str, std::vector< std::string > &vToken, const char delimiter=',')
 splits the string into trimmed parts based on a separating char More...
 
vector< string > TokenizeTrimString (const string &str, const char delimiter)
 
void TokenizeTrimString (const string &str, vector< string > &vToken, const char delimiter)
 
UG_API std::string ToLower (std::string str)
 Returns a lower case version of the specified string. More...
 
string ToLower (string str)
 
template<typename O_t , typename G_t >
void topological_ordering_core_bidirectional (O_t &o, G_t &g, bool inverse)
 
template<typename O_t , typename G_t >
void topological_ordering_core_directed (O_t &o, G_t &g, bool inverse)
 
template<typename T >
std::string ToString (const T &t)
 Convert a object supporting 'std::cout << obj' to a string. More...
 
UG_API std::string ToUpper (std::string str)
 Returns an upper case version of the specified string. More...
 
string ToUpper (string str)
 
bool TransformPointSetTo2D (vector2 *pointSetOut, const vector3 *pointSet, size_t numPoints)
 transforms points from 3d space to 2d space. More...
 
template<class TAAPos >
UG_API void TransformVertex (Vertex *vrt, matrix33 &m, TAAPos &aaPos)
 transforms a vertex by a given matrix More...
 
template<class TAAPos >
void TransformVertex (Vertex *vrt, matrix33 &m, TAAPos &aaPos)
 transforms a vertex by a given matrix More...
 
template<class TIterator , class TAAPos >
UG_API void TransformVertices (TIterator vrtsBegin, TIterator vrtsEnd, matrix33 &m, TAAPos &aaPos)
 transforms all given vertices by a given matrix More...
 
template<class TIterator , class TAAPos >
void TransformVertices (TIterator vrtsBegin, TIterator vrtsEnd, matrix33 &m, TAAPos &aaPos)
 transforms all given vertices by a given matrix More...
 
template<class TDomain >
void TranslateDomain (TDomain &dom, ISelector &sel, const vector3 &offset)
 Translates (moves) selected elements by the given offset. More...
 
template<typename TDomain >
static void TranslateDomain (TDomain &dom, number tx, number ty, number tz)
 
template<class TAAPosVRT >
void TranslateSelection (Selector &sel, const typename TAAPosVRT::ValueType &offset, TAAPosVRT &aaPos)
 moves all vertices touching the selection by the specified offset. More...
 
template<size_t N, size_t M, typename T >
void Transpose (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 transpose a matrix More...
 
template<typename matrix_t >
void Transpose (matrix_t &m)
 transpose a matrix_t, override original matrix_t More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void TransposedMatVecMult (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Transposed Matrix - Vector Muliplication. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void TransposedMatVecMultAdd (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Transposed Matrix - Vector Muliplication. More...
 
char TransposeModeToChar (eTransposeMode t, bool isComplex)
 
template<std::size_t TDim>
void TransTens4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<class tree_t , class traverser_t >
void TraverseBreadthFirst (const tree_t &tree, traverser_t &traverser)
 
template<class tree_t , class traverser_t >
void TraverseDepthFirst (const tree_t &tree, traverser_t &traverser)
 
template<class tree_t , class traverser_t >
int TraverseDepthFirstRecursion (const tree_t &tree, traverser_t &traverser, int curNode)
 
template<class vector_t >
number TriangleArea (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 calculates the are of the triangle defined by p1, p2 and p3 More...
 
template<class TAAPos >
number TriangleAspectRatio (FaceVertices *f, TAAPos &aaPos)
 Returns the aspect ratio of a triangle. More...
 
template<class vector_t >
vector_t TriangleBarycenter (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 Calculates the barycenter of a triangle (1/3) * (p1+p2+p3) More...
 
UG_API bool TriangleBoxIntersection (const MathVector< 3 > &p0, const MathVector< 3 > &p1, const MathVector< 3 > &p2, const MathVector< 3 > &boxMin, const MathVector< 3 > &boxMax)
 checks whether a triangle and an axis-aligned box intersect. More...
 
bool TriangleFill (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, bool bTriangulateInside=true)
 Fills a region bounded by the given poly-chain with triangles. More...
 
bool TriangleFill (std::vector< int > &vTriIndsOut, vector2 *polyChain, size_t polyChainSize, bool bTriangulateInside=true)
 Fills a 2d-region, bounded by the given poly-chain, with triangles. More...
 
template<class TIterator >
bool TriangleFill_SweepLine (Grid &grid, TIterator edgesBegin, TIterator edgesEnd, APosition &aPosVRT, AInt &aIntVRT, SubsetHandler *pSH=NULL, int newSubsetIndex=-1)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
UG_API bool TriangleFill_SweepLine (std::vector< int > &facesOut, const std::vector< vector2 > &srcVrts, std::vector< int > &srcEdges)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
bool TriangleFill_SweepLine (std::vector< int > &facesOut, const std::vector< vector3 > &srcVrts, std::vector< int > &srcEdges)
 Performs triangulation of a 3d polygon and resolves inner edges. More...
 
bool TriangleFill_SweepLine (vector< int > &facesOut, const vector< vector2 > &srcVrtsOrig, vector< int > &srcEdges)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
number TriangleQuality (vector3 &v1, vector3 &v2, vector3 &v3)
 a simple measure for the quality of a triangle More...
 
template<class vector_t >
number TriangleQuality_Area (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 returns a value between 0 and 1. The higher the better. More...
 
UG_API bool TriangleTriangleIntersection (const MathVector< 3 > &p0, const MathVector< 3 > &p1, const MathVector< 3 > &p2, const MathVector< 3 > &q0, const MathVector< 3 > &q1, const MathVector< 3 > &q2, MathVector< 3 > *ip1Out=NULL, MathVector< 3 > *ip2Out=NULL, number snapThreshold=SMALL)
 checks whether two triangles intersect and returns the intervals, if they do. More...
 
UG_API void Triangulate (Grid &grid, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 
void Triangulate (Grid &grid, Quadrilateral *q, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 removes the quadrilateral and replaces it by two triangles. More...
 
void Triangulate (Grid &grid, QuadrilateralIterator iterBegin, QuadrilateralIterator iterEnd, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 replaces all specified quadrilaterals by triangles. More...
 
static int TriCubeIntersection (const TRI &t)
 
UG_API std::string TrimString (const std::string &str)
 removes all white space from the front and end of a string More...
 
string TrimString (const string &str)
 
const char * TrueFalseString (bool b)
 
static vector2 trunk (const vector2 &v, number smallestVal)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static VertexTryCollapse (const AdjustEdgeLengthDesc &desc, Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
VertexTryCollapse (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<class TAAPosVRT , class TAANormVRT >
bool TrySplit (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, EdgeSelector *pCandidates=NULL, SubsetHandler *pshMarks=NULL)
 
template<class TAAPosVRT , class TAANormVRT >
static bool TrySplit (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, EdgeSelector *pCandidates=NULL, SubsetHandler *pshMarks=NULL)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool TrySwap (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<typename T >
std::string TypeName ()
 
template<typename T >
std::string TypeName (const T &t)
 
template<class MT >
void UG_LOG_Matrix (const MT &A)
 
template<class VT >
void UG_LOG_Vector (const VT &vec)
 
const char * UGBuildHost ()
 
const char * UGCompileDate ()
 
int UGFinalize ()
 finalizes ug More...
 
int UGFinalizeNoPCLFinalize ()
 
void UGForceExit ()
 Calls UGFinalize and terminates the application. More...
 
UG_API std::string UGGetVersionString ()
 Returns the version number of the current ug-version. More...
 
const char * UGGitRevision ()
 
int UGInit (int *argcp, char ***argvp, int parallelOutputProcRank)
 initializes ug More...
 
bool UGInitPlugins ()
 Init (if UG_PLUGINS is set) embedded or non-shared plugins. More...
 
void UGOutputProfileStatsOnExit (bool bEnable)
 Call with true, if profiling output is desired at the end of the show. More...
 
const char * UGSvnRevision ()
 
UG_API bool UnloadPlugins ()
 
void UpdateChainInfo (ChainInfo &ci, vector2 *polyChain, vector2 *edgeNormals)
 
static void UpdateProfiler_BridgeImpl (number damping)
 
void UpdateTotalMem ()
 
template<class TNumber >
TNumber urand (TNumber lowerBound, TNumber upperBound)
 uniform distributed random numbers in [lowerBound, upperBound[. Use srand to set a seed. More...
 
bool Valence3VertexIsObsolete (const vector3 &p, const vector3 &c0, const vector3 &c1, const vector3 &c2, number maxSquaredHeightToBaseAreaRatio)
 
bool Valence4VertexIsObsolete (const vector3 &p, const vector3 &c0, const vector3 &c1, const vector3 &c2, const vector3 &c3, number maxSquaredHeightToBaseAreaRatio)
 
template<typename Matrix_type , typename Vector_type >
bool Vanka_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number relax)
 
template<>
const std::string & Variant::to< const std::string & > () const
 
template<>
std::string Variant::to< std::string > () const
 
template<>
Variant::Type Variant::type< const std::string & > ()
 
template<>
Variant::Type Variant::type< std::string > ()
 
template<typename vector_t >
bool VecAbsIsLess (const vector_t &v1, const typename vector_t::value_type s)
 component-wise comparison of a vector (in the absolute values) with a given number More...
 
template<typename vector_t >
bool VecAbsIsLess (const vector_t &v1, const vector_t &v2)
 component-wise comparison of two vectors (in the absolute values) More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 Add a scalar to a vector (componentwise) More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 adds two MathVector<N>s and stores the result in a third one More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 adds three MathVector<N>s and stores the result in a fourth one More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &v4)
 adds four MathVector<N>s and stores the result in a firth one More...
 
template<typename vector_t >
vector_t::value_type VecAngle (const vector_t &v1, const vector_t &v2)
 returns the angle between two vectors in radiants More...
 
template<typename vector_t >
vector_t::value_type VecAngleNorm (const vector_t &v1, const vector_t &v2)
 returns the angle between two vectors of length 1 in radiants More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1)
 adds a MathVector<N> to a second one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 adds two MathVector<N>s and adds the result to a third one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 adds two MathVector<N>s and adds the result to a fourth one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &v4)
 adds two MathVector<N>s and adds the result to a fifth one More...
 
template<typename T >
void VecAssign (GPUVector< T > &dest, const GPUVector< T > &v1)
 sets dest = v1 entrywise More...
 
template<typename T >
void VecAssign (ParallelVector< T > &dest, const ParallelVector< T > &v1)
 
template<typename vector_t >
void VecAssign (vector_t &dest, const vector_t &v1)
 sets dest = v1 entrywise More...
 
template<typename TVector >
void VecBroadcast (TVector *pVecDest, const TVector *pVecSrc, const IndexLayout &slaveLayoutDest, const IndexLayout &masterLayoutSrc, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 broadcasts all values from master indices to slave values in a second vector More...
 
template<typename vector_target_t , typename vector_source_t >
void VecCopy (vector_target_t &target, const vector_source_t &source, typename vector_target_t::value_type fill)
 Copy contents between vectors of possibly different types. More...
 
template<typename vector_t >
void VecCross (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 calculates the cross product of two Vectors of dimension 3. It makes no sense to use VecCross for vector_ts that have not dimension 3. More...
 
template<typename vector_t >
vector_t::value_type VecDistance (const vector_t &v1, const vector_t &v2)
 returns the distance of two vector_ts. More...
 
template<typename TVector , typename TMatrix >
TVector::value_type VecDistanceSq (const TVector &v1, const TVector &v2, const TMatrix &M)
 returns the squared distance of two MathVector<N>s. More...
 
template<typename vector_t >
vector_t::value_type VecDistanceSq (const vector_t &v1, const vector_t &v2)
 returns the squared distance of two vector_ts. More...
 
template<typename vector_t >
vector_t::value_type VecDot (const vector_t &v1, const vector_t &v2)
 returns the dot-product of two vector_ts More...
 
template<typename vector_t >
void VecElemProd (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 component-wise product: vOut_i = v1_i*v2_i More...
 
template<typename vector_t >
void VecElemSqrt (vector_t &vOut, const vector_t &v1)
 component-wise square root: \(o_i=\sqrt {v_i}\) More...
 
void VecExp (double &dest, const double &v)
 calculates elementwise exp More...
 
template<typename T >
void VecExp (ParallelVector< T > &dest, const ParallelVector< T > &v)
 
template<typename vector_t >
void VecExp (vector_t &dest, const vector_t &v)
 
template<typename TVector >
void VecGather (TVector *pVecDest, const TVector *pVecSrc, const IndexLayout &masterLayoutDest, const IndexLayout &slaveLayoutSrc, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 gathers all values in master indices of a second vector More...
 
void VecHadamardProd (double &dest, const double &v1, const double &v2)
 calculates s = a * b (the Hadamard product) More...
 
template<typename T >
void VecHadamardProd (ParallelVector< T > &dest, const ParallelVector< T > &v1, const ParallelVector< T > &v2)
 
template<typename vector_t >
void VecHadamardProd (vector_t &dest, const vector_t &v1, const vector_t &v2)
 
template<typename vector_t >
vector_t::value_type VecInftyNorm (const vector_t &v)
 
template<typename vector_t >
void VecInterpolateLinear (vector_t &vOut, const vector_t &v1, const vector_t &v2, typename vector_t::value_type interpAmount)
 
template<typename vector_t >
vector_t::value_type VecLength (const vector_t &v)
 returns the length of v. Slower than VecLengthSq. More...
 
template<typename vector_t >
vector_t::value_type VecLengthSq (const vector_t &v)
 returns the squared length of v. Faster than VecLength. More...
 
void VecLog (double &dest, const double &v)
 calculates elementwise log (natural logarithm) More...
 
template<typename T >
void VecLog (ParallelVector< T > &dest, const ParallelVector< T > &v)
 
template<typename vector_t >
void VecLog (vector_t &dest, const vector_t &v)
 
template<typename vector_t >
vector_t::value_type VecMaxNorm (const vector_t &v)
 
static number VecNorm (const vector3 &a)
 
template<typename vector_t >
void VecNormalize (vector_t &vOut, const vector_t &v)
 scales a vector_t to unit length More...
 
double VecNormSquared (const double &a)
 returns norm_2^2(a) More...
 
template<typename T >
double VecNormSquared (const GPUVector< T > &a, const GPUVector< T > &b)
 returns norm_2^2(a) More...
 
static number VecNormSquared (const vector3 &a)
 
template<typename vector_t >
double VecNormSquared (const vector_t &a)
 returns norm_2^2(a) More...
 
template<typename vector_t >
number VecNormSquared (const vector_t &a, const vector_t &b, const std::vector< size_t > vIndex)
 returns norm_2^2(a) on a given index set More...
 
void VecNormSquaredAdd (const double &a, double &s)
 calculates s += norm_2^2(a) More...
 
template<typename T >
void VecNormSquaredAdd (const GPUVector< T > &a, const GPUVector< T > &b, double &sum)
 calculates s += norm_2^2(a) More...
 
template<typename vector_t >
void VecNormSquaredAdd (const vector_t &a, const vector_t &b, number &sum, const std::vector< size_t > vIndex)
 calculates s += norm_2^2(a) on a given index set More...
 
template<typename vector_t >
void VecNormSquaredAdd (const vector_t &a, double &sum)
 calculates s += norm_2^2(a) More...
 
template<typename vector_t >
vector_t::value_type VecOneNorm (const vector_t &v)
 
template<typename vector_t >
vector_t::value_type VecPNorm (const vector_t &v, unsigned int p)
 
template<typename vector_t >
void VecPow (vector_t &vOut, const vector_t &v1, typename vector_t::value_type s)
 component-wise exponentiation of a vector More...
 
double VecProd (const double &a, const double &b)
 returns scal<a, b> More...
 
void VecProd (const double &a, const double &b, double &s)
 computes scal<a, b> More...
 
template<typename T >
double VecProd (const GPUVector< T > &v1, const GPUVector< T > &v2)
 returns scal<a, b> More...
 
template<typename T >
void VecProd (const GPUVector< T > &v1, const GPUVector< T > &v2, double &res)
 calculates s += scal<a, b> More...
 
template<typename T >
double VecProd (const ParallelVector< T > &a, const ParallelVector< T > &b)
 
static number VecProd (const vector3 &a, const vector3 &b)
 
template<typename vector_t >
double VecProd (const vector_t &a, const vector_t &b)
 returns scal<a, b> More...
 
template<typename vector_t >
number VecProd (const vector_t &a, const vector_t &b, const std::vector< size_t > vIndex)
 returns scal<a, b> on a given index set More...
 
template<typename vector_t >
void VecProd (const vector_t &a, const vector_t &b, double &sum)
 calculates s += scal<a, b> More...
 
template<typename vector_t >
void VecProd (const vector_t &a, const vector_t &b, number &sum, const std::vector< size_t > vIndex)
 calculates s += scal<a, b> on a given index set More...
 
void VecProdAdd (const double &a, const double &b, double &s)
 calculates s += scal<a, b> More...
 
template<typename vector_t >
void VecProdAdd (const vector_t &a, const vector_t &b, double &s)
 
template<typename vector_t >
void VecScale (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 scales a MathVector<N> More...
 
void VecScaleAdd (double &dest, double alpha1, const double &v1, double alpha2, const double &v2)
 calculates dest = alpha1*v1 + alpha2*v2. for doubles More...
 
void VecScaleAdd (double &dest, double alpha1, const double &v1, double alpha2, const double &v2, double alpha3, const double &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3. for doubles More...
 
template<typename T >
void VecScaleAdd (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1, double alpha2, const GPUVector< T > &v2)
 calculates dest = alpha1*v1 + alpha2*v2 More...
 
template<typename T >
void VecScaleAdd (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1, double alpha2, const GPUVector< T > &v2, double alpha3, const GPUVector< T > &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 More...
 
template<typename T >
void VecScaleAdd (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1, double alpha2, const ParallelVector< T > &v2)
 
template<typename T >
void VecScaleAdd (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1, double alpha2, const ParallelVector< T > &v2, double alpha3, const ParallelVector< T > &v3)
 
template<typename vector_t , template< class T > class TE_VEC>
void VecScaleAdd (TE_VEC< vector_t > &dest, double alpha1, const TE_VEC< vector_t > &v1, double alpha2, const TE_VEC< vector_t > &v2)
 calculates dest = alpha1*v1 + alpha2*v2 More...
 
template<typename vector_t , template< class T > class TE_VEC>
void VecScaleAdd (TE_VEC< vector_t > &dest, double alpha1, const TE_VEC< vector_t > &v1, double alpha2, const TE_VEC< vector_t > &v2, double alpha3, const TE_VEC< vector_t > &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &dest, number alpha1, const vector_t &v1, number alpha2, const vector_t &v2, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 + alpha2*v2 on a given index set More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &dest, number alpha1, const vector_t &v1, number alpha2, const vector_t &v2, number alpha3, const vector_t &v3, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 on a given index set More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2)
 Scales two Vectors, adds them and returns the sum in a third vector. More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3)
 Scales three Vectors, adds them and returns the sum in a fourth vector. More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3, typename vector_t::value_type s4, const vector_t &v4)
 Scales four Vectors, adds them and returns the sum in a fifth vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1)
 Scales a Vector and adds it to a second vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2)
 Scales two Vectors, adds them and adds the sum to a third vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3)
 Scales three Vectors, adds them and adds the sum to a fourth vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3, typename vector_t::value_type s4, const vector_t &v4)
 Scales four Vectors, adds them and adds the sum to a fifth vector. More...
 
void VecScaleAssign (double &dest, double alpha1, const double &v1)
 calculates dest = alpha1*v1. for doubles More...
 
template<typename T >
void VecScaleAssign (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1)
 calculates dest = alpha1*v1 More...
 
template<typename T >
void VecScaleAssign (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1)
 
template<typename vector_t >
void VecScaleAssign (vector_t &dest, double alpha1, const vector_t &v1)
 calculates dest = alpha1*v1 More...
 
template<typename vector_t >
void VecScaleAssign (vector_t &dest, number alpha1, const vector_t &v1, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 on a given index set More...
 
template<typename vector_t >
void VecSet (vector_t &dest, number alpha, const std::vector< size_t > vIndex)
 sets dest = alpha on a given index set More...
 
template<typename vector_t >
void VecSet (vector_t &vInOut, typename vector_t::value_type s)
 Set each vector component to scalar (componentwise) More...
 
template<typename vector_t >
void VecSubtract (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 Subtract a scalar from a vector (componentwise) More...
 
template<typename vector_t >
void VecSubtract (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 subtracts v2 from v1 and stores the result in a vOut More...
 
void vecSum (double &erg, double alpha, double vec)
 
template<typename T >
T::value_type vecSum (double alpha, const T &vec)
 
double vecSum (double alpha, double vec)
 
template<typename T >
void vecSum (typename T::value_type &erg, double alpha, const T &vec)
 
template<typename vector_t , typename T1 >
void VectorAdd (vector_t &dest, const T1 &t1)
 transforms x += X1 into x = (1.0)*X1 + (1.0)*x More...
 
template<typename vector_t , typename T1 , typename operation , typename T2 >
void VectorAssign (vector_t &dest, const AlphaMatVec_X_Expression< T1, operation, T2 > &t)
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, const MatVec_Expression< matrix_t, vector_t > &m1)
 v = Mv More...
 
template<typename vector_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, const vector_t2 &v1)
 v = v More...
 
template<typename vector_t , typename T0 , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha0, const T0 &t0, double alpha1, const vector_t2 &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 
template<typename vector_t , typename T1 , typename operation , typename T2 , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const AlphaMatVec_X_Expression< T1, operation, T2 > &t1, double alpha2, const T3 &t2)
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 v = Mv + Mv More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2, double alpha3, const vector_t2 &v3)
 v = Mv + Mv + v More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const vector_t2 &v2)
 v = Mv + v More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const vector_t2 &v2, double alpha3, const vector_t3 &v3)
 v = Mv + v + v More...
 
template<typename vector_t , typename T1 , typename T2 , typename operation , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const T1 &t1, double alpha2, const AlphaMatVec_X_Expression< T2, operation, T3 > &t2)
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, double alpha1, const vector_t &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 v = v + Mv More...
 
template<typename vector_t , typename vector_t1 , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t1 &v1, double alpha2, const vector_t2 &v2, double alpha3, const vector_t3 &v3)
 v = v + v + v More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t2 &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2, double alpha3, const T3 &t3)
 
template<typename vector_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t2 &v1, double alpha2, const vector_t3 &v2)
 v = v + v More...
 
template<typename vector_t , typename T1 >
void VectorSub (vector_t &dest, const T1 &t1)
 transforms x -= X1 into x = (-1.0)*X1 + (1.0)*x More...
 
template<std::size_t TDim, std::size_t TDimSQ>
void VecToTens2 (MathMatrix< TDim, TDim > &tens2, const DenseVector< FixedArray1< number, TDimSQ > > &vec)
 transformation of a vector (R^(dim^2)) into a tensor of rank 2 (R^dim x R^dim) More...
 
template<typename vector_t >
vector_t::value_type VecTwoNorm (const vector_t &v)
 
template<typename vector_t >
vector_t::value_type VecTwoNormSq (const vector_t &v)
 
template<class TAAPos >
UG_API number VertexDistance (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the distance between two vertices. More...
 
template<class TAAPos >
number VertexDistance (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the distance between two vertices. More...
 
template<class TAAPos >
UG_API number VertexDistanceSq (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the squared distance between two vertices. More...
 
template<class TAAPos >
number VertexDistanceSq (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the squared distance between two vertices. More...
 
bool VertexGroupsMatch (const IVertexGroup *elem, const IVertexGroup &desc)
 Checks whether two vertex groups contain the same vertices. More...
 
bool VertexGroupsMatch (const Vertex *elem, const IVertexGroup &desc)
 specialization of VertexGroupsMatch for single Vertex More...
 
template<class TIter >
void VisitAll (const TIter begin, const TIter end, boost::function< void(typename TIter::value_type)> visitorCallback)
 Visits all elements between begin and end and executes the visitorCallback on them. More...
 
template<class TIter >
void VisitAreaBoundary (Grid &g, const TIter begin, const TIter end, boost::function< bool(typename TIter::value_type)> cbBelongsToArea, boost::function< void(typename Pointer2Value< typename TIter::value_type >::type::side)> cbVisitSide)
 Visits all boundary elements of the area specified through the iterators. More...
 
bool VolumeContains (Volume *v, EdgeVertices *ev)
 returns true if the given volume contains the given edge More...
 
bool VolumeContains (Volume *v, FaceVertices *fv)
 returns true if the given volume contains the given face More...
 
bool VolumeContains (VolumeVertices *v, Vertex *vrt)
 returns true if the given volume contains the given vertex More...
 
void vorticity (TGridFunction &vort, TGridFunction &u)
 
void vorticityFV1 (TGridFunction &vort, TGridFunction &u)
 
void vorticityFVCR (TGridFunction &vort, TGridFunction &u)
 
template<typename TGridFunction >
void vtk_export_ho (SmartPtr< TGridFunction > u, const std::vector< std::string > &vFct, size_t order, SmartPtr< VTKOutput< TGridFunction::domain_type::dim > > vtkOutput, const char *filename)
 
template<typename TGridFunction >
void vtk_export_ho (SmartPtr< TGridFunction > u, const std::vector< std::string > &vFct, size_t order, SmartPtr< VTKOutput< TGridFunction::domain_type::dim > > vtkOutput, const char *filename, const std::vector< std::string > &vSubset)
 
template<typename TGridFunction >
void vtk_export_ho (SmartPtr< TGridFunction > u, const std::vector< std::string > &vFct, size_t order, SmartPtr< VTKOutput< TGridFunction::domain_type::dim > > vtkOutput, const char *filename, size_t step, number time)
 
template<typename TGridFunction >
void vtk_export_ho (SmartPtr< TGridFunction > u, const std::vector< std::string > &vFct, size_t order, SmartPtr< VTKOutput< TGridFunction::domain_type::dim > > vtkOutput, const char *filename, size_t step, number time, const std::vector< std::string > &vSubset)
 export a solution from a high-order ansatz space to vtk file(s) More...
 
template<typename TGridFunction , int trueDim>
void vtk_export_ho (SmartPtr< TGridFunction > u, const std::vector< std::string > &vFct, size_t order, SmartPtr< VTKOutput< TGridFunction::domain_type::dim > > vtkOutput, const char *filename, size_t step, number time, const SubsetGroup &ssg)
 
template<typename T >
bool WarnIfIsVectorNanOrTooBig (const T &t, const char *callerName)
 
template<class TIterator , class AAPosVRT >
void WeightedEdgeSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations, Grid::vertex_traits::callback cbSmoothVertex)
 
template<class TIterator , class AAPosVRT >
void WeightedFaceSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations, Grid::vertex_traits::callback cbSmoothVertex)
 
template<class TIterator , class AAPosVRT >
void WeightedNormalSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, number dotThreshold, int numIterations)
 
bool WildcardMatch (const char *str, const char *pattern)
 wildcard matches like bla.* or *.bla or t?st More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 1 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 2 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 3 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 4 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
template<typename TDomain >
void WriteAlgebraIndices (std::string name, ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd)
 
void WriteCallLog (const char *filename)
 
void WriteCallLog (const char *filename, int procId)
 
template<class TElem , class TAValue >
void WriteDebugValuesToFile (const char *filename, Grid &grid, TAValue &aVal, bool levelWise)
 Writes level and center of each object together with a custom value to a file. More...
 
static void WriteEdges (ofstream &out, EdgeIterator edgesBegin, EdgeIterator edgesEnd, int indexDimension, Grid::VertexAttachmentAccessor< AInt > &aaInt)
 
static void WriteFaces (ofstream &out, FaceIterator facesBegin, FaceIterator facesEnd, int indexDimension, Grid::VertexAttachmentAccessor< AInt > &aaInt)
 
static void WriteGridHeader (const GridHeader &gridHeader, BinaryBuffer &out)
 
static bool WriteLGM (Grid &grid, const char *lgmFilename, const char *problemName, const char *lgmName, int convex, const SubsetHandler &shFaces, const SubsetHandler &shVolumes, EdgeSelector &LineSel, VertexSelector &SurfVrtSel, Grid::EdgeAttachmentAccessor< AInt > &aaLineIndex, Grid::VertexAttachmentAccessor< AInt > &aaSurfVrtIndex, Grid::VertexAttachmentAccessor< AVector3 > &aaPos)
 writes an *lgm file More...
 
template<class TFunction >
void WriteMatrixToConnectionViewer (const char *filename, const typename TFunction::algebra_type::matrix_type &A, const TFunction &u)
 
static bool WriteNG (Grid &grid, const SubsetHandler &shFaces, const SubsetHandler &shVolumes, const char *ngFilename, VertexSelector &SurfVrtSel, VertexSelector &InnVrtSel, VertexSelector &NgVrtSel, EdgeSelector &LineSel, Grid::EdgeAttachmentAccessor< AInt > &aaLineIndex, Grid::VertexAttachmentAccessor< AInt > &aaInnVrtIndex, Grid::VertexAttachmentAccessor< AInt > &aaNgVrtIndex, Grid::FaceAttachmentAccessor< AInt > &aaFaceIndex, Grid::VertexAttachmentAccessor< AVector3 > &aaPos)
 writes an *ng file More...
 
template<class TElem >
static void WriteParent (MultiGrid &mg, TElem *pElem, MultiElementAttachmentAccessor< AInt > &aaInt, BinaryBuffer &out)
 
void WriteProfileDataXML (const char *filename)
 Writes profile data of process 0 to the specified file. More...
 
void WriteProfileDataXML (const char *filename, int procId)
 Writes profile data to the specified file. More...
 
template<class TElemIter >
static void WriteSelectionStatesToStream (TElemIter iterBegin, TElemIter iterEnd, ISelector &sel, BinaryBuffer &out)
 
template<class TElemIter >
static void WriteSubsetIndicesToStream (TElemIter iterBegin, TElemIter iterEnd, ISubsetHandler &sh, BinaryBuffer &out)
 
template<class TFunction >
void WriteVectorCSV (const char *filename, const typename TFunction::algebra_type::vector_type &b, const TFunction &u)
 
template<typename Vector_type , typename postype >
void WriteVectorCSV (const char *filename, const Vector_type &b, postype *positions, int dimensions)
 writes to a file in somewhat SparseMatrix-market format (for connection viewer) More...
 
template<class TFunction >
void WriteVectorToConnectionViewer (const char *filename, const typename TFunction::algebra_type::matrix_type &A, const typename TFunction::algebra_type::vector_type &b, const TFunction &u, const typename TFunction::algebra_type::vector_type *pCompareVec=NULL)
 
template<class TFunction >
void WriteVectorToConnectionViewer (const char *filename, const typename TFunction::algebra_type::vector_type &b, const TFunction &u, const typename TFunction::algebra_type::vector_type *pCompareVec=NULL)
 
UG_API std::string XMLStringEscape (std::string s)
 returns a string suitable for XML files this functions escapes the characters <, >, ', " and & More...
 
string XMLStringEscape (string s)
 
void zgetrf_ (lapack_int *m, lapack_int *n, std::complex< lapack_double > *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void zgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const std::complex< lapack_double > *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, std::complex< lapack_double > *b, lapack_int *ldb, lapack_int *info)
 
template<size_t N, typename T >
MathMatrix< N, N, T >::value_type Determinant (const MathMatrix< N, N, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Determinant (const MathMatrix< 1, 1, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Determinant (const MathMatrix< 2, 2, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Determinant (const MathMatrix< 3, 3, T > &m)
 Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type GramDeterminant (const MathMatrix< N, M, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type GramDeterminant (const MathMatrix< 1, 1, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type GramDeterminant (const MathMatrix< 2, 2, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type GramDeterminant (const MathMatrix< 3, 3, T > &m)
 Gram Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type SqrtGramDeterminant (const MathMatrix< N, M, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type SqrtGramDeterminant (const MathMatrix< 1, 1, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type SqrtGramDeterminant (const MathMatrix< 2, 2, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type SqrtGramDeterminant (const MathMatrix< 3, 3, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type Inverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Inverse (MathMatrix< 1, 1, T > &mOut, const MathMatrix< 1, 1, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Inverse (MathMatrix< 2, 2, T > &mOut, const MathMatrix< 2, 2, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Inverse (MathMatrix< 3, 3, T > &mOut, const MathMatrix< 3, 3, T > &m)
 Inverse of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type InverseTransposed (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type InverseTransposed (MathMatrix< 1, 1, T > &mOut, const MathMatrix< 1, 1, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type InverseTransposed (MathMatrix< 2, 2, T > &mOut, const MathMatrix< 2, 2, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type InverseTransposed (MathMatrix< 3, 3, T > &mOut, const MathMatrix< 3, 3, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type RightInverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type RightInverse (MathMatrix< 1, 1 > &mOut, const MathMatrix< 1, 1 > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type RightInverse (MathMatrix< 2, 2 > &mOut, const MathMatrix< 2, 2 > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type RightInverse (MathMatrix< 3, 3 > &mOut, const MathMatrix< 3, 3 > &m)
 Right-Inverse of a Matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type LeftInverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type LeftInverse (MathMatrix< 1, 1 > &mOut, const MathMatrix< 1, 1 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type LeftInverse (MathMatrix< 2, 2 > &mOut, const MathMatrix< 2, 2 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type LeftInverse (MathMatrix< 3, 3 > &mOut, const MathMatrix< 3, 3 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Trace (const MathMatrix< 1, 1, T > &m)
 Trace of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Trace (const MathMatrix< 2, 2, T > &m)
 Trace of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Trace (const MathMatrix< 3, 3, T > &m)
 Trace of a Matrix. More...
 
template<std::size_t fromN, std::size_t toN, typename T >
MathVector< toN, T > MathVectorFrom (const MathVector< fromN, T > &v)
 helper method which creates a vector from another vector of different dimensionality More...
 
template<std::size_t N, typename T >
MathVector< N, T > MathVectorFrom (const MathVector< N, T > &v)
 helper method which creates a vector from another vector of different dimensionality More...
 
bool TriangleCircumcenter (vector2 &centerOut, const vector2 &p1, const vector2 &p2, const vector2 &p3)
 Calculates the circumcenter of a triangle. More...
 
bool TriangleCircumcenter (vector3 &centerOut, const vector3 &p1, const vector3 &p2, const vector3 &p3)
 Calculates the circumcenter of a triangle. More...
 
template<typename TKey >
size_t hash_key (const TKey &key)
 The hashing method can be specialized for different types. More...
 
template<class T >
T * GetDataPtr (std::vector< T > &v)
 Returns a pointer to the array which is managed by the std::vector. More...
 
template<class T >
const T * GetDataPtr (const std::vector< T > &v)
 Returns a pointer to the array which is managed by the std::vector. More...
 
template<class TLayout >
void GenerateGlobalAlgebraIDs (pcl::InterfaceCommunicator< TLayout > &communicator, std::vector< AlgebraID > &idsOut, size_t numIDs, const TLayout &masterLayout, const TLayout &slaveLayout)
 Generates a set of unique global algebra ids. More...
 
template<typename TMatrix >
void MatAddSlaveRowsToMasterRowOverlap0 (TMatrix &mat)
 Generates a set of unique global algebra ids. More...
 
template<typename TMatrix >
void MatMakeConsistentOverlap0 (TMatrix &mat)
 Generates a set of unique global algebra ids. More...
 
template<typename TVector >
void AdditiveToConsistent (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to consistent More...
 
template<typename TVector >
void UniqueToConsistent (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from unique to consistent More...
 
template<typename TVector >
void CopyValues (TVector *pVec, const IndexLayout &sourceLayout, const IndexLayout &targetLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 Copies values from the source to the target layout. More...
 
template<typename TVector >
void AdditiveToUnique (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to unique More...
 
template<typename TVector >
void SetInterfaceValues (TVector *pVec, const IndexLayout::Interface &interface, typename TVector::value_type val)
 sets the values of a vector to a given number only on the interface indices More...
 
template<typename TVector >
void SetLayoutValues (TVector *pVec, const IndexLayout &layout, typename TVector::value_type val)
 sets the values of a vector to a given number only on the layout indices More...
 
template<typename TVector >
void ScaleLayoutValues (TVector *pVec, const IndexLayout &layout, number scale)
 scales the values of a vector by a given number only on the layout indices More...
 
template<typename TVector >
void ConsistentToUnique (TVector *pVec, const IndexLayout &slaveLayout)
 changes parallel storage type from consistent to unique More...
 
template<typename TVector >
void VecSubtractOnLayout (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 subtracts values of slave layout from master layout and sets slave layouts to negative of difference More...
 
template<typename TVector >
void VecSubtractOneSlaveFromMaster (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 subtracts values of only one slave dof per master on layout More...
 
template<typename TVector >
void VecCopy (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 copy a vector only at a layout More...
 
void CommunicateConnections (std::vector< std::vector< int > > &connectionsToProcsOut, std::vector< std::vector< int > > &connectionsToSubDomsOut, IndexLayout &masterLayout, IndexLayout &slaveLayout, int highestReferencedIndex, pcl::IDomainDecompositionInfo &ddinfo)
 fills a connection list, which gives the connected processes to each interface. More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Volume *vol, Face *face, size_t nrFace, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Volume *vol, Edge *edge, size_t nrEdge, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Face *face, Edge *edge, size_t nrEdge, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, GridObject *Elem, GridObject *SubElem, size_t nrSub, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
template<typename TDomain >
void LoadDomain (TDomain &domain, const char *filename)
 Loads a domain from a grid-file. More...
 
template<typename TDomain >
void LoadDomain (TDomain &domain, const char *filename, int procId)
 Loads a domain from a grid-file. More...
 
template<int dim>
bool InnerDoFPosition (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 ï¿½ More...
 
template<typename TDomain >
bool InnerDoFPosition (std::vector< MathVector< TDomain::dim > > &vPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 ï¿½ More...
 
template<int dim>
bool DoFPosition (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 ï¿½ More...
 
template<typename TDomain >
bool DoFPosition (std::vector< MathVector< TDomain::dim > > &vPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 ï¿½ More...
 
template<int dim>
void ShapesAtGlobalPosition (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 
template<typename TDomain >
void ShapesAtGlobalPosition (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< TDomain::dim > > &vGlobPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 
template<typename TDomain >
void ExtractAlgebraIndices (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &fctIndex)
 
template<typename TDomain >
bool CheckDoFPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd)
 
template<typename TFunction >
bool CheckDoFPositions (const TFunction &u)
 
std::ostream & operator<< (std::ostream &out, const LocalDoF &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &out, const LFEID &v)
 writes the Identifier to the output stream More...
 
LFEID ConvertStringToLFEID (const char *type, int dim, int order)
 returns the LFEID for a combination of Space and order More...
 
LFEID ConvertStringToLFEID (const char *type, int dim)
 returns the LFEID for a combination of Space and order More...
 
bool CheckElementConsistency (MultiGrid &mg, Vertex *v)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
bool CheckElementConsistency (MultiGrid &mg, Edge *e)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
bool CheckElementConsistency (MultiGrid &mg, Face *f)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
std::string ElementDebugInfo (const Grid &grid, GridObject *e)
 Returns a string containing information on the given element. More...
 
template<class TElem >
vector3 GetGridObjectCenter (Grid &g, TElem *elem)
 Returns the center of the given element (SLOW - for debugging only!) More...
 
vector3 GetGridObjectCenter (Grid &g, GridObject *elem)
 Returns the center of the given element (SLOW - for debugging only!) More...
 
template<class vector_t >
void Extrude (Grid &grid, std::vector< Vertex * > *pvVerticesInOut, std::vector< Edge * > *pvEdgesInOut, std::vector< Face * > *pvFacesInOut, const vector_t &direction, uint extrusionOptions=EO_DEFAULT, Attachment< vector_t > &aPos=aPosition, std::vector< Volume * > *pvVolsOut=NULL)
 extrudes geometry and creates new edges, faces and volumes. More...
 
template<class TAAPos >
void Extrude (Grid &grid, std::vector< Vertex * > *pvVerticesInOut, std::vector< Edge * > *pvEdgesInOut, std::vector< Face * > *pvFacesInOut, const typename TAAPos::ValueType &direction, TAAPos aaPos, uint extrusionOptions, std::vector< Volume * > *pvVolsOut)
 extrudes geometry and creates new edges, faces and volumes. More...
 
template<class TEdgeIterator >
UG_API void AdjustEdgeOrientationToFaceOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 Orientates boundary edges in the given edge set to the orientation of associated faces. More...
 
template<class TEdgeIterator >
UG_API void AdjustEdgeOrientationToFaceOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, Grid::face_traits::callback considerFace)
 Orientates boundary edges in the given edge set to the orientation of associated faces. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const FaceVertices *f, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a face. More...
 
bool CalculateVertexNormals (Grid &grid, Grid::AttachmentAccessor< Vertex, APosition > &aaPos, Grid::AttachmentAccessor< Vertex, ANormal > &aaNorm)
 calculates the normals of all vertices in grid and stores them in aNorm. More...
 
bool CalculateVertexNormals (Grid &grid, APosition &aPos, ANormal &aNorm)
 calculates the normals of all vertices in grid and stores them in aNorm. More...
 
template<int dim, class TVrtIterator >
UG_API void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, Attachment< MathVector< dim > > &aPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<int dim, class TVrtIterator , class TAAPos >
UG_API void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, TAAPos aaPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Vertex *v, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the position of the vertex. More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const Vertex *v, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the position of the vertex. More...
 
bool Tetrahedralize (Grid &grid, number quality=5, bool preserveBnds=false, bool preserveAll=false, APosition &aPos=aPosition, int verbosity=0)
 fills a closed surface-grid with tetrahedrons. More...
 
bool Tetrahedralize (Grid &grid, ISubsetHandler &sh, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, int verbosity)
 fills a closed surface-grid with tetrahedrons. More...
 
bool EdgeOrientationMatches (EdgeVertices *ev, Face *f)
 checks if the edge-orientation of the edge and the face matches. More...
 
bool OrientationMatches (EdgeVertices *ev, Face *f)
 checks if the edge-orientation of the edge and the face matches. More...
 
void GetSelectedElementIndices (const ISelector &sel, std::vector< size_t > &vrtIndsOut, std::vector< size_t > &edgeIndsOut, std::vector< size_t > &faceIndsOut, std::vector< size_t > &volIndsOut)
 Returns indices of selected elements in ascending order. More...
 
template<class elem_t >
void GetSelectedElementIndices (const ISelector &sel, std::vector< int > &indsOut)
 Returns indices of selected elements in ascending order. More...
 
template<class elem_t >
void SelectElementsByIndex (ISelector &sel, const std::vector< size_t > &inds)
 Selects elements with the specified indices. More...
 
void SelectElementsByIndex (ISelector &sel, const std::vector< size_t > &vrtInds, const std::vector< size_t > &edgeInds, const std::vector< size_t > &faceInds, const std::vector< size_t > &volInds)
 Selects elements with the specified indices. More...
 
void AssignSubsetsByElementType (ISubsetHandler &sh)
 Assigns subset depending on the element type. More...
 
void AssignSubsetsByElementType (ISubsetHandler &sh, GridObjectCollection g)
 Assigns subset depending on the element type. More...
 
template<class TAAPos >
number CalculateVolume (Volume *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Tetrahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Pyramid *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Prism *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Hexahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Octahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (FaceVertices *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (EdgeVertices *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Vertex *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TIterator , class TAAPos >
number CalculateVolume (TIterator begin, TIterator end, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, int procId=-1)
 Loads a grid from a file. Position data is written to aPosition. More...
 
bool LoadGridFromFile (Grid &grid, const char *filename, int procId)
 Loads a grid from a file. Position data is written to aPosition. More...
 
bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename)
 Saves a grid to a file. Position data is read from aPosition. More...
 
bool SaveGridToFile (Grid &grid, const char *filename)
 Saves a grid to a file. Position data is read from aPosition. More...
 
template<class TAPos >
UG_API bool LoadGridFromFile (Grid &grid, SPProjectionHandler &ph, size_t &num_ph, ISubsetHandler &sh, std::vector< std::string > additionalSHNames, std::vector< SmartPtr< ISubsetHandler >> ash, const char *filename, TAPos &aPos, int procId=-1)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
UG_API bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos, int procId=-1)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
UG_API bool LoadGridFromFile (Grid &grid, const char *filename, TAPos &aPos, int procId=-1)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
UG_API bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
template<class TAPos >
UG_API bool SaveGridToFile (Grid &grid, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
void CollectVertices (std::vector< Vertex * > &vVertexOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex * > &vVertexOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex * > &vVertexOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex * > &vVertexOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex * > &vVertexOut, Grid &grid, Face *f, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex * > &vVertexOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex * > &vVertexOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all vertices. More...
 
void CollectAssociated (std::vector< Vertex * > &vVertexOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectEdges (std::vector< Edge * > &vEdgesOut, Grid &grid, Vertex *vrt, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given vertex. More...
 
void CollectAssociated (std::vector< Edge * > &vEdgesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 Collects all edges which exist in the given grid and which are part of the given vertex. More...
 
void CollectFaces (std::vector< Face * > &vFacesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all faces that exist in the given grid which contain the given edge. More...
 
void CollectAssociated (std::vector< Face * > &vFacesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all faces that exist in the given grid which contain the given edge. More...
 
void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all volumes that exist in the given grid which contain the given edge. More...
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given edge. More...
 
void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, Face *f, bool clearContainer, bool ignoreAssociatedVolumes)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, FaceDescriptor &fd, bool clearContainer)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, Face *f, bool clearContainer=true, bool ignoreAssociatedVolumes=false)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectAssociated (std::vector< Volume * > &vVolumesOut, Grid &grid, FaceDescriptor &fd, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
size_t NumVertices (Vertex *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Edge *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Face *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Volume *elem)
 Returns the number of vertices of the given geometric object. More...
 
UG_API void CollectEdges (std::vector< Edge * > &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge. More...
 
void CollectAssociated (std::vector< Edge * > &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge. More...
 
UG_API void CollectEdges (std::vector< Edge * > &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face. More...
 
void CollectAssociated (std::vector< Edge * > &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face. More...
 
UG_API void CollectEdges (std::vector< Edge * > &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
void CollectAssociated (std::vector< Edge * > &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
UG_API void CollectFaces (std::vector< Face * > &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all faces that exist in the given grid are part of the given volume. More...
 
void CollectAssociated (std::vector< Face * > &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all faces that exist in the given grid are part of the given volume. More...
 

Variables

AGeomObjID aGeomObjID
 This attachment instance should be used to store global ids. More...
 
size_t allocated = 0
 
ANormal aNormal ("normal", true)
 The standard 3d normal type. More...
 
APosition aPosition ("position", true)
 The standard 3d position type. More...
 
APosition1 aPosition1 ("position2", true)
 The standard 1d position type. More...
 
APosition2 aPosition2 ("position2", true)
 The standard 2d position type. More...
 
DebugID APP
 
bool bMemTracker =false
 
const int BOXPRIORITYQUEUE2_MAXIMAL_VALUE = 500
 maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()). More...
 
const int BOXPRIORITYQUEUE_MAXIMAL_VALUE = 500
 maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()). More...
 
std::vector< ProfileCall > callsOnHold
 
const unsigned int cost_del = 1
 
const unsigned int cost_ins = 1
 
const unsigned int cost_sub = 1
 
DebugID DBG_COLORING ("ParallelColoring")
 
DebugID DBG_MATRIX_OVERLAP ("Algebra.MatrixOverlap")
 
DebugID DID_CUDA ("CUDA")
 
DebugID DID_DATA_EVALUATOR ("DATA_EVALUATOR")
 
DebugID DID_ELEM_DISC_ASSEMBLE_UTIL ("ELEM_DISC_ASSEMBLE_UTIL")
 
DebugID DID_FV1_GEOM ("FV1_GEOM")
 
DebugID DID_LOCAL_FINITE_ELEMENT_PROVIDER ("LOCAL_FINITE_ELEMENT_PROVIDER")
 
DebugID DID_LUACOMPILER ("LUACompiler")
 
DebugID DID_REFERENCE_MAPPING
 
DebugID DID_REFERENCE_MAPPING_GLOB_TO_LOC
 
bool g_bNoNANCheck = true
 
static GlobalBoundaryRefinementRule g_boundaryRefinementRule = LINEAR
 global boundary refinement rule variable for switching between linear and Subdivision Loop refinement More...
 
size_t g_minSecondUntilProgress = 3
 
int g_ShinyCallLoggingMaxFreq = 1
 
const char * GRID_BASE_OBJECT_PLURAL_NAMES [] = {"vertices", "edges", "faces", "volume"}
 
const char * GRID_BASE_OBJECT_SINGULAR_NAMES [] = {"vertex", "edge", "face", "volume"}
 
static const int INNER_TKD_ELEMENT_INDICES []
 
static DebugID LG_DIST ("LG_DIST")
 
DebugID LIB_ALG_AMG
 
DebugID LIB_ALG_LINEAR_OPERATOR
 
DebugID LIB_ALG_LINEAR_SOLVER
 
DebugID LIB_ALG_MATRIX
 
DebugID LIB_ALG_VECTOR
 
DebugID LIB_DISC
 
DebugID LIB_DISC_ASSEMBLE
 
DebugID LIB_DISC_D3F
 
DebugID LIB_DISC_DISCRETE_FUNCTION
 
DebugID LIB_DISC_LINKER
 
DebugID LIB_DISC_MULTIGRID
 
DebugID LIB_DISC_NEWTON
 
DebugID LIB_DISC_OPERATOR_INVERSE
 
DebugID LIB_DISC_ORDER ("LIB_DISC_ORDER")
 
DebugID LIB_DISC_OUTPUT
 
DebugID LIB_DISC_TRANSFER
 
DebugID LIB_GRID
 
DebugID LIB_GRID_REFINER
 
DebugID LIB_LIMEX ("LIB_LIMEX")
 
DebugID LIB_PCL
 
DebugID MAIN
 
const int MAX_FACE_VERTICES = 4
 constant that defines the maximal number of vertices per face. More...
 
const int MAX_VOLUME_VERTICES = 8
 constant that defines the maximal number of vertices per volume element. More...
 
static const size_t MAXBLOCKSIZE = 53
 
MemTrackerMap memTracker
 
const int MG_EDGE_MAX_EDGE_CHILDREN = 2
 maximal number of edges that can be children of an edge. More...
 
const int MG_FACE_MAX_EDGE_CHILDREN = 4
 maximal number of edges that can be children of a face. More...
 
const int MG_FACE_MAX_FACE_CHILDREN = 4
 maximal number of faces that can be children of a face. More...
 
static const int OUTER_TKD_ELEMENT_INDICES []
 
const number PI = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899
 
std::vector< ProfileCall > profileCalls
 
static bool s_abortRun = false
 
DebugID SchurDebug
 todo: replace DebugID More...
 
map< const Shiny::ProfileNode *, size_t > selfmem
 
static const char shiftCharacters [] = "|#[+"
 
static const size_t shiftCharactersLength = sizeof(shiftCharacters)/sizeof(shiftCharacters[0])
 
const number SMALL = 1.0e-12
 
const number SMALL_SQ = SMALL * SMALL
 
map< const Shiny::ProfileNode *, size_t > totalmem
 
static std::string UG_AUTHORS ="Sebastian Reiter, Martin Rupp, Andreas Vogel, et al."
 
static std::string UG_BINARY_LICENSE
 
const char * UG_BUILD_HOST
 
const char * UG_COMPILE_DATE
 
const char * UG_GIT_REVISION
 
const char * UG_SVN_REVISION
 
const int ugRefObjIdToVTKCellType []
 
const uint64 UNIT_EXA = UNIT_PETA * 1024ll
 
const uint64 UNIT_EXA_SI = UNIT_PETA_SI * 1000ll
 
const uint64 UNIT_GIGA = UNIT_MEGA * 1024
 
const uint64 UNIT_GIGA_SI = UNIT_MEGA_SI * 1000
 
const uint64 UNIT_KILO = 1024
 
const uint64 UNIT_KILO_SI = 1000
 
const uint64 UNIT_MEGA = UNIT_KILO * 1024
 
const uint64 UNIT_MEGA_SI = UNIT_KILO_SI * 1000
 
const uint64 UNIT_PETA = UNIT_TERA * 1024ll
 
const uint64 UNIT_PETA_SI = UNIT_TERA_SI * 1000ll
 
const uint64 UNIT_TERA = UNIT_GIGA * 1024ll
 
const uint64 UNIT_TERA_SI = UNIT_GIGA_SI * 1000ll
 
bool useLua2VM =false
 
bool useLuaCompiler =false
 
const char * VTKCellNames []
 
typedef SmartPtr< PartitionMapSPPartitionMap
 Save the partition map to a file. More...
 
template<class TAPos >
bool SavePartitionMapToFile (PartitionMap &pm, const char *filename, TAPos &aPos)
 Save the partition map to a file. More...
 

Detailed Description

the ug namespace

D = MatrixDiagonal(mat) creates a LinearOperator which acts like D = diag(mat)

This structure is a helper structure to end an boost::mpl::list

boost::mpl::list<int, double, char, end_boost_list>

is the same as

boost::mpl::list<int, double, char>

This comes in handy when you are using defines to enable/disable parts of the list:

boost::mpl::list<
#ifdef USE_INT
int,
#endif
#ifdef USE_DOUBLE
double,
#endif
#ifdef USE_CHAR
char,
#endif
end_boost_list
>

Without end_boost_list, we would need to add some other #ifdefs because of the extra Comma , at the end (imagine only USE_INT is defined).

you can use that list now as normal: static const bool isEmpty = boost::mpl::empty<List>::value; typename boost::mpl::if_c<isEmpty, ListProcessEnd, ListProcessNext>::type (reg,grp);

Here's an example on how to use the class:

#include "common/util/string_table_stream.h"
...
ug::StringTableStream sts;
sts << "|" << 31.3 << ", " << 0 << "|\n";
sts << "|" << 0 << ", " << 768 << "|\n";
std::cout << table;

And this is what the output looks like:

 | 31.3 , 0   |
 | 0    , 768 |
* 

This class uses internally StringTable.

See also
StringTable, Table

Copyright (c) 2010-2015: G-CSC, Goethe University Frankfurt Author: Markus Breit

This file is part of UG4.

UG4 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 (as published by the Free Software Foundation) with the following additional attribution requirements (according to LGPL/GPL v3 §7):

(1) The following notice must be displayed in the Appropriate Legal Notices of covered and combined works: "Based on UG4 (www.ug4.org/license)".

(2) The following notice must be displayed at a prominent place in the terminal output of covered works: "Based on UG4 (www.ug4.org/license)".

(3) The following bibliography is recommended for citation and must be preserved in all covered files: "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively parallel geometric multigrid solver on hierarchically distributed grids. Computing and visualization in science 16, 4 (2013), 151-164" "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 – a novel flexible software system for simulating pde based models on high performance computers. Computing and visualization in science 16, 4 (2013), 165-179"

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

Copyright (c) 2010-2019: G-CSC, Goethe University Frankfurt Author: Stephan Grein

This file is part of UG4.

UG4 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 (as published by the Free Software Foundation) with the following additional attribution requirements (according to LGPL/GPL v3 §7):

(1) The following notice must be displayed in the Appropriate Legal Notices of covered and combined works: "Based on UG4 (www.ug4.org/license)".

(2) The following notice must be displayed at a prominent place in the terminal output of covered works: "Based on UG4 (www.ug4.org/license)".

(3) The following bibliography is recommended for citation and must be preserved in all covered files: "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively parallel geometric multigrid solver on hierarchically distributed grids. Computing and visualization in science 16, 4 (2013), 151-164" "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 – a novel flexible software system for simulating pde based models on high performance computers. Computing and visualization in science 16, 4 (2013), 165-179"

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

Namespace for ug

Typedef Documentation

◆ ABool

typedef Attachment<bool> ug::ABool

◆ AByte

◆ AChar

typedef Attachment<char> ug::AChar

◆ ADistInfo

◆ ADouble

typedef Attachment<double> ug::ADouble

◆ AEdge

◆ AFace

◆ AFloat

typedef Attachment<float> ug::AFloat

◆ AInt

typedef Attachment<int> ug::AInt

◆ AlgebraIDHashList

◆ AlgebraIDVec

typedef std::vector<AlgebraID> ug::AlgebraIDVec

◆ ANormal

◆ ANormal2

◆ ANormal3

◆ ANumber

◆ APosition

◆ APosition1

◆ APosition2

◆ APosition3

◆ ATexCoord

◆ AUInt

◆ AVector1

◆ AVector2

◆ AVector3

◆ AVector4

◆ AVertex

◆ AVolume

◆ binary_grouping_vector

typedef std::vector<bool> ug::binary_grouping_vector

◆ ConstConstrainedEdgeIterator

◆ ConstConstrainedQuadrilateralIterator

◆ ConstConstrainedTriangleIterator

◆ ConstConstrainedVertexIterator

◆ ConstConstrainingEdgeIterator

◆ ConstConstrainingQuadrilateralIterator

◆ ConstConstrainingTriangleIterator

◆ ConstEdgeIterator

◆ ConstFaceIterator

◆ ConstHexahedronIterator

◆ ConstOctahedronIterator

◆ ConstPrismIterator

typedef geometry_traits<Prism>::const_iterator ug::ConstPrismIterator

◆ ConstPyramidIterator

◆ ConstQuadrilateralIterator

◆ ConstrainedEdgeIterator

◆ ConstrainedQuadrilateralIterator

◆ ConstrainedTriangleIterator

◆ ConstrainedVertexIterator

◆ ConstrainingEdgeIterator

◆ ConstrainingQuadrilateralIterator

◆ ConstrainingTriangleIterator

◆ ConstRegularEdgeIterator

◆ ConstRegularVertexIterator

◆ ConstSPProcessHierarchy

◆ ConstTetrahedronIterator

◆ ConstTriangleIterator

◆ ConstVertexIterator

◆ ConstVolumeIterator

◆ DoFIndex

type of DoF-Index used to identify an DoF in the Algebra

◆ EdgeElementStorage

◆ EdgeIterator

◆ EdgeLayout

◆ EdgeSelector

◆ FaceElementStorage

◆ FaceIterator

◆ FaceLayout

◆ FaceSelector

◆ GlobalLayout

typedef std::map<int, std::vector<AlgebraID> > ug::GlobalLayout

◆ Graph_t

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, boost::property<boost::vertex_color_t, boost::default_color_type, boost::property<boost::vertex_degree_t, int> > > ug::Graph_t

◆ HexahedronIterator

◆ IGeometry1d

◆ IGeometry2d

◆ IGeometry3d

◆ lapack_double

typedef double ug::lapack_double

◆ lapack_float

typedef float ug::lapack_float

◆ lapack_ftnlen

typedef int ug::lapack_ftnlen

◆ lapack_int

typedef int ug::lapack_int

◆ MapEdgeCuts

typedef multimap<number, SweepLineEdge*> ug::MapEdgeCuts

◆ MemTrackerMap

typedef map<void *, MemTrackerStruct> ug::MemTrackerMap

◆ MGSubsetHandler

◆ OctahedronIterator

◆ ParameterList

typedef vector<string> ug::ParameterList

◆ ParentInfo

typedef std::pair<byte, int> ug::ParentInfo

Stores a tuple (type, index), identifying a parent.

◆ PrismIterator

◆ ProjectorTypes

◆ PyramidIterator

◆ QuadrilateralIterator

◆ RegularEdgeIterator

◆ RegularVertexIterator

◆ SchurSliceDescVector

◆ SchurSlicingData

◆ SPElementCallback

◆ SPIGeometry1d

◆ SPIGeometry2d

◆ SPIGeometry3d

◆ SPLocalMarkAdjuster

◆ SPMGHNodeAdjuster

◆ SPParallelHNodeAdjuster

◆ SPPartitionMap

Save the partition map to a file.

The resulting file will contain the grid on which the partition-map operates, together with subsets, each representing the process on which the subset will be sent.

Todo:
currently only the .ugx format is supported.

◆ SPProcessHierarchy

◆ SPProjectionHandler

◆ SPRasterLayerDesc

◆ SPRasterLayers

◆ SPRasterLayersProjector

◆ SPRefinementProjector

◆ SPStdHNodeAdjuster

◆ SubsetHandler

◆ SweepLineEdgeIter

typedef SweepLineEdgeList::iterator ug::SweepLineEdgeIter

◆ SweepLineEdgeList

◆ TetrahedronIterator

◆ TriangleIterator

◆ VertexElementStorage

◆ VertexIterator

This Iterator will be used as base-class for iterators of specialized geometric objects.

◆ VertexLayout

◆ VertexSelector

◆ VolumeElementStorage

◆ VolumeIterator

◆ VolumeLayout

◆ VolumeSelector

◆ VTKFileWriter

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

abbreviations for return types

Enumerator
DIM_SUBSET_EMPTY_GRID 

◆ AnisotropyState

Enumerator
ISOTROPIC 
QUAD_SHORTX 
QUAD_SHORTY 
PRISM_FLAT 
PRISM_LONG 
HEX_SHORTX 
HEX_SHORTY 
HEX_SHORTZ 
HEX_SHORTXY 
HEX_SHORTXZ 
HEX_SHORTYZ 

◆ ArchiveType

different types of archives

Enumerator
AT_DATA 
AT_GUI 

◆ ATTACHMENT_CONSTANTS

Enumerator
INVALID_ATTACHMENT_INDEX 

◆ ConstraintType

Types of constraint.

These types control the order the constraints are applied in. Constraints with a lower number will be applied first. The order of constraints with equal number is undefined.

Enumerator
CT_NONE 
CT_ASSEMBLED 
CT_MAY_DEPEND_ON_HANGING 
CT_HANGING 
CT_CONSTRAINTS 
CT_DIRICHLET 
CT_ALL 

◆ ConstraintTypes

Enumerator
CT_NONE 
CT_CONSTRAINING 
CT_CONSTRAINED 

◆ DiscPart

Enumerator
NONE 
MASS 
STIFF 
RHS 
EXPL 
MAX_PART 

◆ EdgeContainerSections

These numbers define where in the edge-section-container an edge will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSEDGE_NONE 
CSEDGE_REGULAR_EDGE 
CSEDGE_CONSTRAINED_EDGE 
CSEDGE_CONSTRAINING_EDGE 

◆ ElemDiscType

Types of elem disc.

Enumerator
EDT_NONE 
EDT_ELEM 
EDT_SIDE 
EDT_BND 
EDT_ALL 

◆ eMatrixOrdering

Use eMatrixOrdering to indicate if in a two-dimensional array RowMajor: each row is stored consecutively in memory, or ColMajor: each col is stored consecutively in memory.

See also
http://en.wikipedia.org/wiki/Row-major_order .
Enumerator
RowMajor 
ColMajor 

◆ eTransposeMode

Enumerator
ModeNoTrans 
ModeTranspose 
ModeConjTranspose 

◆ FaceContainerSections

These numbers define where in the face-section-container a face will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSFACE_NONE 
CSFACE_TRIANGLE 
CSFACE_QUADRILATERAL 
CSFACE_CONSTRAINED_TRIANGLE 
CSFACE_CONSTRAINED_QUADRILATERAL 
CSFACE_CONSTRAINING_TRIANGLE 
CSFACE_CONSTRAINING_QUADRILATERAL 
CSFACE_USER 

◆ GlobalBoundaryRefinementRule

enumeration for identification of global boundary refinement rule to be used

Enumerator
LINEAR 
SUBDIV_SURF_LOOP_SCHEME 
SUBDIV_SURF_AVERAGING_SCHEME 
SUBDIV_SURF_BUTTERFLY_SCHEME 
SUBDIV_VOL 

◆ GridBaseObjectId

enumeration of the GridBaseObjects that make up a grid.

Enumerator
VERTEX 
EDGE 
FACE 
VOLUME 
NUM_GEOMETRIC_BASE_OBJECTS 

◆ GridHeaderConstants

Enumerator
GHC_HEADER_BEGIN 
GHC_HEADER_END 
GHC_READ_OPTIONS 

◆ GridHeaderReadOptions

Enumerator
GHRO_READ_DEFAULT 
GHRO_READ_LEVELS 
GHRO_READ_PARENTS 

◆ GridMessageAdaptionType

constants which indicate the adaption type in a grid refinement message.

Enumerator
GMAT_UNKNOWN 
GMAT_GLOBAL_ADAPTION_BEGINS 
GMAT_HNODE_ADAPTION_BEGINS 
GMAT_GLOBAL_ADAPTION_ENDS 
GMAT_HNODE_ADAPTION_ENDS 
GMAT_GLOBAL_REFINEMENT_BEGINS 
GMAT_HNODE_REFINEMENT_BEGINS 
GMAT_GLOBAL_REFINEMENT_ENDS 
GMAT_HNODE_REFINEMENT_ENDS 
GMAT_GLOBAL_COARSENING_BEGINS 
GMAT_HNODE_COARSENING_BEGINS 
GMAT_GLOBAL_COARSENING_ENDS 
GMAT_HNODE_COARSENING_ENDS 

◆ GridMessageCreationType

Instances of this class inform about grid creation (e.g. during load or distribution)

Enumerator
GMCT_NONE 
GMCT_CREATION_STARTS 
GMCT_CREATION_STOPS 

◆ GridMessageDistributionType

Instances of this class inform about distribution.

Enumerator
GMDT_NONE 
GMDT_DISTRIBUTION_STARTS 
GMDT_DISTRIBUTION_STOPS 

◆ GridMessageMultiGridChangedType

Enumerator
GMMGCT_LEVEL_ADDED 
GMMGCT_REMOVED 

◆ GridObjectID

Enumerator
GOID_VERTEX 
GOID_EDGE 
GOID_TRIANGLE 
GOID_QUADRILATERAL 
GOID_TETRAHEDRON 
GOID_PYRAMID 
GOID_PRISM 
GOID_OCTAHEDRON 
GOID_HEXAHEDRON 
GOID_NUM_GRID_OBJECT_IDS 

◆ GridSerializationID

Don't change the constants, since they are used i.e. in external files too. If you want to add constants, do so at the end of the enumeration.

Enumerator
GSID_END_OF_GRID 
GSID_INVALID 
GSID_GEOMETRIC_OBJECT 
GSID_VERTEX_BASE 
GSID_VERTEX 
GSID_HANGING_VERTEX 
GSID_EDGE_BASE 
GSID_EDGE 
GSID_CONSTRAINED_EDGE 
GSID_CONSTRAINING_EDGE 
GSID_FACE 
GSID_TRIANGLE 
GSID_CONSTRAINED_TRIANGLE 
GSID_CONSTRAINING_TRIANGLE 
GSID_QUADRILATERAL 
GSID_CONSTRAINED_QUADRILATERAL 
GSID_CONSTRAINING_QUADRILATERAL 
GSID_VOLUME 
GSID_TETRAHEDRON 
GSID_HEXAHEDRON 
GSID_PRISM 
GSID_PYRAMID 
GSID_OCTAHEDRON 
GSID_NEW_LEVEL 

◆ InterfaceNodeTypes

The types of interface-entries. INT_H_MASTER and INT_H_SLAVE describe (horizontal) connections between nodes on one level in a grid-hierarchy. They are used to communicate data between neighbours.

INT_V_MASTER and INT_V_SLAVE describe (vertical) connections between nodes on different levels of a grid. They are used to communicate data between parents and children. They are only used for multigrids.

Note that the type parameter in DistributionInterfaceEntry is currently restricted to 4 bytes only!

developer note: Introducing INT_HORIZONTAL, INT_VERTICAL, INT_MASTER, INT_SLAVE and building or combinations of those would not make sense! Think about INT_H_MASTER | INT_V_SLAVE in this case (it would not be clear whether the master was in the H or in the V interface).

Enumerator
INT_NONE 
INT_H_MASTER 

horizontal master node

INT_H_SLAVE 

horizontal slave node

INT_V_MASTER 

vertical master node

INT_V_SLAVE 

vertical slave node

◆ InterfaceStates

Enumerator
IS_UNASSIGNED 
IS_NORMAL 
IS_VMASTER 
IS_VSLAVE 
IS_DUMMY 
HAS_PARENT 

◆ KDTreeSplitStrategy

Enumerator
KDTSS_CIRCULAR 
KDTSS_LARGEST 

◆ LGBConstants

Enumerator
LGBC_NONE 
LGBC_POS2D 
LGBC_POS3D 
LGBC_SUBSET_HANDLER 
LGBC_SELECTOR 
LGBC_PROJECTION_HANDLER 

◆ matrix_algebra_type

Enumerator
MATRIX_USE_ROW_FUNCTIONS 
MATRIX_USE_GLOBAL_FUNCTIONS 
MATRIX_USE_OPERATORS 
MATRIX_USE_MEMBER_FUNCTIONS 

◆ ObserverType

Enumerator
OT_NONE 
OT_GRID_OBSERVER 
OT_VERTEX_OBSERVER 
OT_EDGE_OBSERVER 
OT_FACE_OBSERVER 
OT_VOLUME_OBSERVER 
OT_FULL_OBSERVER 

◆ ProcessType

Enumerator
PT_ALL 
PT_STATIONARY 
PT_INSTATIONARY 
MAX_PROCESS 

◆ ReferenceObjectID

these ids are used to identify the shape of a geometric object.

Enumerator
ROID_UNKNOWN 
ROID_VERTEX 
ROID_EDGE 
ROID_TRIANGLE 
ROID_QUADRILATERAL 
ROID_TETRAHEDRON 
ROID_HEXAHEDRON 
ROID_PRISM 
ROID_PYRAMID 
ROID_OCTAHEDRON 
NUM_REFERENCE_OBJECTS 

◆ schur_slice_desc_type

Enumerator
SD_INNER 
SD_SKELETON 
SLICE_DESC_SIZE 

◆ SweepLineEdgeStatus

Enumerator
SLES_UNKNOWN 
SLES_RIM 

◆ SweepLineVertexStatus

Enumerator
SLVS_NONE 
SLVS_START 
SLVS_END 
SLVS_REGULAR 
SLVS_SPLIT 
SLVS_MERGE 

◆ TraversalStates

Enumerator
DONT_TRAVERSE_CHILDREN 
TRAVERSE_CHILDREN 
ABORT_TRAVERSAL 

◆ VertexContainerSections

These numbers define where in the vertex-section-container a vertex will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSVRT_NONE 
CSVRT_REGULAR_VERTEX 
CSVRT_CONSTRAINED_VERTEX 

◆ VolumeContainerSections

These numbers define where in the volume-section-container a volume will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSVOL_NONE 
CSVOL_TETRAHEDRON 
CSVOL_HEXAHEDRON 
CSVOL_PRISM 
CSVOL_PYRAMID 
CSVOL_OCTAHEDRON 

◆ VTKCellTypes

Enumerator
VTK_VERTEX 
VTK_POLY_VERTEX 
VTK_LINE 
VTK_POLY_LINE 
VTK_TRIANGLE 
VTK_TRIANGLE_STRIP 
VTK_POLYGON 
VTK_PIXEL 
VTK_QUAD 
VTK_TETRA 
VTK_VOXEL 
VTK_HEXAHEDRON 
VTK_WEDGE 
VTK_PYRAMID 
VTK_QUADRATIC_EDGE 
VTK_QUADRATIC_TRIANGLE 
VTK_QUADRATIC_QUAD 
VTK_QUADRATIC_TETRA 
VTK_QUADRATIC_HEXAHEDRON 
VTK_NUM_TYPES 

Function Documentation

◆ AbortRun()

UG_API void ug::AbortRun ( )

sets a flag, that the current run shall be aborted during the next call of TerminateAbortedRun()

References s_abortRun.

Referenced by ug::bridge::RegisterBridge_Misc().

◆ absCompare()

bool ug::absCompare ( double  a,
double  b 
)
inline

◆ AddAllFromInterface()

void ug::AddAllFromInterface ( std::set< size_t > &  s,
const IndexLayout::Interface interface 
)
Parameters
marka set to which all indices from the interface are added
layout

References s.

Referenced by AddAllFromLayout().

◆ AddAllFromLayout()

void ug::AddAllFromLayout ( std::set< size_t > &  s,
const IndexLayout layout 
)

◆ AddConnectionsBetweenSlaves()

void ug::AddConnectionsBetweenSlaves ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
IndexLayout masterLayout,
IndexLayout slaveLayout,
IndexLayout allToAllSend,
IndexLayout allToAllReceive 
)

adds connections between slave nodes to the interfaces/layouts when a master node has 2 slave nodes, this function adds a connection between these nodes

Parameters
communicatorused InterfaceCommunicator
masterLayoutmaster layout
slaveLayoutslave layout
allToAllSendlayout with slave-slave connections at the end of this function
allToAllReceivelayout with slave-slave connections at the end of this function

since we have slave->slave and slave<-slave connections, indices added to layouts are always added to allToAllSend AND allToAllReceive.

Note
this function ONLY adds slave-slave connections. if you need master->slave connections, try AddLayout(allToAllSend, masterLayout); AddLayout(allToAllReceive, slaveLayout); for slave->master AddLayout(allToAllSend, slaveLayout); AddLayout(allToAllReceive, masterLayout);
because the order in the interfaces is important, this function is more complicate that one would expect.

References pcl::SingleLevelLayout< TInterface >::begin(), ug::BinaryBuffer::buffer(), pcl::InterfaceCommunicator< TLayout >::communicate(), CommunicateConnections(), Deserialize(), pcl::SingleLevelLayout< TInterface >::end(), ug::BinaryBuffer::eof(), pcl::SingleLevelLayout< TInterface >::interface(), pcl::SingleLevelLayout< TInterface >::proc_id(), pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back(), pcl::InterfaceCommunicator< TLayout >::receive_raw(), pcl::InterfaceCommunicator< TLayout >::send_raw(), Serialize(), UG_ASSERT, and ug::BinaryBuffer::write_pos().

Referenced by CreateAllToAllFromMasterSlave().

◆ AddEntriesToIndexLayout_DomainDecomposition()

template<class TLayout >
bool ug::AddEntriesToIndexLayout_DomainDecomposition ( IndexLayout processLayoutOut,
IndexLayout subdomainLayoutOut,
DoFDistribution dofDistr,
TLayout &  elemLayout,
pcl::IDomainDecompositionInfo ddInfoIn 
)

◆ AddEntriesToLevelIndexLayout()

template<class TLayout >
bool ug::AddEntriesToLevelIndexLayout ( IndexLayout indexLayoutOut,
DoFDistribution dofDistr,
TLayout &  elemLayout,
const std::map< int, std::vector< bool > > *  pIgnoreMap = NULL 
)

◆ AddEntriesToSurfaceIndexLayout()

◆ AddExtraProcessEntriesToSubdomainLayout()

◆ AddFunctionValuesToGridCoordinatesP1() [1/3]

template<typename TGridFunction >
void ug::AddFunctionValuesToGridCoordinatesP1 ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
size_t  coordInd 
)

◆ AddFunctionValuesToGridCoordinatesP1() [2/3]

template<typename TGridFunction >
void ug::AddFunctionValuesToGridCoordinatesP1 ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
size_t  coordInd,
number  timestep 
)

◆ AddFunctionValuesToGridCoordinatesP1() [3/3]

template<typename TGridFunction >
void ug::AddFunctionValuesToGridCoordinatesP1 ( SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
size_t  coordInd,
const SubsetGroup ssGrp,
number  timestep 
)

◆ AddGlobalAttachmentsToSerializer()

template<class TElem >
static void ug::AddGlobalAttachmentsToSerializer ( GridDataSerializationHandler handler,
Grid grid 
)
static

Adds serializers for all registered global attachments.

Make sure that the same global attachments are attached to the given grid on all processes before calling this method. Use 'SynchronizeAttachedGlobalAttachments' to achieve this.

References name.

◆ AddIfUnique()

void ug::AddIfUnique ( IndexLayout::Interface interface,
size_t  i 
)
inline

References IsInInterface().

◆ AddLayoutFromGlobalLayout()

template<typename TGlobalToLocal >
void ug::AddLayoutFromGlobalLayout ( IndexLayout layout,
GlobalLayout globalLayout,
TGlobalToLocal &  globalToLocal,
bool  bRemoveDoubles = true 
)

◆ AddLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::AddLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat 
)
inline

Add a local matrix

The local matrix type must declare the following members:

Referenced by AddLocalMatrix(), and SetLocalMatrix().

◆ AddLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::AddLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References AddLocalMatrix().

◆ AddLocalMatrixToGlobal()

◆ AddLocalVector()

◆ AddMult() [1/7]

template<typename A >
void ug::AddMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References AddMult().

◆ AddMult() [2/7]

template<typename A , typename B , typename C >
void ug::AddMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

◆ AddMult() [3/7]

template<typename A , typename B , typename C >
void ug::AddMult ( DenseMatrix< A > &  dest,
const DenseMatrix< B > &  mA,
const DenseMatrix< C > &  mB 
)
inline

References AddMult(), and UG_ASSERT.

◆ AddMult() [4/7]

template<typename A , typename B >
void ug::AddMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References AddMult(), and alpha.

◆ AddMult() [5/7]

template<typename A , typename B , typename C >
void ug::AddMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References AddMult(), and UG_ASSERT.

◆ AddMult() [6/7]

template<typename A , typename B >
void ug::AddMult ( DenseVector< A > &  dest,
const double &  b,
const A &  vec 
)
inline

References AddMult().

◆ AddMult() [7/7]

void ug::AddMult ( number dest,
const number b,
const number vec 
)
inline

◆ AddTargetProcToDistInfos()

template<class TElem >
static void ug::AddTargetProcToDistInfos ( MGSelector msel,
DistInfoSupplier distInfos,
int  targetProc 
)
static

◆ AdjustMeanValue() [1/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::string &  fcts 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions) from all the DoFs of this grid function. Typically, it should result in a grid function with the zero average.

Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue(), and TokenizeTrimString().

◆ AdjustMeanValue() [2/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::string &  fcts,
number  mean 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions), shifted by the value of 'mean', from all the DoFs of this grid function. Typically, it should result in a grid function with the average equal to 'mean'.

Remarks
Note that mean is not the desired average but the one multiplied by the area of the domain.
Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue(), and TokenizeTrimString().

◆ AdjustMeanValue() [3/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::vector< std::string > &  vCmp 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions) from all the DoFs of this grid function. Typically, it should result in a grid function with the zero average.

Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue().

◆ AdjustMeanValue() [4/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::vector< std::string > &  vCmp,
number  mean 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions), shifted by the value of 'mean', from all the DoFs of this grid function. Typically, it should result in a grid function with the average equal to 'mean'.

Remarks
Note that mean is not the desired average but the one multiplied by the area of the domain.
Template Parameters
TGridFunctiontype of the grid function
Parameters
spGFthe grid function
vCmpthe component to adjust the average for
meanthe desired mean value

References EDGE, FACE, Integral(), SmartPtr< T, FreePolicy >::invalid(), PROFILE_FUNC_GROUP, UG_THROW, VERTEX, and VOLUME.

Referenced by AdjustMeanValue(), and ug::AverageComponent< TDomain, TAlgebra >::post_process().

◆ AdjustSelection()

static void ug::AdjustSelection ( Grid grid,
Selector sel 
)
static

◆ aGeomObjID()

AGeomObjID ug::aGeomObjID ( "globalID"  ,
false   
)

◆ AllGatherGrid()

void ug::AllGatherGrid ( Grid gridOut,
Selector sel,
GridDataSerializationHandler serializer,
GridDataSerializationHandler deserializer,
const pcl::ProcessCommunicator procCom = pcl::ProcessCommunicator() 
)

◆ APP()

DebugID ug::APP ( "APP"  )

◆ AppendCounterToString()

void ug::AppendCounterToString ( string &  str,
string  indicator,
int  counter,
int  maxCounter 
)

◆ AppendInterface()

template<typename TLayout >
bool ug::AppendInterface ( TLayout &  layout,
int  pidSource,
int  pidAppendTo 
)

References find().

Referenced by MergeInterfaces().

◆ AppendSpacesToString()

string ug::AppendSpacesToString ( string &  str,
int  totalLength 
)

◆ ApplyConstrainedSmoothSubdivisionVolumesToTopLevel()

void ug::ApplyConstrainedSmoothSubdivisionVolumesToTopLevel ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets 
)

◆ ApplyLinearSolver()

template<typename vector_type >
bool ug::ApplyLinearSolver ( SmartPtr< ILinearOperator< vector_type > >  A,
vector_type u,
vector_type b,
SmartPtr< ILinearOperatorInverse< vector_type > >  solver 
)

◆ ApplySmoothManifoldPosToTopLevelAveragingScheme()

template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelAveragingScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH 
)

Toplevel vertex repositioning function for subdivision surfaces refinement (Averaging scheme)

This function repositions all toplevel manifold vertices to their smoothed positions determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler

References ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumManifoldFacesVertexAttachmentInTopLevel(), CalculateSmoothManifoldPosInTopLevelAveragingScheme(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::top_level(), UG_THROW, VecScale(), and VecScaleAdd().

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

◆ ApplySmoothManifoldPosToTopLevelButterflyScheme()

template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelButterflyScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH 
)

Toplevel vertex repositioning function for subdivision surfaces refinement (Butterfly scheme)

This function repositions all toplevel manifold vertices to their smoothed positions determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler

References pcl::ProcessCommunicator::allreduce(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumManifoldEdgesVertexAttachmentInParentLevel(), CalculateSmoothManifoldPosInParentLevelButterflyScheme(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::MultiGrid::get_parent(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, ug::GridObject::reference_object_id(), ROID_EDGE, ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

◆ ApplySmoothManifoldPosToTopLevelLoopScheme()

template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelLoopScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
bool  bCreaseSurf 
)

Toplevel vertex repositioning function for subdivision surfaces refinement (by C. Loop, 1987)

This function repositions all toplevel manifold vertices to their smoothed positions determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
bCreaseSurfbool switch for crease surfaces in case of subdivision refinement by C. Loop, 1987 handling the crease polylines separately

References pcl::ProcessCommunicator::allreduce(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumManifoldEdgesVertexAttachmentInParentLevel(), CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme(), CalculateSmoothManifoldPosInParentLevelLoopScheme(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::MultiGrid::get_parent(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, ug::GridObject::reference_object_id(), ROID_EDGE, ROID_VERTEX, ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

◆ ApplySmoothSubdivisionSurfacesToTopLevel() [1/2]

template<class TAPosition >
void ug::ApplySmoothSubdivisionSurfacesToTopLevel ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets,
bool  bCreaseSurf 
)

Wrapper procedures for smooth subdivision surfaces/volumes hierarchy creation.

These functions call the actual ApplySmoothSubdivisionVolumesToTopLevel procedure

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSubsetsuser-specified linearManifoldSubsets
bConstrainedbool switch for constrained smooth subdivision volumes scheme
bCreaseSurfbool switch for crease surfaces in case of subdivision refinement by C. Loop, 1987 handling the boundary polylines separately

References ApplySmoothSubdivisionSurfacesToTopLevel(), and InitLinearManifoldSubsetHandler().

◆ ApplySmoothSubdivisionSurfacesToTopLevel() [2/2]

template<class TAPosition >
void ug::ApplySmoothSubdivisionSurfacesToTopLevel ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler sh,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
bool  bCreaseSurf 
)

Function to create a smooth subdivision volumes hierarchy.

This function transforms a linearly refined hybrid tetra-/octahedral volume grid hierarchy into a hierarchy with smoothed boundary manifold (s. Schaefer et al, "Smooth subdivision of tetrahedral meshes", 2004)

Parameters
mgreference to MultiGrid
aPosreference to position attachment
shreference to standard SubsetHandler
markSHreference to SubsetHandler containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
bCreaseSurfbool switch for crease surfaces in case of subdivision refinement by C. Loop, 1987 handling the crease polylines separately

References pcl::ProcessCommunicator::allreduce(), ApplySmoothManifoldPosToTopLevelAveragingScheme(), ApplySmoothManifoldPosToTopLevelButterflyScheme(), ApplySmoothManifoldPosToTopLevelLoopScheme(), g_boundaryRefinementRule, LINEAR, ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, PROFILE_FUNC_GROUP, SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_SURF_BUTTERFLY_SCHEME, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_VOL, and UG_THROW.

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel().

◆ ApplySmoothSubdivisionSurfacesToTopLevel< APosition >()

template void ug::ApplySmoothSubdivisionSurfacesToTopLevel< APosition > ( MultiGrid mg,
APosition aPos,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets,
bool  bCreaseSurf 
)

◆ ApplySmoothSubdivisionSurfacesToTopLevel< APosition1 >()

template void ug::ApplySmoothSubdivisionSurfacesToTopLevel< APosition1 > ( MultiGrid mg,
APosition1 aPos,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets,
bool  bCreaseSurf 
)

◆ ApplySmoothSubdivisionSurfacesToTopLevel< APosition2 >()

template void ug::ApplySmoothSubdivisionSurfacesToTopLevel< APosition2 > ( MultiGrid mg,
APosition2 aPos,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets,
bool  bCreaseSurf 
)

◆ ApplySmoothSubdivisionVolumesToTopLevel() [1/2]

void ug::ApplySmoothSubdivisionVolumesToTopLevel ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets 
)

◆ ApplySmoothSubdivisionVolumesToTopLevel() [2/2]

void ug::ApplySmoothSubdivisionVolumesToTopLevel ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
bool  bConstrained 
)

Function to create a smooth subdivision volumes hierarchy.

This function transforms a linearly refined hybrid tetra-/octahedral volume grid hierarchy into a smoothed subdivision volumes hierarchy (s. Schaefer et al, "Smooth subdivision of tetrahedral meshes", 2004)

Parameters
mgreference to MultiGrid
shreference to standard SubsetHandler
markSHreference to SubsetHandler containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
bConstrainedbool switch for constrained smooth subdivision volumes scheme

References pcl::ProcessCommunicator::allreduce(), aPosition, ApplySmoothManifoldPosToTopLevelAveragingScheme(), ApplySmoothManifoldPosToTopLevelButterflyScheme(), ApplySmoothManifoldPosToTopLevelLoopScheme(), ApplySmoothVolumePosToTopLevel(), g_boundaryRefinementRule, ug::tet_rules::GetRefinementRule(), ug::tet_rules::HYBRID_TET_OCT, LINEAR, ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, PROFILE_FUNC_GROUP, SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_SURF_BUTTERFLY_SCHEME, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_VOL, and UG_THROW.

Referenced by ApplyConstrainedSmoothSubdivisionVolumesToTopLevel(), ApplySmoothSubdivisionVolumesToTopLevel(), ug::bridge::Refinement::Functionality::Common(), and ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::smooth().

◆ ApplySmoothVolumePosToTopLevel()

void ug::ApplySmoothVolumePosToTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
bool  bConstrained 
)

Toplevel vertex repositioning function for subdivision volumes refinement.

This function repositions all toplevel inner vertices to their smoothed positions determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
bConstrainedbool switch for constrained smooth subdivision volumes scheme

References aPosition, ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateConstrainedSmoothVolumePosInTopLevel(), CalculateNumElemsVertexAttachmentInTopLevel(), CalculateSmoothVolumePosInTopLevel(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), g_boundaryRefinementRule, ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, SUBDIV_VOL, ug::MultiGrid::top_level(), UG_THROW, VecScale(), and VecScaleAdd().

Referenced by ApplySmoothSubdivisionVolumesToTopLevel().

◆ AspectRatio() [1/2]

template<class TAAPos >
number ug::AspectRatio ( FaceVertices f,
TAAPos &  aaPos 
)

Returns the aspect ratio of a face.

Depending on the number of nodes, either TriangleAspectRatio or QuadrilateralAspectRatio is called.

References ug::FaceVertices::num_vertices(), QuadrilateralAspectRatio(), TriangleAspectRatio(), and UG_THROW.

Referenced by AssignTetrahedronAttributesByAspectRatio(), GetAspectRatioHistogram(), and GetAspectRatioInfo().

◆ AspectRatio() [2/2]

template<class TAAPos >
number ug::AspectRatio ( Volume vol,
TAAPos &  aaPos 
)

◆ AssembleInjectionByAverageOfChildren() [1/2]

template<int dim, typename TAlgebra >
void ug::AssembleInjectionByAverageOfChildren ( typename TAlgebra::matrix_type mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

◆ AssembleInjectionByAverageOfChildren() [2/2]

template<typename TAlgebra >
void ug::AssembleInjectionByAverageOfChildren ( typename TAlgebra::matrix_type mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

◆ AssembleInjectionForP1Lagrange()

template<typename TAlgebra >
void ug::AssembleInjectionForP1Lagrange ( typename TAlgebra::matrix_type mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

This functions assembles the interpolation matrix between to grid levels using only the RegularVertex degrees of freedom.

Parameters
[out]matAssembled interpolation matrix that interpolates u -> v
[in]approxSpaceApproximation Space
[in]coarseLevelCoarse Level index
[in]fineLevelFine Level index

References ug::MultiGrid::get_parent(), ug::DoFDistribution::inner_algebra_indices(), ug::LFEID::LAGRANGE, ug::DoFDistributionInfoProvider::local_finite_element_id(), ug::DoFDistribution::multi_grid(), ug::DoFDistributionInfoProvider::num_fct(), ug::DoFDistribution::num_indices(), ug::LFEID::order(), PROFILE_FUNC_GROUP, ug::LFEID::type(), and UG_THROW.

◆ AssembleLinearOperatorRhsAndSolution()

template<typename TAlgebra >
void ug::AssembleLinearOperatorRhsAndSolution ( AssembledLinearOperator< TAlgebra > &  op,
typename TAlgebra::vector_type u,
typename TAlgebra::vector_type b 
)

help function to assemble a linear operator

This function initializes the operator, sets the vector b to the computed rhs and sets the dirichlet post processes for the vector u.

Parameters
[out]opOperator
[out]uSolution
[out]bRigth-Hand side vector
Template Parameters
TAlgebraalgebra type

References ASS_PROFILE_BEGIN, ASS_PROFILE_END, ug::AssembledLinearOperator< TAlgebra >::init_op_and_rhs(), ug::AssembledLinearOperator< TAlgebra >::set_dirichlet_values(), and UG_CATCH_THROW.

◆ AssignAssociatedLowerDimElemsToSubsets() [1/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Edge  
)

helper with with dummy-param for compile-time function selection.

◆ AssignAssociatedLowerDimElemsToSubsets() [2/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Face  
)

helper with with dummy-param for compile-time function selection.

◆ AssignAssociatedLowerDimElemsToSubsets() [3/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Volume  
)

helper with with dummy-param for compile-time function selection.

◆ AssignCreaseVertices() [1/2]

◆ AssignCreaseVertices() [2/2]

◆ AssignDefaultSubsetColors()

UG_API void ug::AssignDefaultSubsetColors ( ISubsetHandler sh)

◆ AssignFixedVertices() [1/2]

◆ AssignFixedVertices() [2/2]

◆ AssignIndices()

template<class TElem >
void ug::AssignIndices ( typename geometry_traits< TElem >::iterator  iterBegin,
typename geometry_traits< TElem >::iterator  iterEnd,
Grid::AttachmentAccessor< TElem, AInt > &  aaInt 
)

◆ AssignMult() [1/7]

template<typename A >
void ug::AssignMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References AssignMult().

◆ AssignMult() [2/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

◆ AssignMult() [3/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( DenseMatrix< A > &  dest,
const DenseMatrix< B > &  mA,
const DenseMatrix< C > &  mB 
)
inline

References AddMult(), AssignMult(), and UG_ASSERT.

◆ AssignMult() [4/7]

template<typename A , typename B >
void ug::AssignMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References alpha, and AssignMult().

◆ AssignMult() [5/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References AddMult(), AssignMult(), and UG_ASSERT.

◆ AssignMult() [6/7]

template<typename A , typename B >
void ug::AssignMult ( DenseVector< A > &  dest,
const double &  b,
const DenseVector< B > &  vec 
)
inline

References AssignMult().

◆ AssignMult() [7/7]

void ug::AssignMult ( number dest,
const number b,
const number vec 
)
inline

◆ AssignSidesToSubsets< Edge >()

template void ug::AssignSidesToSubsets< Edge > ( ISubsetHandler ,
ISelector  
)

◆ AssignSidesToSubsets< Face >()

template void ug::AssignSidesToSubsets< Face > ( ISubsetHandler ,
ISelector  
)

◆ AssignSidesToSubsets< Volume >()

template void ug::AssignSidesToSubsets< Volume > ( ISubsetHandler ,
ISelector  
)

◆ AssignSubsetColorsBlueToGreen()

UG_API void ug::AssignSubsetColorsBlueToGreen ( ISubsetHandler sh,
int  firstSi,
int  numSi 
)

◆ AssignSubsetColorsRedToGreen()

UG_API void ug::AssignSubsetColorsRedToGreen ( ISubsetHandler sh,
int  firstSi,
int  numSi 
)

◆ AssignSubsetsByInterfaceType()

◆ AssignSubsetsByLevel()

◆ AssignSubsetsByQuality()

template<class TIterator >
bool ug::AssignSubsetsByQuality ( Grid grid,
SubsetHandler sh,
TIterator  elemsBegin,
TIterator  elemsEnd,
std::vector< number intervals 
)

assigns a subset based on the quality of the given element.

Currently only faces are supported.

Parameters
intervalscontains the intervals which define into which subset an element goes. Numbers have to be sorted, starting at 0 and ending at 1 (0 and 1 should be contained in intervals).

References aPosition, ug::GridSubsetHandler::assign_subset(), and FaceQuality().

◆ AssignSubsetsBySurfaceViewState()

◆ AssignTetrahedronAttributesByAspectRatio() [1/2]

bool ug::AssignTetrahedronAttributesByAspectRatio ( Grid grid,
SubsetHandler shVolume,
AInt aTetrahedronAspectRatioClass,
vector< double > &  offsets,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

References AspectRatio(), ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), CalculateTetrahedronAspectRatio(), and ug::Grid::end().

◆ AssignTetrahedronAttributesByAspectRatio() [2/2]

bool ug::AssignTetrahedronAttributesByAspectRatio ( Grid grid,
SubsetHandler shVolume,
AInt aTetrahedronAspectRatioClass,
vector< double > &  offsets,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)

assigns attributes to tetrahedral elements of a grid respecting their aspect ratio

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

References AspectRatio(), ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), CalculateTetrahedronAspectRatio(), and ug::Grid::end().

◆ AssignVerticalMasterAndSlaveStates()

template<class TElem >
static void ug::AssignVerticalMasterAndSlaveStates ( MGSelector msel,
bool  partitionForLocalProc 
)
static

The method operates on selected entries only. Make sure that all elements of type TElem which are being sent to a process are selected.

If a selected element has no children and if it is a vertical master, it will be marked as vertical master again.

If a selected element has unselected children, then those children will be selected as vertical master.

This method only works correctly if called for the elements of highest dimension.

References ug::MGSelector::begin(), ug::DistributedGridManager::contains_status(), ug::ISelector::deselect(), ug::Grid::distributed_grid_manager(), ug::MGSelector::end(), ES_V_MASTER, ES_V_SLAVE, GDIST_PROFILE_FUNC, ug::MultiGrid::get_child(), ug::MultiGrid::get_parent(), ug::ISelector::get_selection_status(), ug::ISelector::is_selected(), IS_VMASTER, IS_VSLAVE, LG_DIST, ug::MGSelector::multi_grid(), ug::MultiGrid::num_children(), ug::MGSelector::num_levels(), ug::ISelector::select(), UG_ASSERT, and UG_DLOG.

◆ AttachAct()

bool ug::AttachAct ( Grid grid,
const char *  filename,
string  name 
)

◆ AttachmentAllReduce()

template<typename TElem , typename AType >
void ug::AttachmentAllReduce ( Grid grid,
AType  aValue,
pcl::ReduceOperation  op 
)

Syncronizes a given attachment using a given reduction operation. Note that the syncronization takes place only for the horizontal masters and slaves. Use e.g. like this:

AttachmentAllReduce<Vertex>(grid, aValue, PCL_RO_ADD)

see pcl_methods.h for more PCL_RO_... reduce operations.

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_H_MASTER, and INT_H_SLAVE.

◆ AttachProperty()

bool ug::AttachProperty ( Grid grid,
const char *  filename,
string  name 
)

◆ AverageFunctionDifference()

template<typename TDomain , typename TAlgebra >
number ug::AverageFunctionDifference ( SmartPtr< GridFunction< TDomain, TAlgebra > >  spGridFct,
std::string  subset,
std::string  fct1,
std::string  fct2 
)

Calculates the average of the pointwise difference of two functions on given subset.

Iterates over all vertices of given subset, calculates difference of fct1 and fct2 and computes arithmetic mean of the differences at all vertices (grid points).

Note
fct1 and fct2 must both be defined on subset !
Parameters
[in]spGridFctGridFunction holding functions fct1 and fct2 defined on subset subset
[in]subsetname of the subset to compare on
[in]fct1name of the first function
[in]fct2name of the second function
Returns
arithmetic average of the pointwise differences of fct1 and fct2 on all vertices of subset

References DoFRef(), and PROFILE_FUNC.

◆ AveragePositions()

template<typename TPosition >
void ug::AveragePositions ( TPosition &  vOut,
const TPosition *  vCornerCoords,
size_t  num 
)

averages positions by arithmetic mean

Arithmetic Mean of Positions returns the arithmetic mean of positions

Parameters
[in]vCornerCoordspositions
[in]numnumber of positions
[out]vOutarithmetic mean of positions

Referenced by ug::FV1Geometry_gen< TElem, TWorldDim, TCondensed >::update(), ug::DimFV1Geometry< TDim, TWorldDim >::update(), ug::FV1IBGeometry< TElem, TWorldDim >::update(), ug::DimFV1IBGeometry< TDim, TWorldDim >::update(), ug::DimCRFVGeometry< TDim, TWorldDim >::update(), ug::CRFVGeometry< TElem, TWorldDim >::update(), ug::HFV1ManifoldGeometry< TElem, TWorldDim >::update(), ug::HCRFVGeometry< TElem, TWorldDim >::update(), ug::HFV1Geometry< TElem, TWorldDim >::update(), ug::DimHFV1Geometry< TDim, TWorldDim >::update(), ug::DimFV1Geometry< TDim, TWorldDim >::update_boundary_faces(), ug::FV1IBGeometry< TElem, TWorldDim >::update_boundary_faces(), ug::DimFV1IBGeometry< TDim, TWorldDim >::update_boundary_faces(), ug::DimCRFVGeometry< TDim, TWorldDim >::update_geometric_data(), ug::DimCRFVGeometry< TDim, TWorldDim >::update_hanging(), ug::DimFV1Geometry< TDim, TWorldDim >::update_local(), ug::FV1Geometry_gen< TElem, TWorldDim, TCondensed >::update_local_data(), ug::FV1IBGeometry< TElem, TWorldDim >::update_local_data(), ug::DimFV1IBGeometry< TDim, TWorldDim >::update_local_data(), ug::DimCRFVGeometry< TDim, TWorldDim >::update_local_data(), ug::CRFVGeometry< TElem, TWorldDim >::update_local_data(), ug::HCRFVGeometry< TElem, TWorldDim >::update_local_data(), ug::VTKOutput< TDim >::write_cell_data_elementwise(), and ug::VTKOutput< TDim >::write_cell_values_elementwise().

◆ backward_gs_step()

template<typename Matrix_type , typename Vector_type >
void ug::backward_gs_step ( Vector_type &  c,
const Matrix_type &  A,
const Vector_type &  d,
const size_t  i,
const number  relaxFactor 
)

◆ baseName()

◆ Bevel2d()

static int ug::Bevel2d ( const vector3 p)
static

References p.

Referenced by TriCubeIntersection().

◆ Bevel3d()

static int ug::Bevel3d ( const vector3 p)
static

References p.

Referenced by TriCubeIntersection().

◆ BlockDeserialize()

template<size_t Tr, size_t Tc>
bool ug::BlockDeserialize ( std::istream &  buff,
const DenseMatrix< FixedArray2< number, Tr, Tc > > &  mat 
)
inline

Referenced by Deserialize().

◆ BlockMatrixFiniteAndNotTooBig()

template<typename TBlock >
bool ug::BlockMatrixFiniteAndNotTooBig ( TBlock &  m,
double  tooBigValue = 1e24 
)

◆ BlockMatrixToDoubleMatrix()

template<typename TMatrix >
void ug::BlockMatrixToDoubleMatrix ( DenseMatrix< VariableArray2< double > > &  Ad,
TMatrix &  Ab 
)

References BlockRef().

Referenced by GetSliceDenseInverse().

◆ BlockMaxNorm() [1/3]

template<typename A >
double ug::BlockMaxNorm ( const DenseVector< A > &  v)
inline

References BlockMaxNorm().

◆ BlockMaxNorm() [2/3]

template<>
number ug::BlockMaxNorm ( const number a)
inline

◆ BlockMaxNorm() [3/3]

template<typename T >
number ug::BlockMaxNorm ( const T &  t)

◆ BlockNorm() [1/3]

template<>
number ug::BlockNorm ( const number a)
inline

◆ BlockNorm() [2/3]

template<typename T >
number ug::BlockNorm ( const T &  t)

◆ BlockNorm() [3/3]

◆ BlockNorm2() [1/5]

template<typename A >
double ug::BlockNorm2 ( const DenseMatrix< A > &  mat)
inline

References BlockNorm2().

◆ BlockNorm2() [2/5]

template<typename A >
double ug::BlockNorm2 ( const DenseVector< A > &  v)
inline

References BlockNorm2().

◆ BlockNorm2() [3/5]

template<>
number ug::BlockNorm2 ( const number a)
inline

◆ BlockNorm2() [4/5]

template<typename T >
number ug::BlockNorm2 ( const T &  t)

◆ BlockNorm2() [5/5]

template<typename TYPE >
double ug::BlockNorm2 ( const TYPE &  v)
inline

◆ BlockRef() [1/8]

template<>
const number& ug::BlockRef ( const number m,
size_t  i 
)
inline

References UG_ASSERT.

◆ BlockRef() [2/8]

template<>
const number& ug::BlockRef ( const number m,
size_t  i,
size_t  j 
)
inline

References UG_ASSERT.

◆ BlockRef() [3/8]

template<typename T >
const double & ug::BlockRef ( const T &  mat,
size_t  i,
size_t  j 
)
inline

◆ BlockRef() [4/8]

template<typename T >
const double & ug::BlockRef ( const T &  vec,
size_t  i 
)
inline

◆ BlockRef() [5/8]

template<>
number& ug::BlockRef ( number m,
size_t  i 
)
inline

References UG_ASSERT.

◆ BlockRef() [6/8]

template<>
number& ug::BlockRef ( number m,
size_t  i,
size_t  j 
)
inline

References UG_ASSERT.

◆ BlockRef() [7/8]

template<typename T >
double & ug::BlockRef ( T &  mat,
size_t  i,
size_t  j 
)
inline

◆ BlockRef() [8/8]

template<typename T >
double & ug::BlockRef ( T &  vec,
size_t  i 
)
inline

Referenced by ug::ActiveSet< TDomain, TAlgebra >::active_index_elem(), ug::LocalToGlobalMapperNLGS< TAlgebra >::add_local_mat_to_global(), ug::LocalToGlobalMapperNLGS< TAlgebra >::add_local_vec_to_global(), AddLocalMatrixToGlobal(), AddLocalVector(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ScalarLowerObstacle< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ScalarUpperObstacle< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ScalarLowerObstacle< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::ScalarUpperObstacle< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_sol_and_cor_elem(), BlockMatrixFiniteAndNotTooBig(), BlockMatrixToDoubleMatrix(), BlockVectorFiniteAndNotTooBig(), ug::AnalyzingSolver< M, X, Y >::check(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::SchurComplementOperator< TAlgebra >::compute_matrix(), DoFRef(), ug::IExternalSolver< TAlgebra >::get_vector(), ug::ILUTScalarPreconditioner< TAlgebra >::get_vector(), GetBlockGSCorrection(), GetBlockGSCorrectionILUT(), GetDoubleFromSparseBlock(), GetLocalVector(), GetSliceSparse(), IsDirichletRow(), MatAddNonDirichlet(), MatExtractDiagOnLayout(), MatWriteDiagOnLayout(), ScalarMatrixAdapter< AT, ST >::operator()(), ScalarSubMatrixAdapter< AT, ST, R, C >::operator()(), ug::ScalarSubVectorAdapter< InVT, ST >::operator[](), ScalarVectorAdapter< AT, ST >::operator[](), ug::ConstScalarSubVectorAdapter< InVT, ST >::operator[](), ug::IProjGaussSeidel< TDomain, TAlgebra >::project_correction(), ug::AssemblingTuner< TAlgebra >::set_dirichlet_val(), ug::ScalarSubVectorAdapter< InVT, ST >::set_random(), ug::Vector< TValueType >::set_random(), ug::IExternalSolver< TAlgebra >::set_vector(), ug::ILUTScalarPreconditioner< TAlgebra >::set_vector(), SetCol(), SetDirichletRow(), SetRow(), ug::LU< TAlgebra >::solve_dense(), SplitAddRow_Symmetric(), ug::GridFunctionVectorWriter< TGridFunction, TVector >::update(), ScalarMatrixAdapter< AT, ST >::row_iterator::value(), ScalarSubMatrixAdapter< AT, ST, R, C >::row_iterator::value(), ScalarMatrixAdapter< AT, ST >::const_row_iterator::value(), and ScalarSubMatrixAdapter< AT, ST, R, C >::const_row_iterator::value().

◆ BlockSerialize()

template<size_t Tr, size_t Tc>
bool ug::BlockSerialize ( const DenseMatrix< FixedArray2< number, Tr, Tc > > &  mat,
std::ostream &  buff 
)
inline

Referenced by Serialize().

◆ BlockVectorFiniteAndNotTooBig()

template<typename TBlock >
bool ug::BlockVectorFiniteAndNotTooBig ( TBlock &  v,
double  tooBigValue = 1e24 
)

References BlockRef(), and GetSize().

Referenced by IsFiniteAndNotTooBig().

◆ BlurField()

template<class T >
void ug::BlurField ( Field< T > &  field,
number  alpha,
size_t  numIterations,
const T &  noDataValue 
)

Smoothens the field by adjusting the value of each pixel towards the average of its neighbours.

The value type T has to support operators += and *= and = 0

References alpha, ug::Field< T >::at(), ug::Field< T >::height(), and ug::Field< T >::width().

Referenced by ug::Heightfield::blur(), and ug::RasterLayers::blur_layers().

◆ bp_defect_and_gradient()

◆ bp_newton_start_pos()

◆ BroadcastGrid()

void ug::BroadcastGrid ( Grid gridOut,
Selector sel,
GridDataSerializationHandler serializer,
GridDataSerializationHandler deserializer,
int  root,
const pcl::ProcessCommunicator procCom = pcl::ProcessCommunicator() 
)

Broadcasts the specified Selection from 'root' to all processes in procCom.

Selected elements and associated attachments are broadcasted from 'root' to all processes in procCom (including 'root').

Parameters
serializerHas to operate on 'sel.grid()'. It is responsible to serialize e.g. attachments, subset-handlers or selectors.
deserializerHas to operate on 'gridOut'. It has to contain exactly the same components as 'serializer', except that all components have to operate on 'gridOut', too.
Note
In order to make sure that all required sides and vertices of selected elements are broadcasted, the given selector may be adjusted.

References pcl::ProcessCommunicator::broadcast(), ug::Grid::clear_geometry(), ug::GridDataSerializationHandler::deserialize(), Deserialize(), DeserializeGridElements(), ug::Grid::get_grid_objects(), ug::Selector::get_grid_objects(), ug::ISelector::grid(), pcl::ProcRank(), ug::GridDataSerializationHandler::read_infos(), SelectAssociatedGridObjects(), ug::GridDataSerializationHandler::serialize(), Serialize(), SerializeGridElements(), UG_COND_THROW, and ug::GridDataSerializationHandler::write_infos().

Referenced by ug::OverlyingSubsetFinder< TDomain >::OverlyingSubsetFinder().

◆ BroadcastVectorFromOne() [1/2]

◆ BroadcastVectorFromOne() [2/2]

template<typename T >
void ug::BroadcastVectorFromOne ( IndexLayout agglomeratedMaster,
IndexLayout agglomeratedSlave,
pcl::InterfaceCommunicator< IndexLayout > &  com,
ParallelVector< T > &  vec,
const ParallelVector< T > &  collectedVec,
ParallelStorageType  type,
bool  bRoot 
)

broadcasts the vector collectedVec to the distributed vec

Parameters
agglomeratedMastermaster agglomeration layout. only nonempty if bRoot=true
agglomeratedSlaveslave agglomeration layout. only nonempty if bRoot=false
com
vec(output) the distributed vec
collectedVec(input) collectedVec
typecan be PST_ADDITIVE or PST_CONSISTENT
bRoot

!! WRONG !!! SetLayoutValues(&vec, vec.layouts()->slave(), 0.0); //!!!

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::ParallelVector< TVector >::get_storage_type(), ug::ParallelVector< TVector >::has_storage_type(), PROFILE_FUNC_GROUP, PST_ADDITIVE, PST_CONSISTENT, pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), ug::ParallelVector< TVector >::set_storage_type(), UG_CATCH_THROW, UG_COND_THROW, and UG_THROW.

◆ BuildDomainDecompositionLayouts()

void ug::BuildDomainDecompositionLayouts ( IndexLayout subdomMastersOut,
IndexLayout subdomSlavesOut,
IndexLayout processMastersOut,
IndexLayout processSlavesOut,
IndexLayout deltaNbrMastersOut,
IndexLayout deltaNbrSlavesOut,
IndexLayout crossPointMastersOut,
IndexLayout crossPointSlavesOut,
const IndexLayout standardMasters,
const IndexLayout standardSlaves,
int  highestReferencedIndex,
pcl::IDomainDecompositionInfo ddinfo 
)

Given standard master and slave index layouts (as created e.g. by ug::CreateIndexLayout), this method constructs layouts as required by domain decomposition methods such as the Feti solver.

Note that the created layouts are horizontal layouts which allow to communicate between neighbours of the same subdomain (process-layouts), between neighbours in different subdomains (subdom-layouts) and between neighbours in the same subdomain, which lie in a subdomain layout (deltaNbr-layouts).

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), CommunicateConnections(), CopyInterfaceEntrysToDomainDecompositionLayouts(), pcl::SingleLevelLayout< TInterface >::end(), pcl::IDomainDecompositionInfo::map_proc_id_to_subdomain_id(), pcl::SingleLevelLayout< TInterface >::proc_id(), pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::FetiLayouts< TAlgebra >::create_layouts().

◆ BuildOneToManyLayout()

int ug::BuildOneToManyLayout ( IndexLayout masterLayoutOut,
IndexLayout slaveLayoutOut,
int  rootProcID,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::ProcessCommunicator  procComm,
std::vector< int > *  pNewMasterIDsOut = NULL 
)

given a layout which defines relations between neighbours, this method creates a layout which connect the elements in the given layouts with newly created elements on a root process and establishes a OneToMany connection.

All newly created elements will be contained in the masterInterfaceOut on rootProc. The associated vector-indices are assigned so that the work with a mxm matrix, where m is the returned number of newly created elements.

Parameters
pNewMasterIDsOut(out)an optional vector to which the associated new element ids for each element in the given masterLayout and slaveLayout will be written. If not large enough it will be resized to the highest referenced index and will contain -1 in each entry which is not referenced by masterLayout or slaveLayout.
Returns
the number of newly created elements (!= 0 only on rootProc).

References pcl::CollectUniqueElements(), pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::SingleLevelLayout< TInterface >::empty(), pcl::ProcessCommunicator::gather(), pcl::ProcessCommunicator::gatherv(), pcl::ProcessCommunicator::get_proc_id(), GetHighestReferencedIndex(), PCL_DT_INT, pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back(), pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), and pcl::ProcessCommunicator::size().

Referenced by ug::PrimalSubassembledMatrixInverse< TAlgebra >::init().

◆ CalcTotalMem()

void ug::CalcTotalMem ( const Shiny::ProfileNode *  p)

References p, selfmem, and totalmem.

Referenced by UpdateTotalMem().

◆ CalculateAngles() [1/3]

template<class TAAPosVRT >
void ug::CalculateAngles ( vector< number > &  vAnglesOut,
Grid grid,
Face f,
TAAPosVRT &  aaPos 
)

Face.

in the current implementation this method requires, that all edges are created for all faces. TODO: improve this!

References CollectAssociatedSides(), ug::Grid::enable_options(), GRIDOPT_AUTOGENERATE_SIDES, LOG, ug::FaceVertices::num_vertices(), ug::Grid::option_is_enabled(), PI, VecDot(), VecNormalize(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

◆ CalculateAngles() [2/3]

template<class TElem , class TAAPosVRT >
number ug::CalculateAngles ( vector< number > &  vAnglesOut,
Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateAngles() [3/3]

template<class TAAPosVRT >
void ug::CalculateAngles ( vector< number > &  vAnglesOut,
Grid grid,
Volume v,
TAAPosVRT &  aaPos 
)

◆ CalculateAspectRatio() [1/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Face face,
TAAPosVRT &  aaPos 
)

◆ CalculateAspectRatio() [2/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Hexahedron hex,
TAAPosVRT &  aaPos 
)

◆ CalculateAspectRatio() [3/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Pyramid pyr,
TAAPosVRT &  aaPos 
)

◆ CalculateAspectRatio() [4/8]

◆ CalculateAspectRatio() [5/8]

template<class TElem , class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateAspectRatio() [6/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateAspectRatio() [7/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Triangle tri,
TAAPosVRT &  aaPos 
)

Triangles and Constrained Triangles.

References CalculateMinTriangleHeight(), CollectAssociated(), EdgeLength(), and FindLongestEdge().

◆ CalculateAspectRatio() [8/8]

template<class TAAPosVRT >
number ug::CalculateAspectRatio ( Grid grid,
Volume vol,
TAAPosVRT &  aaPos 
)

◆ CalculateAverageCurvature()

template<class TAAPosVRT >
number ug::CalculateAverageCurvature ( Grid grid,
SubsetHandler shMarks,
Edge e,
TAAPosVRT &  aaPos 
)

◆ CalculateBoundingBox() [1/2]

template<class TElem , class TAAPos >
AABox<typename TAAPos::ValueType> ug::CalculateBoundingBox ( TElem *  e,
TAAPos  aaPos 
)

calculates the smallest axis aligned box that contains the given element

◆ CalculateBoundingBox() [2/2]

◆ CalculateBoundingSphere()

template<class TAAPos >
Sphere<typename TAAPos::ValueType> ug::CalculateBoundingSphere ( FaceVertices face,
TAAPos  aaPos 
)

◆ CalculateConstrainedSmoothVolumePosInTopLevel()

void ug::CalculateConstrainedSmoothVolumePosInTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
APosition aSmoothVolPos_toc 
)

Toplevel vertex smoothing function for subdivision volumes refinement.

This function calculates the smoothed positions of all toplevel vertices determined by the constrained subdivision volumes refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aSmoothVolPos_tocreference to aSmoothVolPos_toc

References aPosition, ug::MultiGrid::begin(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), g_boundaryRefinementRule, ug::Volume::get_opposing_object(), ug::ISubsetHandler::get_subset_index(), GetVertexIndex(), ug::DistributedGridManager::is_ghost(), ug::VolumeVertices::num_vertices(), p, PCL_RO_SUM, ug::Volume::reference_object_id(), ROID_OCTAHEDRON, ROID_TETRAHEDRON, SUBDIV_VOL, ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::VolumeVertices::vertex().

Referenced by ApplySmoothVolumePosToTopLevel().

◆ CalculateCreaseNormal() [1/2]

template<class TAAPosVRT >
TAAPosVRT::ValueType ug::CalculateCreaseNormal ( Grid grid,
Face f,
Vertex vrt,
Grid::edge_traits::callback  funcIsCreaseEdge,
TAAPosVRT &  aaPos 
)

returns true if the vertex lies on a surface.

This method uses Grid::mark.

This method tries to find a closed surface around the vertex. Note that it returns true, even if the vertex lies on a boundary edge at the same time (this can happen if surfaces intersect each other).

Requires the option FACEOPT_AUTOGENERATE_EDGES. calculates the normal of the crease vertex vrt on the side of f This algorithm uses grid::mark. f has to contain vrt. vrt has to have at least two associated crease edges.

Note that the resulting normal is not normalized. This is important, since rounding errors could else lead to problems with normals which have a length of nearly 0.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References ug::Grid::begin_marking(), CalculateCenter(), CollectEdges(), CollectFaces(), DropAPerpendicular(), EdgeContains(), ug::Grid::enable_options(), ug::Grid::end_marking(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::is_marked(), ug::Grid::mark(), ug::Grid::option_is_enabled(), p, UG_LOG, VecAdd(), VecNormalize(), VecSet(), VecSubtract(), and ug::EdgeVertices::vertex().

◆ CalculateCreaseNormal() [2/2]

template<class TAAPosVRT >
TAAPosVRT::ValueType ug::CalculateCreaseNormal ( Grid grid,
Volume vol,
Vertex vrt,
Grid::face_traits::callback  funcIsCreaseFace,
TAAPosVRT &  aaPos 
)

calculates the normal of the crease vertex vrt on the side of vol

This algorithm uses grid::mark. vol has to contain vrt. vrt has to have at least two associated crease faces.

Note that the resulting normal is not normalized. This is important, since rounding errors could else lead to problems with normals which have a length of nearly 0.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References ug::Grid::begin_marking(), CalculateNormal(), CollectVolumes(), ug::Grid::enable_options(), ug::Grid::end_marking(), ug::Volume::face_desc(), FaceContains(), ug::Grid::get_side(), ug::Grid::is_marked(), ug::Grid::mark(), ug::Volume::num_sides(), ug::Grid::option_is_enabled(), UG_LOG, VecSet(), VecSubtract(), and VOLOPT_AUTOGENERATE_FACES.

Referenced by ExpandFractures2d(), and ExpandFractures3d().

◆ CalculateLengthFac()

template<class TAAPosVRT >
number ug::CalculateLengthFac ( Grid grid,
SubsetHandler shMarks,
Edge e,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxAngle() [1/6]

template<class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
Face f,
TAAPosVRT &  aaPos 
)

Face (Triangles and Quadrilaterals)

in the current implementation this method requires, that all edges are created for all faces. TODO: improve this!

References CollectAssociatedSides(), ug::Grid::enable_options(), GRIDOPT_AUTOGENERATE_SIDES, LOG, ug::FaceVertices::num_vertices(), ug::Grid::option_is_enabled(), PI, VecDot(), VecNormalize(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

◆ CalculateMaxAngle() [2/6]

template<class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
Prism prism,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxAngle() [3/6]

template<class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
Pyramid pyr,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxAngle() [4/6]

template<class TElem , class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateMaxAngle() [5/6]

template<class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxAngle() [6/6]

template<class TAAPosVRT >
number ug::CalculateMaxAngle ( Grid grid,
Volume vol,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxDihedral() [1/5]

template<class TAAPosVRT >
number ug::CalculateMaxDihedral ( Grid grid,
Prism prism,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxDihedral() [2/5]

template<class TAAPosVRT >
number ug::CalculateMaxDihedral ( Grid grid,
Pyramid pyr,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxDihedral() [3/5]

template<class TElem , class TAAPosVRT >
number ug::CalculateMaxDihedral ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateMaxDihedral() [4/5]

template<class TAAPosVRT >
number ug::CalculateMaxDihedral ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateMaxDihedral() [5/5]

template<class TAAPosVRT >
number ug::CalculateMaxDihedral ( Grid grid,
Volume v,
TAAPosVRT &  aaPos 
)

◆ CalculateMinAngle() [1/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Face f,
TAAPosVRT &  aaPos 
)

Face (Triangles and Quadrilaterals)

in the current implementation this method requires, that all edges are created for all faces. TODO: improve this!

References CollectAssociatedSides(), ug::Grid::enable_options(), GRIDOPT_AUTOGENERATE_SIDES, LOG, ug::FaceVertices::num_vertices(), ug::Grid::option_is_enabled(), PI, VecDot(), VecNormalize(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

◆ CalculateMinAngle() [2/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Hexahedron hex,
TAAPosVRT &  aaPos 
)

◆ CalculateMinAngle() [3/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Prism prism,
TAAPosVRT &  aaPos 
)

◆ CalculateMinAngle() [4/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Pyramid pyr,
TAAPosVRT &  aaPos 
)

◆ CalculateMinAngle() [5/7]

template<class TElem , class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateMinAngle() [6/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateMinAngle() [7/7]

template<class TAAPosVRT >
number ug::CalculateMinAngle ( Grid grid,
Volume vol,
TAAPosVRT &  aaPos 
)

◆ CalculateMinCurvature()

template<class TAAPosVRT >
number ug::CalculateMinCurvature ( Grid grid,
SubsetHandler shMarks,
Vertex vrt,
TAAPosVRT &  aaPos 
)

◆ CalculateMinDihedral() [1/6]

template<class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
Hexahedron hex,
TAAPosVRT &  aaPos 
)

◆ CalculateMinDihedral() [2/6]

template<class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
Prism prism,
TAAPosVRT &  aaPos 
)

◆ CalculateMinDihedral() [3/6]

template<class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
Pyramid pyr,
TAAPosVRT &  aaPos 
)

◆ CalculateMinDihedral() [4/6]

template<class TElem , class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateMinDihedral() [5/6]

template<class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateMinDihedral() [6/6]

template<class TAAPosVRT >
number ug::CalculateMinDihedral ( Grid grid,
Volume v,
TAAPosVRT &  aaPos 
)

◆ CalculateMinTriangleHeight()

template<class TAAPosVRT >
number ug::CalculateMinTriangleHeight ( Face face,
TAAPosVRT &  aaPos 
)

◆ CalculateNormal() [1/2]

vector2 ug::CalculateNormal ( EdgeVertices edge,
Grid::AttachmentAccessor< Vertex, Attachment< vector2 > > &  aaPos 
)
inline

◆ CalculateNormal() [2/2]

vector3 ug::CalculateNormal ( FaceVertices face,
Grid::AttachmentAccessor< Vertex, Attachment< vector3 > > &  aaPos 
)
inline

References CalculateNormal().

◆ CalculateNormalDot() [1/2]

template<class TVertexPositionAccessor >
number ug::CalculateNormalDot ( TriangleDescriptor td1,
TriangleDescriptor td2,
TVertexPositionAccessor &  aaPos 
)

◆ CalculateNormalDot() [2/2]

template<class TVertexPositionAccessor >
static number ug::CalculateNormalDot ( TriangleDescriptor td1,
TriangleDescriptor td2,
TVertexPositionAccessor &  aaPos 
)
static

◆ CalculateNumElemsVertexAttachmentInTopLevel()

void ug::CalculateNumElemsVertexAttachmentInTopLevel ( MultiGrid mg,
AInt aNumElems_toc,
AInt aNumElems_prism,
AInt aNumElems_hex 
)

Function for calculating the number of associated volumes of all toplevel vertices.

This function calculates the number of associated volumes for all toplevel vertices.

Parameters
mgreference to MultiGrid
aNumElems_tocreference to aNumElems_toc
aNumElems_prismreference to aNumElems_prism
aNumElems_hexreference to aNumElems_hex

References ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::VolumeVertices::num_vertices(), PCL_RO_SUM, ug::Volume::reference_object_id(), ROID_HEXAHEDRON, ROID_OCTAHEDRON, ROID_PRISM, ROID_TETRAHEDRON, ug::MultiGrid::top_level(), UG_THROW, and ug::VolumeVertices::vertex().

Referenced by ApplySmoothVolumePosToTopLevel(), and CheckValences().

◆ CalculateNumManifoldEdgesVertexAttachmentInParentLevel()

void ug::CalculateNumManifoldEdgesVertexAttachmentInParentLevel ( MultiGrid mg,
MGSubsetHandler markSH,
AInt aNumManifoldEdges,
bool  bCreaseSurf 
)

Function for calculating the number of associated manifold edges of all parent level vertices.

This function calculates the number of associated manifold edges for all parent level vertices.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aNumManifoldEdgesreference to aNumManifoldEdges
bCreaseSurfbool switch for crease surfaces in case of subdivision refinement by C. Loop, 1987 handling the boundary polylines separately

References pcl::ProcessCommunicator::allreduce(), ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ES_H_SLAVE, pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, PCL_RO_SUM, ug::MultiGrid::top_level(), UG_THROW, and ug::EdgeVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelButterflyScheme(), and ApplySmoothManifoldPosToTopLevelLoopScheme().

◆ CalculateNumManifoldFacesVertexAttachmentInTopLevel()

void ug::CalculateNumManifoldFacesVertexAttachmentInTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
AInt aNumManifoldFaces_tri,
AInt aNumManifoldFaces_quad 
)

Function for calculating the number of associated manifold faces of all toplevel manifold vertices.

This function calculates the number of of associated manifold faces (triangles and quadrilaterals) for all toplevel vertices.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aNumManifoldFaces_trireference to aNumManifoldFaces_tri
aNumManifoldFaces_quadreference to aNumManifoldFaces_quad

References ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::FaceVertices::num_vertices(), PCL_RO_SUM, ug::Face::reference_object_id(), ROID_QUADRILATERAL, ROID_TRIANGLE, ug::MultiGrid::top_level(), UG_THROW, and ug::FaceVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelAveragingScheme().

◆ CalculatePolychainEdgeNormals()

void ug::CalculatePolychainEdgeNormals ( vector2 edgeNormalsOut,
vector2 polyChain,
size_t  polyChainSize,
bool  bOuterNormals 
)

Make sure that edgeNormalsOut has the same size as poly-chain. The poly-chain is treated as a closed poly-chain where an edge between the last and the first entry exists.

References VecDot(), VecNormalize(), and VecSubtract().

Referenced by TriangleFill().

◆ CalculateRightBendVal()

number ug::CalculateRightBendVal ( vector2 dirOut,
number normDotOut,
SweepLineEdge e,
SweepLineVertex firstVrt,
vector2  lastDir,
bool  lastDirNormalized = false 
)

returns a value between -1 and 1, determining the magnitude of the right bend.

(-1, 0): left bend, 0: no bend, (0, 1): right bend

References ug::SweepLineEdge::direction(), ug::SweepLineEdge::m_v1, VecDot(), VecNormalize(), and VecScale().

Referenced by CreateSweepLineStructs(), and TriangleFill_SweepLine().

◆ CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme()

template<class TAPosition >
void ug::CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
TAPosition &  aSmoothBndPosEvenVrt,
TAPosition &  aSmoothBndPosOddVrt,
AInt aNumManifoldEdges 
)

Parent level vertex smoothing function for subdivision crease surfaces refinement (by C. Loop, 1987)

This function calculates the smoothed positions of all parent level vertices determined by the subdivision surfaces refinement for crease surfaces handling the crease polylines separately

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosEvenVrtreference to aSmoothBndPosEvenVrt
aSmoothBndPosOddVrtreference to aSmoothBndPosOddVrt
aNumManifoldEdgesreference to aNumManifoldEdges

References pcl::ProcessCommunicator::allreduce(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::MultiGrid::begin(), CollectAssociated(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ElementDebugInfo(), ug::MultiGrid::end(), ES_H_SLAVE, ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), ug::SubdivRules_PLoop::inst(), ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), boost::num_vertices(), pcl::NumProcs(), p, PCL_RO_MAX, PCL_RO_SUM, ug::SubdivRules_PLoop::ref_even_inner_center_weight(), ug::SubdivRules_PLoop::ref_even_inner_nbr_weight(), ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), and VecSet().

Referenced by ApplySmoothManifoldPosToTopLevelLoopScheme().

◆ CalculateSmoothManifoldPosInParentLevelButterflyScheme()

template<class TAPosition >
void ug::CalculateSmoothManifoldPosInParentLevelButterflyScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
TAPosition &  aSmoothBndPosOddVrt,
AInt aNumManifoldEdges 
)

Parent level vertex smoothing function for subdivision surfaces refinement (Butterfly scheme)

This function calculates the smoothed positions of all parent level vertices determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosOddVrtreference to aSmoothBndPosOddVrt
aNumManifoldEdgesreference to aNumManifoldEdges

References pcl::ProcessCommunicator::allreduce(), ug::MultiGrid::begin(), CollectAssociated(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), EDGE, ElementDebugInfo(), ug::MultiGrid::end(), ES_H_SLAVE, ug::Grid::get_edge(), ug::Face::get_opposing_object(), ug::Edge::get_opposing_side(), ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), GetEdgeIndex(), GetNeighbours(), ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), boost::num_vertices(), pcl::NumProcs(), p, PCL_RO_MAX, PCL_RO_SUM, PI, ug::MultiGrid::top_level(), UG_LOG, UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::EdgeVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelButterflyScheme().

◆ CalculateSmoothManifoldPosInParentLevelLoopScheme()

template<class TAPosition >
void ug::CalculateSmoothManifoldPosInParentLevelLoopScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
TAPosition &  aSmoothBndPosEvenVrt,
TAPosition &  aSmoothBndPosOddVrt,
AInt aNumManifoldEdges 
)

Parent level vertex smoothing function for subdivision surfaces refinement (by C. Loop, 1987)

This function calculates the smoothed positions of all parent level vertices determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosEvenVrtreference to aSmoothBndPosEvenVrt
aSmoothBndPosOddVrtreference to aSmoothBndPosOddVrt
aNumManifoldEdgesreference to aNumManifoldEdges

References pcl::ProcessCommunicator::allreduce(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::MultiGrid::begin(), CollectAssociated(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ElementDebugInfo(), ug::MultiGrid::end(), ES_H_SLAVE, ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), ug::SubdivRules_PLoop::inst(), ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), boost::num_vertices(), pcl::NumProcs(), p, PCL_RO_MAX, PCL_RO_SUM, ug::SubdivRules_PLoop::ref_even_inner_center_weight(), ug::SubdivRules_PLoop::ref_even_inner_nbr_weight(), ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), and VecSet().

Referenced by ApplySmoothManifoldPosToTopLevelLoopScheme().

◆ CalculateSmoothManifoldPosInTopLevelAveragingScheme()

template<class TAPosition >
void ug::CalculateSmoothManifoldPosInTopLevelAveragingScheme ( MultiGrid mg,
TAPosition &  aPos,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
TAPosition &  aSmoothBndPos_tri,
TAPosition &  aSmoothBndPos_quad 
)

Toplevel vertex smoothing function for subdivision surfaces refinement (Averaging scheme)

This function calculates the smoothed positions of all toplevel vertices determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPos_trireference to aSmoothBndPos_tri
aSmoothBndPos_quadreference to aSmoothBndPos_quad

References ug::MultiGrid::begin(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::is_ghost(), ug::FaceVertices::num_vertices(), p, PCL_RO_SUM, ug::Face::reference_object_id(), ROID_QUADRILATERAL, ROID_TRIANGLE, ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::FaceVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelAveragingScheme().

◆ CalculateSmoothVolumePosInTopLevel()

void ug::CalculateSmoothVolumePosInTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
APosition aSmoothVolPos_toc,
APosition aSmoothVolPos_prism,
APosition aSmoothVolPos_hex 
)

Toplevel vertex smoothing function for subdivision volumes refinement.

This function calculates the smoothed positions of all toplevel vertices determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aSmoothVolPos_tocreference to aSmoothVolPos_toc
aSmoothVolPos_prismreference to aSmoothVolPos_prism
aSmoothVolPos_hexreference to aSmoothVolPos_hex

References aPosition, ug::MultiGrid::begin(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), g_boundaryRefinementRule, ug::Volume::get_opposing_object(), ug::ISubsetHandler::get_subset_index(), GetVertexIndex(), ug::DistributedGridManager::is_ghost(), ug::VolumeVertices::num_vertices(), p, PCL_RO_SUM, ug::Volume::reference_object_id(), ROID_HEXAHEDRON, ROID_OCTAHEDRON, ROID_PRISM, ROID_TETRAHEDRON, SUBDIV_VOL, ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::VolumeVertices::vertex().

Referenced by ApplySmoothVolumePosToTopLevel().

◆ CalculateTriangleNormal()

void ug::CalculateTriangleNormal ( SimpleGrid sg,
int  triIndex 
)

caculates the normal of the given triangle and stores it in sg.triangleNormals[triIndex]

Make sure that sg.triangleNormas and sg.triangles have the right sizes.

References ug::SimpleGrid::triangleNormals, ug::SimpleGrid::triangles, and ug::SimpleGrid::vertices.

Referenced by CalculateTriangleNormals(), and SwapEdge().

◆ CalculateTriangleNormals()

void ug::CalculateTriangleNormals ( SimpleGrid sg)

◆ CalculateVolToRMSFaceAreaRatio() [1/5]

template<class TAAPosVRT >
number ug::CalculateVolToRMSFaceAreaRatio ( Grid grid,
Face face,
TAAPosVRT &  aaPos 
)

Face (Triangles and Constrained Triangles supported)

References UG_THROW.

◆ CalculateVolToRMSFaceAreaRatio() [2/5]

template<class TAAPosVRT >
number ug::CalculateVolToRMSFaceAreaRatio ( Grid grid,
Hexahedron hex,
TAAPosVRT &  aaPos 
)

◆ CalculateVolToRMSFaceAreaRatio() [3/5]

template<class TElem , class TAAPosVRT >
number ug::CalculateVolToRMSFaceAreaRatio ( Grid grid,
TElem *  elem,
TAAPosVRT &  aaPos 
)

An unimplemented version, so that a compile error occurs if no overload exists.

◆ CalculateVolToRMSFaceAreaRatio() [4/5]

template<class TAAPosVRT >
number ug::CalculateVolToRMSFaceAreaRatio ( Grid grid,
Tetrahedron tet,
TAAPosVRT &  aaPos 
)

◆ CalculateVolToRMSFaceAreaRatio() [5/5]

template<class TAAPosVRT >
number ug::CalculateVolToRMSFaceAreaRatio ( Grid grid,
Volume vol,
TAAPosVRT &  aaPos 
)

◆ cgetrf_()

void ug::cgetrf_ ( lapack_int m,
lapack_int n,
std::complex< lapack_float > *  pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

◆ cgetrs_()

void ug::cgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const std::complex< lapack_float > *  pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
std::complex< lapack_float > *  b,
lapack_int ldb,
lapack_int info 
)

◆ Chebyshev1Poly()

number ug::Chebyshev1Poly ( size_t  k,
number  x 
)

returns the values of the Chebyshev polynomials of the first kind

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \frac{1}{\sqrt {1 - x^2}} \, dx \) They satisfy the recursion \(T_0 (x) = 1\), \(T_1 (1) = x\), \(T_k (x) = 2 x P_{k-1} (x) - P_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\) for \(k > 0\) and \(\pi\) for \(k = 0\).

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

Referenced by NormalizedChebyshev1Poly(), and ug::bridge::RegisterBridge_OrthoPoly().

◆ Chebyshev2Poly()

number ug::Chebyshev2Poly ( size_t  k,
number  x 
)

returns the values of the Chebyshev polynomials of the second kind

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \sqrt {1 - x^2} \, dx \) They satisfy the recursion \(U_0 (x) = 1\), \(U_1 (1) = 2 x\), \(U_k (x) = 2 x U_{k-1} (x) - U_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\).

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

Referenced by NormalizedChebyshev2Poly(), and ug::bridge::RegisterBridge_OrthoPoly().

◆ check_subset_strings()

void ug::check_subset_strings ( std::vector< std::string >  s)
inline

◆ CheckDoFElem()

template<typename TDomain , typename TBaseElem >
bool ug::CheckDoFElem ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

◆ CheckDoFPositions() [1/2]

template<typename TFunction >
bool ug::CheckDoFPositions ( const TFunction &  u)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References CheckDoFPositions().

◆ CheckDoFPositions() [2/2]

template<typename TDomain >
bool ug::CheckDoFPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd 
)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References EDGE, FACE, VERTEX, and VOLUME.

Referenced by CheckDoFPositions().

◆ CheckEnoughTimePassedToNow()

bool ug::CheckEnoughTimePassedToNow ( ProfileCall &  pc,
Shiny::tick_t  tnow 
)

◆ CheckForUnconnectedSides()

bool ug::CheckForUnconnectedSides ( Grid grid)

Logs all unconnected sides to UG_ERR_LOG and returns true if an unconnected side was found.

References ug::Grid::num().

Referenced by ug::bridge::RegisterGridBridge_Debug().

◆ CheckForUnconnectedSidesIMPL()

template<class TSide >
static bool ug::CheckForUnconnectedSidesIMPL ( Grid grid)
static

◆ CheckGFforNaN() [1/3]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFforNaN ( const TGridFunction *  u,
const char *  fct_names 
)

Checks values of a grid function at given elements (like vertices) for nan and inf

This version takes symbolic data.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fct_namesnames of the functions

References ug::FunctionGroup::add(), TokenizeString(), and UG_LOG.

◆ CheckGFforNaN() [2/3]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFforNaN ( const TGridFunction *  u,
const FunctionGroup fctGroup 
)

Checks values of a grid function at given elements (like vertices) for nan and inf

This version takes a function group.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctGroupnames of the functions

References ug::FunctionGroup::size(), and UG_LOG.

◆ CheckGFforNaN() [3/3]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFforNaN ( const TGridFunction *  u,
size_t  fct 
)

Checks values of a grid function at given elements (like vertices) for nan and inf

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctindex of the function

References DoFRef(), UG_LOG, and UG_THROW.

◆ CheckGFValuesWithinBounds() [1/3]

template<typename TGridFunction >
bool ug::CheckGFValuesWithinBounds ( ConstSmartPtr< TGridFunction >  u,
const char *  fctNames,
number  lowerBnd,
number  upperBnd 
)
Parameters
uthe grid function
fctNamesthe functions to be checked

References ug::FunctionGroup::add(), CheckGFValuesWithinBounds(), ug::FunctionGroup::size(), TokenizeTrimString(), and UG_CATCH_THROW.

◆ CheckGFValuesWithinBounds() [2/3]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFValuesWithinBounds ( ConstSmartPtr< TGridFunction >  u,
size_t  cmp,
number  lowerBnd,
number  upperBnd 
)
Parameters
uthe grid function
cmpthe function component to be checked

References pcl::ProcessCommunicator::allreduce(), DoFRef(), ElementDebugInfo(), pcl::NumProcs(), PCL_RO_BAND, and UG_LOG_ALL_PROCS.

Referenced by CheckGFValuesWithinBounds().

◆ CheckGFValuesWithinBounds() [3/3]

template<typename TGridFunction >
bool ug::CheckGFValuesWithinBounds ( ConstSmartPtr< TGridFunction >  u,
size_t  cmp,
number  lowerBnd,
number  upperBnd 
)
Parameters
uthe grid function
cmpthe function component to be checked

◆ CheckHangingNodeConstrainingFace()

template<typename T >
void ug::CheckHangingNodeConstrainingFace ( bool  isConsistent,
Grid g,
iter,
end 
)

◆ CheckLine()

static int ug::CheckLine ( const vector3 p1,
const vector3 p2,
int  outcode_diff 
)
static

References CheckPoint(), INSIDE, and OUTSIDE.

Referenced by TriCubeIntersection().

◆ CheckLocalParentTypes()

◆ CheckLuaCallbackName()

bool ug::CheckLuaCallbackName ( const char *  name)

returns true if callback exists

References ug::script::GetDefaultLuaState(), and name.

◆ CheckMultiGridConsistencyImpl()

◆ CheckOrientation()

template<class TAAPosVRT >
bool ug::CheckOrientation ( Volume vol,
TAAPosVRT &  aaPosVRT 
)

returns true if the volume is oriented so that all sides point to this outside.

Please note that special cases may exist in which the current implementation may not return the correct result. This could be true for badly shaped Hexahedrons or for degenerated elements (elements which have a side-face, which has no height and thus resembles a line-segment).

The current implementation checks if all face-normals point away from the geometrical center.

Todo:
this method could be improved by adding specialised versions for the different volume types.

References CalculateCenter(), CalculateNormal(), ug::Volume::face_desc(), ug::Volume::num_faces(), VecDot(), and VecSubtract().

Referenced by ExtrusionHelper_CheckOrientation(), and FixOrientation().

◆ CheckPermutationBijective()

bool ug::CheckPermutationBijective ( const std::vector< size_t > &  perm)

References UG_COND_THROW.

Referenced by ComputeCuthillMcKeeOrder().

◆ CheckPoint()

static int ug::CheckPoint ( const vector3 p1,
const vector3 p2,
number  alpha,
long  mask 
)
static

References alpha, FacePlane(), and LERP.

Referenced by CheckLine().

◆ checksub()

◆ CheckValences()

void ug::CheckValences ( MultiGrid mg,
MGSubsetHandler markSH,
const char *  filename 
)

◆ ClearAbortRunFlag()

UG_API void ug::ClearAbortRunFlag ( )

clears the abort-run-flag.

References s_abortRun.

Referenced by ug::bridge::RegisterBridge_Misc().

◆ CloneVector() [1/2]

◆ CloneVector() [2/2]

template<typename TValueType >
void ug::CloneVector ( Vector< TValueType > &  dest,
const Vector< TValueType > &  src 
)

◆ close_sides_of_anisotropic_elem() [1/3]

template<typename TAAPos >
AnisotropyState ug::close_sides_of_anisotropic_elem ( Edge elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Vertex * > &  sidesOut 
)

References ISOTROPIC.

Referenced by long_edges_of_anisotropic_elem().

◆ close_sides_of_anisotropic_elem() [2/3]

template<typename TAAPos >
AnisotropyState ug::close_sides_of_anisotropic_elem ( Face elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Edge * > &  sidesOut 
)

◆ close_sides_of_anisotropic_elem() [3/3]

template<typename TAAPos >
AnisotropyState ug::close_sides_of_anisotropic_elem ( Volume elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Face * > &  sidesOut 
)

◆ CloseSelection< MGSelector >()

template void ug::CloseSelection< MGSelector > ( MGSelector sel)

◆ CloseSelection< Selector >()

template void ug::CloseSelection< Selector > ( Selector sel)

◆ CloseToZero()

bool ug::CloseToZero ( double  d)
inline

◆ cmp_slv()

bool ug::cmp_slv ( const SweepLineVertex v1,
const SweepLineVertex v2 
)
inline

◆ cmpQPairs()

static bool ug::cmpQPairs ( const std::pair< number, number > &  a,
const std::pair< number, number > &  b 
)
static

◆ CollapseEdge()

bool ug::CollapseEdge ( SimpleGrid sg)

collapses the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid. two triangles will be removed.

A new vertex will be added at the end of the list. Its normal and position will be interpolated from the end-points of the edge. The first two vertices in sg (the endpoints of the collapsed edge) remain unused.

The manipulated grid is no longer suited for swap, split or collapse operations.

References CalculateTriangleNormals(), ug::SimpleGrid::triangles, VecAdd(), VecNormalize(), VecScale(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

◆ CollectAllVerticesForNG()

static bool ug::CollectAllVerticesForNG ( Grid grid,
VertexSelector NgVrtSel,
VertexSelector SurfVrtSel,
VertexSelector InnVrtSel 
)
static

collects all vertices in *.ng file order in a selector

References ug::TElemSelector< TBaseElem >::begin(), ug::TElemSelector< TBaseElem >::end(), and ug::ISelector::select().

Referenced by ExportGridToUG().

◆ CollectAssociatedSides() [1/2]

UG_API void ug::CollectAssociatedSides ( Edge sidesOut[2],
Grid grid,
Face f,
Vertex vrt 
)
inline

◆ CollectAssociatedSides() [2/2]

UG_API void ug::CollectAssociatedSides ( Face sidesOut[2],
Grid grid,
Volume v,
Edge e 
)
inline

◆ CollectConstraining()

◆ CollectCornerCoordinates()

template<typename TElem , typename TAAPos >
void ug::CollectCornerCoordinates ( std::vector< typename TAAPos::ValueType > &  vCornerCoordsOut,
TElem *  elem,
const TAAPos &  aaPos,
bool  clearContainer 
)

References GetVertex(), and NumVertices().

◆ CollectIErrEstData()

template<typename TDomain , typename T >
void ug::CollectIErrEstData ( std::vector< IErrEstData< TDomain > * > &  vErrEstData,
const T &  vElemDisc 
)

◆ CollectInnerVertices()

static bool ug::CollectInnerVertices ( Grid grid,
VertexSelector InnVrtSel,
VertexSelector SurfVrtSel 
)
static

◆ CollectLines()

static bool ug::CollectLines ( Grid grid,
const SubsetHandler shFace,
EdgeSelector LineSel 
)
static

◆ CollectMatrixOnOneProc()

template<typename matrix_type >
void ug::CollectMatrixOnOneProc ( const matrix_type A,
matrix_type collectedA,
IndexLayout masterLayout,
IndexLayout slaveLayout 
)
  1. constructs global indices
  2. for pid != proc_id(0) : a) send the whole matrix with global ids to proc_id(0) b) create slaveLayout to proc_id(0)
  3. for pid = proc_id(0) : a) receives the matrices b) builds up collectedA c) creates masterLayout to all other pids.
Parameters
A(input) the distributed parallel matrix A
collectedA(output) the collected matrix A on pid = proc_id(0)
masterLayoutthe agglomeration master layout (only defined on pid = proc_id(0))
slaveLayoutthe agglomeration slave layout (only defined on pid != proc_id(0))

References pcl::SingleLevelLayout< TInterface >::clear(), pcl::ProcessCommunicator::get_proc_id(), ug::ParallelMatrix< TMatrix >::layouts(), LIB_ALG_AMG, pcl::ProcRank(), PROFILE_FUNC_GROUP, ReceiveMatrix(), SendMatrix(), pcl::ProcessCommunicator::size(), UG_CATCH_THROW, and UG_DLOG.

Referenced by ug::AgglomeratingBase< TBase, TAlgebra >::init_mat().

◆ collectStretchedElementIndices()

template<typename TDomain , typename TBaseElem >
void ug::collectStretchedElementIndices ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< size_t > &  indarray,
number  alpha 
)

◆ CollectSurfaceVertices()

static bool ug::CollectSurfaceVertices ( Grid grid,
const SubsetHandler shFace,
VertexSelector SurfVrtSel 
)
static

◆ CollectSurfaceViewElements() [1/2]

◆ CollectSurfaceViewElements() [2/2]

template<class TElem >
void ug::CollectSurfaceViewElements ( ISubsetHandler surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh,
bool  clearContainer = true 
)

◆ CollectUnconnectedSides()

template<class TSideIterator >
size_t ug::CollectUnconnectedSides ( std::vector< typename TSideIterator::value_type > &  elemsOut,
Grid grid,
TSideIterator  begin,
TSideIterator  end 
)

Writes all elements between 'begin' and 'end' which are not sides of elements in 'grid' to 'elemsOut'. This method only makes sense if called on a sequence of vertices, edges, or faces.

References ug::Grid::associated_elements(), and ug::PointerConstArray< TPtr >::size().

Referenced by CheckForUnconnectedSidesIMPL().

◆ CollectUniqueObjects()

template<class TType >
static void ug::CollectUniqueObjects ( vector< TType > &  vecOut,
const vector< TType > &  vecIn 
)
static

Referenced by LoadGridFromART().

◆ ColorControlVolume()

◆ ColorProcessorGraph()

int ug::ColorProcessorGraph ( pcl::InterfaceCommunicator< IndexLayout > &  com,
std::set< int > &  pids,
std::vector< int > &  processesWithLowerColor,
std::vector< int > &  processesWithHigherColor 
)

◆ ColorSubControlVolume()

template<typename TElem >
void ug::ColorSubControlVolume ( ISubsetHandler shOut)

◆ ColorSubControlVolumeFaces()

template<typename TElem >
void ug::ColorSubControlVolumeFaces ( ISubsetHandler shOut)

◆ CommaListToVector()

vector<nodeType*> ug::CommaListToVector ( nodeType a)

◆ CommunicateConnections()

◆ ComparePosDim()

template<int dim, size_t orderDim>
bool ug::ComparePosDim ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

◆ ComparePosDim< 1, 0 >()

template<>
bool ug::ComparePosDim< 1, 0 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

◆ ComparePosDim< 2, 0 >()

template<>
bool ug::ComparePosDim< 2, 0 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDim< 2, 1 >()

template<>
bool ug::ComparePosDim< 2, 1 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDim< 3, 0 >()

template<>
bool ug::ComparePosDim< 3, 0 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDim< 3, 1 >()

template<>
bool ug::ComparePosDim< 3, 1 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDim< 3, 2 >()

template<>
bool ug::ComparePosDim< 3, 2 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDimDec()

template<int dim, size_t orderDim>
bool ug::ComparePosDimDec ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

◆ ComparePosDimDec< 1, 0 >()

template<>
bool ug::ComparePosDimDec< 1, 0 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

◆ ComparePosDimDec< 2, 0 >()

template<>
bool ug::ComparePosDimDec< 2, 0 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDimDec< 2, 1 >()

template<>
bool ug::ComparePosDimDec< 2, 1 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDimDec< 3, 0 >()

template<>
bool ug::ComparePosDimDec< 3, 0 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDimDec< 3, 1 >()

template<>
bool ug::ComparePosDimDec< 3, 1 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDimDec< 3, 2 >()

template<>
bool ug::ComparePosDimDec< 3, 2 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDimYDir()

template<int dim>
bool ug::ComparePosDimYDir ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

◆ ComparePosDimYDir< 1 >()

template<>
bool ug::ComparePosDimYDir< 1 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

◆ ComparePosDimYDir< 2 >()

template<>
bool ug::ComparePosDimYDir< 2 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDimYDir< 3 >()

template<>
bool ug::ComparePosDimYDir< 3 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ ComparePosDimZDir()

template<int dim>
bool ug::ComparePosDimZDir ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

◆ ComparePosDimZDir< 1 >()

template<>
bool ug::ComparePosDimZDir< 1 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

◆ ComparePosDimZDir< 2 >()

template<>
bool ug::ComparePosDimZDir< 2 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

◆ ComparePosDimZDir< 3 >()

template<>
bool ug::ComparePosDimZDir< 3 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

◆ CompareScalar()

bool ug::CompareScalar ( const std::pair< number, size_t > &  p1,
const std::pair< number, size_t > &  p2 
)

◆ compute_angle()

static number ug::compute_angle ( const vector3 axis,
const vector3 secondAxis,
const vector3 thirdAxis,
const vector3 posFromAxis 
)
inlinestatic

◆ compute_first_section_end_points()

static void ug::compute_first_section_end_points ( vector3 pos0Out,
vector3 pos1Out,
std::vector< NeuriteProjector::Section >::const_iterator  secIt 
)
static

◆ compute_ONB()

static void ug::compute_ONB ( vector3 firstOut,
vector3 secondOut,
vector3 thirdOut,
const vector3 firstIn,
const vector3 refDir 
)
inlinestatic

◆ compute_position_and_velocity_in_section()

static void ug::compute_position_and_velocity_in_section ( vector3 posAxOut,
vector3 velOut,
number radiusOut,
std::vector< NeuriteProjector::Section >::const_iterator  secIt,
float  t 
)
static

◆ compute_radius_in_section()

static void ug::compute_radius_in_section ( number radiusOut,
std::vector< NeuriteProjector::Section >::const_iterator  secIt,
float  t 
)
static

References s.

Referenced by bp_newton_start_pos().

◆ ComputeAvg()

template<typename TElem >
number ug::ComputeAvg ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError2,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number sum,
number errSq,
size_t &  numElem,
number minLocal,
number maxLocal,
number sumLocal,
size_t &  numElemLocal 
)

helper function that computes min/max and total of error indicators

Parameters
[out]minminimal eta_i
[out]maxmaximal eta_i
[out]sumsum of eta_i
[out]errSqsum of eta_i^2
[out]numElemnumber of elements
Returns
average eta

References pcl::ProcessCommunicator::allreduce(), pcl::NumProcs(), PCL_RO_MAX, PCL_RO_MIN, PCL_RO_SUM, UG_LOG, and UG_THROW.

Referenced by ug::VarianceMarkingEta< TDomain >::mark().

◆ ComputeBFMidID() [1/2]

template<typename TRefElem >
static void ug::ComputeBFMidID ( const TRefElem &  rRefElem,
int  side,
MidID  vMidID[],
int  co 
)
static

◆ ComputeBFMidID() [2/2]

template<typename TRefElem >
static void ug::ComputeBFMidID ( const TRefElem &  rRefElem,
int  side,
MidID  vMidID[],
int  co 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

◆ ComputeCuthillMcKeeOrder()

void ug::ComputeCuthillMcKeeOrder ( std::vector< size_t > &  vNewIndex,
std::vector< std::vector< size_t > > &  vvNeighbour,
bool  bReverse = true,
bool  bPreserveConsec = true 
)

returns an array describing the needed index mapping for Cuthill-McKee ordering

This function computes an index mapping that transforms an index-graph by a Cuthill-McKee ordering. For each index, a vector of all adjacent indices must be passed.

There are two intended ways of this function to work, depending on the flag bPreserveConsec: If set to true (default), the function expects vvNeighbor to contain adjacency information sorted by associated geometric object, i.e.: Geometric object 0 DoF 0 DoF 1 DoF 2 ... Geometric object 1 DoF 0 DoF 1 DoF 2 ... ...

None of the first indices of any geometric object must be unconnected! Only the first DoF index of any geometric object must be given neighbor information! This is required to guarantee that DoF indices associated to a geometric object stay consecutive.

If set to false, indices without any adjacency information given in vvNeighbour will be sorted to the end. Nothing is preserved. This is applicable if vvNeighbour contains the final non-zero entries of a sparse matrix to be re-ordered, e.g., as a pre-processing step for ILU(-T) pre-conditioning.

On exit, the index field vNewIndex is filled with the index mapping: newInd = vNewIndex[oldInd]

Parameters
[out]vNewIndexvector returning new index for old index
[in]vvNeighbourvector of adjacent indices for each index
[in]bReverseflag if "reverse Cuthill-McKee" is used
[in]bPreserveConsecflag indicating whether ordering is done for DofDistribution
Returns
flag if ordering was successful

References CheckPermutationBijective(), findBlockSize(), PROFILE_FUNC, UG_ASSERT, and UG_THROW.

Referenced by ug::NativeCuthillMcKeeOrdering< TAlgebra, O_t >::compute(), GetCuthillMcKeeOrder(), and OrderCuthillMcKee().

◆ ComputeDifferenceOnDelta()

template<typename TVector >
void ug::ComputeDifferenceOnDelta ( TVector &  diff,
const TVector &  u,
IndexLayout dualMasterLayoutIn,
IndexLayout dualSlaveLayoutIn,
IndexLayout dualNbrMasterLayoutIn,
IndexLayout dualNbrSlaveLayoutIn 
)

Application of the "jump operator" \(B_{\Delta}\).

This function applies \(B_{\Delta}\) to \(u_{\Delta}\). It computes the difference (the "jump") between the double-valued unknowns \(u_{\Delta}\) and communicate the results so that the difference vector is stored consistently afterwards.

Note: This computation is only unique up to the sign of the difference. Thus, we can freely decide it, but have then to stay with the choice.

Parameters
[out]diffdestination vector for differences computed on "Dual layout"
[in]uvector \(u_{\Delta}\)
[in]dualMasterLayoutIndual master layout to operate on
[in]dualSlaveLayoutIndual slave layout to operate on
[in]dualNbrMasterLayoutIndual master layout to operate on
[in]dualNbrSlaveLayoutIndual slave layout to operate on

References VecCopy(), and VecSubtractOneSlaveFromMaster().

Referenced by ug::FETISolver< TAlgebra >::apply_F(), ug::FETISolver< TAlgebra >::apply_M_inverse(), and ug::FETISolver< TAlgebra >::compute_d().

◆ ComputeDifferenceOnDeltaTransposed()

template<typename TVector >
void ug::ComputeDifferenceOnDeltaTransposed ( TVector &  f,
const TVector &  diff,
const std::vector< IndexLayout::Element > &  vDualMasterIndex,
const std::vector< IndexLayout::Element > &  vDualSlaveIndex,
const std::vector< IndexLayout::Element > &  vDualNbrSlaveIndex 
)

'ComputeDifferenceOnDeltaTransposed()': Apply \(B_{\Delta}^T\)

This function applies \(B_{\Delta}^T\) to a difference vector \(d\), (lying in the same space as \(\lambda\)). \(d\) is supposed to be stored consistently.

For the application of \(B_{\Delta}\) and the chosen scaling factors see the documentation of 'ComputeDifferenceOnDelta()'.

Parameters
[out]fvector \(f_{\Delta}\) living on "Dual layout"
[in]diffdifference vector on "Dual layout"
[in]vDualMasterIndexdual master layout to operate on
[in]vDualSlaveIndexdual slave layout to operate on
[in]vDualNbrSlaveIndexdual nbr slave layout to operate on

References VecScaleAssign().

Referenced by ug::FETISolver< TAlgebra >::apply_F(), ug::FETISolver< TAlgebra >::apply_M_inverse(), and ug::FETISolver< TAlgebra >::apply_return_defect().

◆ ComputeDirectionYOrder()

template<int dim>
void ug::ComputeDirectionYOrder ( std::vector< std::pair< MathVector< dim >, size_t > > &  vPos,
std::vector< size_t > &  indY 
)

◆ ComputeDirectionZOrder()

template<int dim>
void ug::ComputeDirectionZOrder ( std::vector< std::pair< MathVector< dim >, size_t > > &  vPos,
std::vector< size_t > &  indZ 
)

◆ ComputeElementExtensionsSq()

template<int TWorldDim, int ncorners>
void ug::ComputeElementExtensionsSq ( const MathVector< TWorldDim > *  vCornerCoords,
MathVector< TWorldDim > &  ext 
)
inline

◆ ComputeElementExtensionsSqForEdges()

template<typename TVector >
void ug::ComputeElementExtensionsSqForEdges ( const TVector *  vCornerCoords,
TVector &  ext 
)
inline

Extension of an element (in a given dimension)

References VecElemProd().

Referenced by ElementExtensionsSq< 1 >(), ElementExtensionsSq< 2 >(), and ElementExtensionsSq< 3 >().

◆ ComputeGradientCrouzeixRaviart()

◆ computeGradientJump()

template<typename TFunction >
void ug::computeGradientJump ( TFunction &  u,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaGrad,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

◆ ComputeGradientLagrange1()

◆ ComputeGradientPiecewiseConstant()

template<typename TFunction >
void ug::ComputeGradientPiecewiseConstant ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

◆ ComputeLexicographicOrder()

template<int dim>
void ug::ComputeLexicographicOrder ( std::vector< size_t > &  vNewIndex,
std::vector< std::pair< MathVector< dim >, size_t > > &  vPos,
size_t  orderDim,
bool  increasing 
)

References UG_THROW.

◆ ComputeMidPoints() [1/2]

template<int dim, typename TRefElem , int maxMid>
static void ug::ComputeMidPoints ( const TRefElem &  rRefElem,
const MathVector< dim vCorner[],
MathVector< dim vvMid[][maxMid] 
)
static
Template Parameters
dimdimension of coordinates
TRefElemReference element type
maxMidMaximum number of elements for all dimensions

The octahedral reference element contains an implicit interior substructure that is constructed by several geometric objects, i.e. imaginary subfaces (8 triangles), subedges (2) and subvolumes (4 tetrahedra) resulting from the division into 4 subtetrahedra alongside inner edge 3->1. The dual fv1 geometry consists of the original hexahedral SCVs in each of the 4 subtetrahedra. Therefore, add the following additional corresponding midpoints:

References dim, and ROID_OCTAHEDRON.

Referenced by ug::DimFVGeometry< TWorldDim, TDim >::update_local().

◆ ComputeMidPoints() [2/2]

template<int dim, typename TRefElem , int maxMid>
static void ug::ComputeMidPoints ( const TRefElem &  rRefElem,
const MathVector< dim vCorner[],
MathVector< dim vvMid[][maxMid] 
)
static
Template Parameters
dimdimension of coordinates
TRefElemReference element type
maxMidMaximum number of elements for all dimensions

References dim, ROID_PYRAMID, UG_THROW, and VecScaleAdd().

◆ ComputeMinMax()

template<typename TElem >
void ug::ComputeMinMax ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number totalErr,
size_t &  numElem,
number minLocal,
number maxLocal,
number totalErrLocal,
size_t &  numElemLocal 
)

helper function that computes min/max and total of error indicators

Parameters
[out]minminimal eta_i^2
[out]maxmaximal eta_i^2
[out]totalErrsum of eta_i^2
[out]numElemnumber of elements

References pcl::ProcessCommunicator::allreduce(), pcl::NumProcs(), PCL_RO_MAX, PCL_RO_MIN, PCL_RO_SUM, and UG_LOG.

Referenced by ComputeMinMaxTotal(), ug::MeanValueMarking< TDomain >::mark(), ug::VarianceMarking< TDomain >::mark(), ug::MaximumMarking< TDomain >::mark(), ug::APosterioriCoarsening< TDomain >::mark(), and ug::EquilibrationMarkingStrategy< TDomain >::mark().

◆ ComputeMinMaxTotal()

template<typename TElem >
void ug::ComputeMinMaxTotal ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError2,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number totalErr,
size_t &  numElem 
)

helper function that computes min/max and total of error indicators

References ComputeMinMax().

Referenced by ug::GlobalMarking< TDomain >::mark(), MarkElements(), MarkElementsForCoarsening(), and MarkElementsForRefinement().

◆ ComputeMultiIndicesOfSubElement()

template<int dim>
void ug::ComputeMultiIndicesOfSubElement ( std::vector< MathVector< dim, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

◆ ComputeMultiIndicesOfSubElement< 1 >()

template<>
void ug::ComputeMultiIndicesOfSubElement< 1 > ( std::vector< MathVector< 1, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

◆ ComputeMultiIndicesOfSubElement< 2 >()

template<>
void ug::ComputeMultiIndicesOfSubElement< 2 > ( std::vector< MathVector< 2, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

◆ ComputeMultiIndicesOfSubElement< 3 >()

template<>
void ug::ComputeMultiIndicesOfSubElement< 3 > ( std::vector< MathVector< 3, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

◆ ComputeOrientationOffset() [1/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Face face,
Edge edge,
size_t  nrEdge,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

◆ ComputeOrientationOffset() [2/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
GridObject Elem,
GridObject SubElem,
size_t  nrSub,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

◆ ComputeOrientationOffset() [3/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Edge edge,
size_t  nrEdge,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

◆ ComputeOrientationOffset() [4/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Face face,
size_t  nrFace,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

Referenced by ug::AdaptionSurfaceGridFunction< TDomain >::ValueAccessor::access_closure(), ug::DoFDistribution::constrained_edge_dof_indices(), ug::DoFDistribution::constrained_face_dof_indices(), ug::DoFDistribution::dof_indices(), and ug::DoFDistribution::indices().

◆ ComputeOrientationOffsetGeneric()

template<typename TBaseElem , typename TSubBaseElem >
void ug::ComputeOrientationOffsetGeneric ( std::vector< size_t > &  vOrientOffset,
TBaseElem elem,
TSubBaseElem *  sub,
size_t  nrSub,
const LFEID lfeid 
)

◆ ComputeOrientationOffsetLagrange() [1/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
EdgeDescriptor ed,
EdgeVertices edge,
const size_t  p 
)

◆ ComputeOrientationOffsetLagrange() [2/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Face face,
Edge edge,
size_t  nrEdge,
const size_t  p 
)

◆ ComputeOrientationOffsetLagrange() [3/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
GridObject volume,
GridObject face,
size_t  nrFace,
const size_t  p 
)

References UG_THROW.

◆ ComputeOrientationOffsetLagrange() [4/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Edge edge,
size_t  nrEdge,
const size_t  p 
)

◆ ComputeOrientationOffsetLagrange() [5/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Volume volume,
Face face,
size_t  nrFace,
const size_t  p 
)

◆ ComputeSCVFMidID() [1/2]

◆ ComputeSCVFMidID() [2/2]

template<typename TRefElem >
static void ug::ComputeSCVFMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th edge of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

◆ ComputeSCVMidID() [1/2]

◆ ComputeSCVMidID() [2/2]

template<typename TRefElem >
static void ug::ComputeSCVMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

◆ ConfigShift() [1/2]

UG_API std::string ug::ConfigShift ( std::string  s)

returns a "shifted" string one-line strings are not shifted two line strings are shifted like this: input: "MyLine1\nMyLine2\n" Output: "\n | MyLine1\n | MyLine2" note that they get an additional
at the beginning, and doubled
and
at the end are removed, so you can use ConfigShift like this

strstr << "MySubcomponent = " << ConfigShift(comp1.config_string()) << "\n"
"MySubcomponent2 = " << ConfigShift(comp2.config_string()) << "\n"

Depending on comp1.config_string(), this results in "MySubcomponent1 = sub1 ... " or "MySubcomponent =\n | sub1.1\n | sub1.2 ..."

Parameters
[in]s
Returns
shifted string

◆ ConfigShift() [2/2]

◆ ConfigShiftRotation()

char ug::ConfigShiftRotation ( char  c)

References shiftCharacters, and shiftCharactersLength.

Referenced by ConfigShift().

◆ ConstructDualGraph()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraph ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
Grid grid,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT,
const GridObjectCollection pgoc = NULL 
)

The created dual graph is described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjacency-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>().

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume

Through pgoc you can specify a subset of the grid which shall be put into the graph. If pgoc == NULL (by default), the whole grid is used.

If you pass a multi-grid to this method, elements will be indexed for level 0 first, then for level 1 and so on.

References ug::Grid::attach_to_dv(), ug::GridObjectCollection::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::GridObjectCollection::end(), ug::Grid::get_grid_objects(), ug::Grid::has_attachment(), ug::GridObjectCollection::num(), and ug::GridObjectCollection::num_levels().

◆ ConstructDualGraphMG()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraphMG ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
std::vector< TIndexType > *  pEdgeWeightsOut,
MultiGrid mg,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT 
)

The created dual graph ist described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>().

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

pEdgeWgtsOut may be specified with NULL. If it is given, then the weight for each entry in adacencyMapOut will be written to pEdgeWgtsOut. vWeight for each vertical connection (parents / children) and hWeigth for each horizontal connection (neighbors).

TGeomBaseObj can be either Vertex, Edge, Face or Volume

Elements will be indexed for level 0 first, then for level 1 and so on.

References ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::MultiGrid::get_child(), ug::MultiGrid::get_parent(), ug::Grid::has_attachment(), ug::MultiGrid::num(), ug::MultiGrid::num_children(), and ug::MultiGrid::num_levels().

◆ ConstructDualGraphMGLevel()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraphMGLevel ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
MultiGrid mg,
size_t  level,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT,
DualGraphNeighborCollector< TGeomBaseObj > *  neighborCollector = NULL 
)

This method creates a dual graph for the given level only.

The i-th element of the given level will be the i-th node in the generated adjacency structure.

The created dual graph ist described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Note that the elements are processed one level after another.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>(level).

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume

References ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::Grid::has_attachment(), and ug::MultiGrid::num().

◆ ConstructGridOfSCV() [1/2]

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCV ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si 
)

◆ ConstructGridOfSCV() [2/2]

template<template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCV ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si,
int  siDim 
)

◆ ConstructGridOfSCVF() [1/2]

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCVF ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si 
)

◆ ConstructGridOfSCVF() [2/2]

template<template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCVF ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si,
int  siDim 
)

◆ ConstructParallelDualGraphMGLevel()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructParallelDualGraphMGLevel ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
std::vector< TIndexType > &  nodeOffsetMapOut,
MultiGrid mg,
size_t  level,
pcl::ProcessCommunicator  procCom,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT 
)

DEPRECIATED! Use the ParallelDualGraph class instead!

This method creates a parallel dual graph for the given level only. Please refer to the parmetis documentation for a detailed overview over the resulting parallel graph structure.

The created dual graph ist described in the following form. The adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map.

The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth. Note that those indices relate to the global index of the connected node.

The node-offset-map holds for each process the smallest global node index on that process. Note that all node indices on a process are consecutive. The node-offset-map holds numProcs+1 entries. The last one holds #numGlobalInds+1. The number of nodes on a process is thus given by (nodeOffsetMap[pInd] - nodeOffsetMap[pInd+1]).

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>(level). It may however not be completely filled, since ghosts are ignored in the dual graph.

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume and should represent the elements of highest dimension in a given grid.

References pcl::ProcessCommunicator::allgather(), ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), GDIST_PROFILE_FUNC, pcl::ProcessCommunicator::get_local_proc_id(), ug::Grid::has_attachment(), ug::DistributedGridManager::is_ghost(), PCL_DT_INT, and pcl::ProcessCommunicator::size().

◆ Contains()

bool ug::Contains ( const string &  str,
const string &  search 
)

◆ ContainsInterfaceElem()

template<class TStdVector >
static bool ug::ContainsInterfaceElem ( const TStdVector &  elems,
DistributedGridManager distGridMgr 
)
static

◆ ContinuousDebugSave()

static void ug::ContinuousDebugSave ( ISelector sel)
static

temporary method, which will be removed when debugging is done.

References pcl::ProcRank(), SaveCoarsenMarksToFile(), and UG_LOG.

Referenced by ug::HangingNodeRefiner_MultiGrid::collect_objects_for_coarsen().

◆ ConvertStringToLFEID() [1/2]

LFEID ug::ConvertStringToLFEID ( const char *  type,
int  dim 
)

returns the LFEID for a combination of Space and order

returns the LFEID

References ug::LFEID::CROUZEIX_RAVIART, dim, ug::LFEID::LAGRANGE, ug::LFEID::NEDELEC, ug::LFEID::NONE, ug::LFEID::PIECEWISE_CONSTANT, and UG_THROW.

◆ ConvertStringToLFEID() [2/2]

LFEID ug::ConvertStringToLFEID ( const char *  type,
int  dim,
int  order 
)

◆ CopyCornerByMidID() [1/2]

template<int dim, int maxMid>
static void ug::CopyCornerByMidID ( MathVector< dim vCorner[],
const MidID  vMidID[],
MathVector< dim vvMidPos[][maxMid],
const size_t  numCo 
)
static

References ug::MidID::dim, and ug::MidID::id.

◆ CopyCornerByMidID() [2/2]

template<int dim, int maxMid>
static void ug::CopyCornerByMidID ( MathVector< dim vCorner[],
const MidID  vMidID[],
MathVector< dim vvMidPos[][maxMid],
const size_t  numCo 
)
static

References ug::MidID::dim, and ug::MidID::id.

◆ CopyGrid() [1/4]

template void ug::CopyGrid ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition1   
)

◆ CopyGrid() [2/4]

template void ug::CopyGrid ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition2   
)

◆ CopyGrid() [3/4]

template void ug::CopyGrid ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition3   
)

◆ CopyGrid() [4/4]

template<class TAPos >
void ug::CopyGrid ( Grid srcGrid,
Grid destGrid,
ISubsetHandler srcSH,
ISubsetHandler destSH,
TAPos  aPos 
)

Copies a grid to a separate grid.

Extracts the grid from a given Grid with a given SubsetHandler and copies it to a new grid. Position data is read from aPos. Note: To copy a grid w/o subset information can use Grid's copy constructor

Parameters
[in]srcGridthe grid to be copied
[out]destGridthe copied grid
[in]srcShthe SubsetHandler for the srcGrid
[out]destShthe SubsetHandler for the destGrid
Template Parameters

References ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::GridObjectCollection::begin(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_vertices(), ug::GridObjectCollection::end(), ug::Grid::get_grid_objects(), ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::num_subsets(), and ug::ISubsetHandler::subset_info().

◆ CopyGridElements()

template<class TElem >
void ug::CopyGridElements ( Grid srcGrid,
Grid destGrid,
ISubsetHandler srcSH,
ISubsetHandler destSH,
Attachment< Vertex * > &  aNewVrt 
)

◆ CopyGridLevel()

template<class TAPos >
void ug::CopyGridLevel ( MultiGrid srcMG,
Grid destGrid,
ISubsetHandler srcSH,
ISubsetHandler destSH,
int  lvl,
TAPos  aPos 
)

◆ CopyGridLevelElements()

◆ CopyInterfaceEntrysToDomainDecompositionLayouts()

static void ug::CopyInterfaceEntrysToDomainDecompositionLayouts ( IndexLayout subdomLayoutOut,
IndexLayout processLayoutOut,
IndexLayout deltaNbrLayoutOut,
IndexLayout crossPointLayoutOut,
const IndexLayout standardLayout,
vector< int > &  flags,
IDomainDecompositionInfo ddinfo 
)
static

◆ CopyOffDiagEntries()

template<typename TMatrixType , typename TRowType >
void ug::CopyOffDiagEntries ( const TMatrixType &  A,
size_t  i,
TRowType &  row,
bool  enforceNew = false 
)

◆ CopySelected()

◆ CopySelectedElements() [1/2]

template<class TElem >
void ug::CopySelectedElements ( Selector srcSel,
Grid destGrid,
AVertex  aNewVrt 
)
inline

Make sure that aNewVrt is attached to srcSel.grid() and contains a pointer to a valid vertex in destGrid for each selected vertex in srcGrid. Also make sure that all vertices belonging to a selected element have been selected, too.

References ug::Selector::begin(), ug::Grid::create_by_cloning(), ug::Selector::end(), ug::ISelector::grid(), ug::CustomVertexGroup::resize(), and ug::CustomVertexGroup::set_vertex().

◆ CopySelectedElements() [2/2]

template<typename TDomain , class TElem >
void ug::CopySelectedElements ( SmartPtr< TDomain >  destDom,
SmartPtr< TDomain >  srcDom,
Selector sel,
AVertex aNewVrt 
)
inline

◆ CopySelection()

template<class TAAPosSrc , class TAAPosDest >
void ug::CopySelection ( Selector srcSel,
Grid destGrid,
TAAPosSrc  aaPosSrc,
TAAPosDest  aaPosDest 
)
inline

◆ CopySelectionStatus() [1/2]

template<class TGeomObj >
void ug::CopySelectionStatus ( Selector selOut,
Grid gridOut,
Selector selIn,
Grid gridIn 
)

Make sure that elements in gridOut directly correspond to elements in gridIn

References ug::Grid::begin(), ug::Grid::end(), ug::ISelector::is_selected(), and ug::ISelector::select().

◆ CopySelectionStatus() [2/2]

template<class TGeomObj >
static void ug::CopySelectionStatus ( Selector selOut,
Grid gridOut,
Selector selIn,
Grid gridIn 
)
static

Make sure that elements in gridOut directly correspond to elements in gridIn

References ug::Grid::begin(), ug::Grid::end(), ug::ISelector::is_selected(), and ug::ISelector::select().

◆ CopySubsetFromHigherDimNbr()

template<class TIterator >
static void ug::CopySubsetFromHigherDimNbr ( ISubsetHandler sh,
TIterator  elemsBegin,
TIterator  elemsEnd,
AChar  aDimension 
)
static

Helper method that copies subset-indices based on the subset-dimension property of each element. Subsets are only assigned to previously unassigned elements.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), dim, ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::grid(), ug::ISubsetHandler::num_subsets(), ug::PointerConstArray< TPtr >::size(), and UG_COND_THROW.

Referenced by CopySubsetIndicesToSides().

◆ CopySubsetIndices()

template<class TIterator >
static void ug::CopySubsetIndices ( ISubsetHandler dest,
const ISubsetHandler src,
TIterator  destIterBegin,
TIterator  destIterEnd,
TIterator  srcIterBegin,
TIterator  srcIterEnd 
)
static

◆ CPPString()

template<typename TStorage >
std::string ug::CPPString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

References name, and NonzeroString().

Referenced by SolveDeficit().

◆ CreateAllToAllFromMasterSlave()

void ug::CreateAllToAllFromMasterSlave ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
IndexLayout OLCoarseningSendLayout,
IndexLayout OLCoarseningReceiveLayout,
IndexLayout OL1MasterLayout,
IndexLayout OL1SlaveLayout 
)

◆ CreateControlVolumeDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateControlVolumeDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume faces w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

◆ CreateFunctionIndexMapping() [1/2]

void ug::CreateFunctionIndexMapping ( FunctionIndexMapping map,
const FunctionGroup grpFrom,
ConstSmartPtr< FunctionPattern fctPattern 
)

Creates a function index mapping that maps all local indices from the one Function Group to the corresponding indices in a function pattern. Make sure that the Function Group is contained function pattern - otherwise an exception is thrown.

References ug::FunctionGroup::add_all().

◆ CreateFunctionIndexMapping() [2/2]

void ug::CreateFunctionIndexMapping ( FunctionIndexMapping map,
const FunctionGroup grpFrom,
const FunctionGroup grpTo 
)

Creates a function index mapping that maps all local indices from the one Function Group to the other. Make sure that the first Function Group is contained in the second and both function groups are based on the same function pattern - otherwise an exception is thrown.

References ug::FunctionIndexMapping::clear(), ug::FunctionGroup::contains(), ug::FunctionGroup::function_pattern(), ug::FunctionGroup::local_index(), ug::FunctionIndexMapping::push_back(), ug::FunctionGroup::size(), and UG_THROW.

Referenced by ug::DependentUserData< TData, dim >::extract_fct_grp(), and ug::StdDataLinker< TImpl, TData, dim >::set_function_pattern().

◆ CreateGlobalLayout()

template<typename TLocalToGlobal >
void ug::CreateGlobalLayout ( GlobalLayout globalLayout,
const IndexLayout layout,
const TLocalToGlobal &  localToGlobal 
)

◆ CreateGridFromField() [1/2]

void UG_API ug::CreateGridFromField ( Grid grid,
const Field< number > &  field,
const vector2 cellSize,
const vector2 offset,
number  noDataValue,
Grid::VertexAttachmentAccessor< APosition aaPos 
)

◆ CreateGridFromField() [2/2]

◆ CreateGridFromFieldBoundary() [1/2]

void UG_API ug::CreateGridFromFieldBoundary ( Grid grid,
const Field< number > &  field,
const vector2 cellSize,
const vector2 offset,
number  noDataValue,
Grid::VertexAttachmentAccessor< APosition aaPos 
)

◆ CreateGridFromFieldBoundary() [2/2]

◆ CreateGridOfControlVolumes()

template<template< class, int > class TFVGeom, typename TAAPosition , typename TAPosition >
void ug::CreateGridOfControlVolumes ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
TAPosition &  aPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

◆ CreateGridOfSubControlVolumeFaces()

template<template< class, int > class TFVGeom, typename TAAPosition >
void ug::CreateGridOfSubControlVolumeFaces ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

◆ CreateGridOfSubControlVolumes()

template<template< class, int > class TFVGeom, typename TAAPosition >
void ug::CreateGridOfSubControlVolumes ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

◆ CreateHexahedronFromPrisms()

Hexahedron * ug::CreateHexahedronFromPrisms ( Grid grid,
Prism p0,
Prism p1 
)

Creates a hexahedron from two prisms which share a quadrilateral side.

This method uses Grid::mark

Returns
The created hexahedron or NULL if no such hexahedron could be build from the specified prisms.

References ug::Grid::begin_marking(), ug::Grid::create(), ug::Grid::end_marking(), ug::prism_rules::FACE_VRT_INDS, ug::Grid::get_face(), GetFaceIndex(), ug::Grid::is_marked(), ug::Grid::mark(), ug::prism_rules::QUADS, ug::prism_rules::TRIS, and ug::Prism::vertices().

◆ CreateIndexLayouts_DomainDecomposition()

bool ug::CreateIndexLayouts_DomainDecomposition ( IndexLayout processLayoutOut,
IndexLayout subdomainLayoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
int  level,
pcl::IDomainDecompositionInfo ddInfoIn 
)

◆ CreateLayoutFromGlobalLayout()

template<typename TGlobalToLocal >
void ug::CreateLayoutFromGlobalLayout ( IndexLayout layout,
GlobalLayout globalLayout,
TGlobalToLocal &  globalToLocal,
bool  bRemoveDoubles = true 
)
inline

◆ CreateLayoutsFromDistInfos()

◆ CreateLevelIndexLayout()

bool ug::CreateLevelIndexLayout ( IndexLayout layoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
int  level 
)

creates the index layout for a level given a GridLayoutMap

This function creates the Index layout based on a GridLayout. All elements of the GridLayoutMap are loop on grid level and the indices attached to the grid elements are added to the interface. Since the ordering of the grid elements in the interfaces is assumed to be correct, also the ordering in the index layouts are correct.

Parameters
[out]layoutOutthe created index layout
[in]dofDistrthe DoF Distribution
[in]layoutMapthe grid layout map
[in]keyTypekey type (e.g. slave or master)
[in]levellevel, where layouts should be build

References AddEntriesToLevelIndexLayout(), pcl::SingleLevelLayout< TInterface >::clear(), EDGE, FACE, ug::GridLayoutMap::get_layout(), ug::GridLayoutMap::has_layout(), ug::DoFDistributionInfoProvider::max_dofs(), VERTEX, and VOLUME.

◆ CreateListOfElemWeights()

template<class TElem >
number ug::CreateListOfElemWeights ( Grid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
typename DoFDistribution::traits< TElem >::const_iterator  iterBegin,
const typename DoFDistribution::traits< TElem >::const_iterator  iterEnd,
std::vector< double > &  etaSq 
)

◆ CreateLocalAlgebraLayouts()

◆ CreateOverlap()

template<class TMatrix >
void ug::CreateOverlap ( TMatrix &  matInOut)

Adds coefficients and connections to create an overlapping matrix.

The overlap is realized by first adding new entries to processes with H-Master interfaces so that the full matrix can be stored with each H-Master. New entries are appended at the end of the matrix.

For the new entries a new H-Master-Overlap interface is created and for associated entries connected to H-Slave nodes a new H-Slave-Overlap interface is created.

For each H-Slave entry we make the matrix row partially consistent, so that all existing connections which connect two slave entries have the same value as the associated connection between respective masters.

H-Masters contain the full matrix row once the method is done.

Rows of H-Master-Overlap entries are DirichletRows (a_ii=1, a_ij=0 for i!=j).

The methods replaces the AlgebraLayout in matInOut with a new one which contains master_overlap and slave_overlap interfaces.

Parameters
matInOutAn additive parallel square matrix without overlap.

References GenerateGlobalAlgebraIDs(), ug::ComPol_MatCreateOverlap< TMatrix >::post_process(), and PROFILE_FUNC_GROUP.

Referenced by ug::GaussSeidelBase< TAlgebra >::preprocess(), ug::ILU< TAlgebra >::preprocess(), and ug::SequentialSubspaceCorrection< TDomain, TAlgebra >::preprocess().

◆ CreatePrism()

static Prism* ug::CreatePrism ( Grid grid,
vector< Triangle * > &  vTris,
vector< Quadrilateral * > &  vQuads,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

◆ CreateProcessHierarchy() [1/3]

SPProcessHierarchy ug::CreateProcessHierarchy ( size_t *  numElemsOnLvl,
size_t  numLvls,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLvlsWithoutRedist 
)

Creates a process-hierarchy that fullfills the given conditions.

References create().

◆ CreateProcessHierarchy() [2/3]

template<class TDomain >
SPProcessHierarchy ug::CreateProcessHierarchy ( TDomain &  dom,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLevelsWithoutRedist 
)

Creates a process-hierarchy that fullfills the given conditions.

Referenced by CreateProcessHierarchy().

◆ CreateProcessHierarchy() [3/3]

template<class TDomain >
SPProcessHierarchy ug::CreateProcessHierarchy ( TDomain &  dom,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLevelsWithoutRedist,
IRefiner refiner 
)

◆ CreatePyramid()

static Pyramid* ug::CreatePyramid ( Grid grid,
vector< Triangle * > &  vTris,
vector< Quadrilateral * > &  vQuads,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

◆ CreateQuadrilateral()

UG_API Quadrilateral * ug::CreateQuadrilateral ( Grid g,
Face tri1,
Face tri2 
)

Creates a new quadrilateral from the specified triangles in the specified grid.

The two triangles have to share exactly 2 vertices.

References CreateQuadrilateral_NoRegistration(), and ug::Grid::register_element().

◆ CreateQuadrilateral_NoRegistration()

UG_API Quadrilateral * ug::CreateQuadrilateral_NoRegistration ( Grid g,
Face tri1,
Face tri2 
)

Creates a new quadrilateral from the specified triangles but doesn't register it at the grid.

Ownership of the returned quadrilateral is transferred to the caller. The two triangles have to share exactly 2 vertices.

References GetConnectedVertex(), GetConnectingEdge(), GetVertexIndex(), ug::FaceVertices::num_vertices(), UG_COND_THROW, and ug::FaceVertices::vertex().

Referenced by CreateQuadrilateral(), and ReplaceByQuadrilateral().

◆ CreateSCV()

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::CreateSCV ( const TElem &  elem,
TFVGeom< TElem, TWorldDim > &  geo,
ISubsetHandler shOut,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut 
)

◆ CreateSCVF()

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::CreateSCVF ( const TElem &  elem,
TFVGeom< TElem, TWorldDim > &  geo,
ISubsetHandler shOut,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut 
)

◆ CreateSortedListOfElems()

template<class TElem >
number ug::CreateSortedListOfElems ( Grid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
typename DoFDistribution::traits< TElem >::const_iterator  iterBegin,
const typename DoFDistribution::traits< TElem >::const_iterator  iterEnd,
std::vector< std::pair< double, TElem * > > &  etaSqList 
)

◆ CreateStrongConnectionGraphForSystems()

template<typename matrix_type >
void ug::CreateStrongConnectionGraphForSystems ( const matrix_type A,
cgraph graph,
double  theta 
)

◆ CreateSubControlVolumeDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateSubControlVolumeDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

◆ CreateSubControlVolumeFaceDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateSubControlVolumeFaceDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume faces w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

◆ CreateSubsetGroups()

◆ CreateSurfaceIndexLayout()

bool ug::CreateSurfaceIndexLayout ( IndexLayout layoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
MultiGrid mg,
DistributedGridManager dGrMgr 
)

creates the index layout for a level given a GridLayoutMap

This function creates the Index layout based on a GridLayout. All elements of the GridLayoutMap are loop level by level and the indices attached to the grid elements are added to the interface, if an element does not have a children. Since the ordering of the grid elements in the interfaces is assumed to be correct, also the ordering in the index layouts are correct.

Parameters
[out]layoutOutthe created index layout
[in]dofDistrthe DoF Distribution
[in]layoutMapthe grid layout map
[in]keyTypekey type (e.g. slave or master)
[in]mgunderlying MultiGrid
[in]dGrMgrdistributed Grid Manager

References AddEntriesToSurfaceIndexLayout(), EDGE, FACE, ug::GridLayoutMap::get_layout(), ug::GridLayoutMap::has_layout(), ug::DoFDistributionInfoProvider::max_dofs(), VERTEX, and VOLUME.

◆ CreateSurfaceView() [1/3]

◆ CreateSurfaceView() [2/3]

template<class TElem , class TSurfaceView >
void ug::CreateSurfaceView ( TSurfaceView &  surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh 
)

calls CollectSurfaceViewElements and then assigns all associated elements of lower dimension to the surface-view, too.

TSurfaceView has to be a SubsetHandler or MGSubsetHandler compatible type.

References FACEOPT_AUTOGENERATE_EDGES, ug::MultiGridSubsetHandler::num(), ug::Grid::option_is_enabled(), UG_LOG, VOLOPT_AUTOGENERATE_EDGES, and VOLOPT_AUTOGENERATE_FACES.

◆ CreateSurfaceView() [3/3]

template<class TSurfaceView >
void ug::CreateSurfaceView ( TSurfaceView &  surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh 
)

calls CollectSurfaceViewElements and then assigns all associated elements of lower dimension to the surface-view, too.

TSurfaceView has to be a SubsetHandler or MGSubsetHandler compatible type.

References FACEOPT_AUTOGENERATE_EDGES, ug::MultiGridSubsetHandler::num(), ug::Grid::option_is_enabled(), UG_LOG, VOLOPT_AUTOGENERATE_EDGES, and VOLOPT_AUTOGENERATE_FACES.

◆ CreateSweepLineStructs()

bool ug::CreateSweepLineStructs ( vector< SweepLineVertex > &  vrtsOut,
SweepLineEdgeList edgesOut,
const vector< vector2 > &  vrtsIn,
const vector< int > &  edgesIn 
)

For each entry in vrtsIn an entry in vrtsOut is created. However, vertices in vrtsOut are sorted from top to bottom. Each vertex in vrtsOut references all edges in edgesOut, to which it is connected. Directions of edges in edgesOut are CCW, but only if sorting was possible (this is always the case for the outer rim).

References CalculateRightBendVal(), cmp_slv(), ug::SweepLineVertex::connections, ug::SweepLineEdge::get_connected(), ug::SweepLineVertex::isRimVertex, ug::SweepLineVertex::m_status, ug::SweepLineEdge::m_status, ug::SweepLineEdge::m_v1, ug::SweepLineEdge::m_v2, SLES_RIM, SLVS_END, SLVS_MERGE, SLVS_NONE, SLVS_REGULAR, SLVS_SPLIT, SLVS_START, UG_LOG, and ug::SweepLineVertex::vrtPtr.

Referenced by TriangleFill_SweepLine().

◆ CreateTetrahedron()

static Tetrahedron* ug::CreateTetrahedron ( Grid grid,
vector< Triangle * > &  vTris,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

◆ CreateTKD()

void ug::CreateTKD ( const TKDInfo tkdInfo,
Grid g,
APosition3 aPos,
Volume **  volsOut = NULL 
)

Creates a tkd mesh based on the given tkdInfo object.

Parameters
volsOut(optional) Array of size TKDInfo::NUM_INNER_ELEMENTS Created volumes are written to this array, if specified.

References CreateTKDVertices(), CreateVolumesFromElementIndexList(), and ug::TKDInfo::inner_element_indices().

◆ CreateTKDVertices()

void ug::CreateTKDVertices ( const TKDInfo tkdInfo,
Grid g,
APosition3 aPos,
Vertex **  vrtsOut = NULL 
)

Creates a set of TKD vertices (inner and outer). This method is typically only used internally.

Parameters
vrtsOut(optional) Array of size TKDInfo::NUM_COORDS

References ug::TKDInfo::coords(), ug::Grid::create(), and ug::TKDInfo::num_coords().

Referenced by CreateTKD(), and CreateTKDWithOuterLayer().

◆ CreateTKDWithOuterLayer()

void ug::CreateTKDWithOuterLayer ( const TKDInfo tkdInfo,
Grid g,
APosition3 aPos,
Volume **  volsOut = NULL 
)

Creates a tkd mesh with a surrounding layer based on the given tkdInfo object.

Parameters
volsOut(optional) Array of size TKDInfo::NUM_ELEMENTS. Created volumes are written to this array, if specified. The first TKDInfo::NUM_INNER_VERTICES volumes are inner volumes, the rest ar outer volumes.

References CreateTKDVertices(), CreateVolumesFromElementIndexList(), ug::TKDInfo::inner_element_indices(), and ug::TKDInfo::outer_element_indices().

◆ CreateUnionOfFunctionGroups() [1/2]

void ug::CreateUnionOfFunctionGroups ( FunctionGroup fctGrp,
const vector< const FunctionGroup * > &  vFctGrp,
bool  sortFct 
)

This function create the union of function groups. Container is clear at beginning.

Parameters
[out]fctGrpUnion of Functions
[in]vFctGrpVector of function group (may contain NULL)
[in]sortFctflag if group should be sorted after adding

References ug::FunctionGroup::add(), ug::FunctionGroup::clear(), ConstSmartPtr< T, FreePolicy >::invalid(), ug::FunctionGroup::set_function_pattern(), ug::FunctionGroup::sort(), UG_CATCH_THROW, and UG_THROW.

Referenced by ug::StdDataLinker< TImpl, TData, dim >::set_function_pattern().

◆ CreateUnionOfFunctionGroups() [2/2]

void ug::CreateUnionOfFunctionGroups ( FunctionGroup fctGrp,
const vector< const FunctionGroup * > &  vFctGrp,
bool  sortFct 
)

This function create the union of function groups. Container is clear at beginning.

Parameters
[out]fctGrpUnion of Functions
[in]vFctGrpVector of function group (may contain NULL)
[in]sortFctflag if group should be sorted after adding

References ug::FunctionGroup::add(), ug::FunctionGroup::clear(), ConstSmartPtr< T, FreePolicy >::invalid(), ug::FunctionGroup::set_function_pattern(), ug::FunctionGroup::sort(), UG_CATCH_THROW, and UG_THROW.

Referenced by ug::StdDataLinker< TImpl, TData, dim >::set_function_pattern().

◆ CreateVolumesFromElementIndexList() [1/2]

static void ug::CreateVolumesFromElementIndexList ( Grid g,
const int *  elemIndexList,
int  numElements,
Vertex *const *  vrts,
Volume **  volsOut = NULL 
)
static
Parameters
volsOut(optional) Array of size numElements.

References ug::Grid::create(), ug::VolumeDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_vertex(), and UG_THROW.

Referenced by CreateTKD(), and CreateTKDWithOuterLayer().

◆ CreateVolumesFromElementIndexList() [2/2]

static void ug::CreateVolumesFromElementIndexList ( vector< Volume * > &  volsOut,
int *  elemIndexList,
int  elemIndexListSize,
Vertex **  vrts 
)
static

◆ CUDA_GetElementFromDevice()

template<typename T >
T ug::CUDA_GetElementFromDevice ( T *  p,
size_t  i = 0 
)

References p.

◆ CudaCheckStatus()

template<typename T >
void ug::CudaCheckStatus ( status,
const char *  file,
int  line 
)
inline

References CUDAError(), s, and UG_COND_THROW.

◆ CudaCpyToDevice()

template<typename T >
void ug::CudaCpyToDevice ( typename T::value_type dest,
T &  vec 
)
inline

◆ CudaCpyToHost()

template<typename T >
void ug::CudaCpyToHost ( T &  dest,
typename T::value_type src 
)
inline

◆ CudaCreateAndCopyToDevice()

template<typename T >
T::value_type* ug::CudaCreateAndCopyToDevice ( T &  vec)
inline

◆ CUDAError()

const char * ug::CUDAError ( int  err)

Referenced by CudaCheckStatus(), and MyCudaAlloc().

◆ cutString()

std::string ug::cutString ( double  d,
size_t  width 
)

References s, and scientificStr().

Referenced by DistributionPercentage().

◆ dabs()

double ug::dabs ( double  a)
inline

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [1/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< bool >  ,
"bool"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [2/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< byte ,
"byte"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [3/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< char >  ,
"char"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [4/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< double >  ,
"double"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [5/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< float >  ,
"float"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [6/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< int >  ,
"int"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [7/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< NeuriteProjector::Mapping ,
"Mapping"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [8/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< NeuriteProjector::SurfaceParams ,
"NeuriteProjectorSurfaceParams"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [9/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< uint ,
"uint"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [10/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector1 ,
"vector1"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [11/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector2 ,
"vector2"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [12/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector3 ,
"vector3"   
)

◆ DECLARE_ATTACHMENT_INFO_TRAITS() [13/13]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector4 ,
"vector4"   
)

◆ Decomp() [1/2]

bool ug::Decomp ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  rhs,
size_t &  iNonNullRows,
double  deficitTolerance 
)

◆ Decomp() [2/2]

bool ug::Decomp ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  rhs,
size_t &  iNonNullRows,
std::vector< size_t > &  xinterchange,
double  deficitTolerance 
)

References dabs().

Referenced by SolveDeficit().

◆ DelaunayDebugSave()

template<class TAAPos >
static void ug::DelaunayDebugSave ( Grid g,
const char *  msg,
DelaunayInfo< TAAPos > &  dinfo 
)
static

Referenced by QualityGridGeneration().

◆ DelaunayLineLineIntersection()

static bool ug::DelaunayLineLineIntersection ( vector3 vOut,
const vector3 lineFrom,
const vector3 lineTo,
const vector3 edgeVrt1,
const vector3 edgeVrt2,
vector3  areaNormal,
number  smallsq = SMALL_SQ 
)
static

◆ demangle()

std::string ug::demangle ( const char *  str)

demangles C++ function and class names Works only in POSIX, otherwise returns str

Parameters
strmangled string, containing stuff e.g. 3barI5emptyLi17EE
Returns
the demangled string e.g. bar<empty, 17>

Referenced by TypeName().

◆ demangle_block()

std::string ug::demangle_block ( const char *  str)

demangles C++ function names like _ZZ12ug_backtracev = ug_backtrace(). also demangles them when a lot of them appear "in between". make sure they are seperated by ' ', '
' or '\t' and start with _, like they do in backtrace_symbols. Works only in POSIX, otherwise returns str

See also
demangle
Parameters
strmangled strings, e.g. _ZZ12ug_backtracev
Returns
the demangled string e.g. ug_backtrace()

Referenced by get_gcc_backtrace().

◆ DeselectBoundarySelectionEdges< MGSelector >()

◆ DeselectBoundarySelectionEdges< Selector >()

◆ DeselectBoundarySelectionFaces< MGSelector >()

◆ DeselectBoundarySelectionFaces< Selector >()

◆ DeselectBoundarySelectionVertices< MGSelector >()

◆ DeselectBoundarySelectionVertices< Selector >()

◆ DeselectFamily() [1/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Edge elem 
)
static

◆ DeselectFamily() [2/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Face elem 
)
static

◆ DeselectFamily() [3/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
GridObject elem 
)
static

◆ DeselectFamily() [4/5]

◆ DeselectFamily() [5/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Volume elem 
)
static

◆ Deserialize() [1/9]

template<typename T >
void ug::Deserialize ( std::istream &  buff,
const DenseMatrix< VariableArray2< T > > &  mat 
)
inline

References BlockDeserialize().

◆ Deserialize() [2/9]

template<size_t n>
void ug::Deserialize ( std::istream &  buff,
DenseVector< FixedArray1< number, n > > &  vec 
)
inline

◆ Deserialize() [3/9]

template<typename T >
void ug::Deserialize ( std::istream &  buff,
DenseVector< VariableArray1< double > > &  vec 
)
inline

References Deserialize(), and s.

◆ Deserialize() [4/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
IndexLayout layout 
)

◆ Deserialize() [5/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
IndexLayout::Interface interface 
)

References Deserialize(), and s.

◆ Deserialize() [6/9]

template<typename T , class TIStream >
void ug::Deserialize ( TIStream &  buf,
ParallelVector< T > &  v 
)

Deerialize for ParallelVector<T>

References ug::ParallelVector< TVector >::set_storage_type().

Referenced by AddConnectionsBetweenSlaves(), AllGatherGrid(), pcl::ProcessCommunicator::broadcast(), ug::IDomain< TGrid, TSubsetHandler >::broadcast_refinement_projector(), BroadcastGrid(), Deserialize(), ug::IDomain< TGrid, TSubsetHandler >::deserialize_projector(), DeserializeAndAddGlobalInterface(), DeserializeAndAddGlobalLayout(), DeserializeInterface(), DeserializeLayout(), DeserializeMatrix(), DeserializeMultiGridElements(), DeserializeParallelData(), DeserializeProjector(), DeserializeRow(), DeserializeSubsetHandler(), ug::ComPol_VecCopy< TVector >::extract(), ug::ComPol_VecScaleCopy< TVector >::extract(), ug::ComPol_VecAdd< TVector >::extract(), ug::ComPol_VecScaleAdd< TVector >::extract(), ug::ComPol_VecAddSetZero< TVector >::extract(), ug::ComPol_VecSubtract< TVector >::extract(), ug::ComPol_CheckConsistency< TVector >::extract(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::extract(), ug::ComPol_MatDistributeDiag< TAlgebra >::extract(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::CommunicationScheme< TDerived, TValue >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_MatCopyDiag< TMatrix >::extract(), ug::ComPol_MatCreateOverlap< TMatrix >::extract(), ug::ComPol_CheckDistributedParentStates< TLayout >::extract(), ug::ComPol_NewConstrainedVerticals< TLayout >::extract(), ug::ComPol_CopyAttachment< TLayout, TAttachment >::extract(), ug::ComPol_GatherVecAttachment< TLayout, TAttachment >::extract(), ug::ComPol_SynchronizeDistInfos< TLayout >::extract(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_band(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_bor(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_land(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_lor(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_max(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_min(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_prod(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_sum(), GatherGrid(), GetFileLinesParallel(), pcl::MinimalKeyValuePairAcrossAllProcs(), pcl::ParallelReadFile(), ug::ComPol_MatCreateOverlap< TMatrix >::post_process(), ug::NewLayoutCreator::process(), ug::ParallelNodes::process(), ug::RowSendingScheme< matrix_type >::process(), ug::GeomObjAttachmentSerializer< TGeomObj, TAttachment >::read_data(), ug::SubsetHandlerSerializer::read_data(), ug::SubsetHandlerSerializer::read_info(), ReadFromFile(), ReceiveMatrix(), pcl::TestLayoutIsDoubleEnded(), pcl::TestSizeOfInterfacesInLayoutsMatch(), and ug::IDomain< TGrid, TSubsetHandler >::update_subset_infos().

◆ Deserialize() [7/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
pcl::InterfaceCommunicator< IndexLayout > &  ic 
)

◆ Deserialize() [8/9]

◆ Deserialize() [9/9]

template<typename TValueType , class TIStream >
void ug::Deserialize ( TIStream &  buf,
Vector< TValueType > &  v 
)

◆ DeserializeAndAddGlobalInterface()

void ug::DeserializeAndAddGlobalInterface ( BinaryBuffer stream,
std::vector< AlgebraID > &  interface 
)

◆ DeserializeAndAddGlobalLayout()

void ug::DeserializeAndAddGlobalLayout ( BinaryBuffer stream,
GlobalLayout globalLayout 
)

◆ DeserializeInterface()

template<typename TGlobalToLocal >
void ug::DeserializeInterface ( BinaryBuffer stream,
IndexLayout::Interface interface,
const TGlobalToLocal &  globalToLocal 
)

◆ DeserializeLayout()

template<typename TGlobalToLocal >
void ug::DeserializeLayout ( BinaryBuffer stream,
IndexLayout layout,
const TGlobalToLocal &  globalToLocal 
)

◆ DeserializeParallelData()

template<typename T , class TIStream >
void ug::DeserializeParallelData ( TIStream &  buf,
T &  t,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > &  ic,
pcl::ProcessCommunicator pc 
)

References Deserialize().

◆ DeserializeProjectionHandler()

◆ DeserializeProjector()

◆ DeserializeRow()

template<typename TConnectionType >
size_t ug::DeserializeRow ( BinaryBuffer stream,
stdvector< TConnectionType > &  cons,
ParallelNodes PN 
)

◆ DeserializeUniquePart() [1/2]

template<typename T , class TIStream >
void ug::DeserializeUniquePart ( TIStream &  buf,
ParallelMatrix< T > &  A 
)

◆ DeserializeUniquePart() [2/2]

template<typename TValueType , class TIStream >
void ug::DeserializeUniquePart ( TIStream &  buf,
ParallelVector< TValueType > &  v 
)

◆ Determinant() [1/2]

template<typename T >
MathMatrix<0,0,T>::value_type ug::Determinant ( const MathMatrix< 0, 0, T > &  m)
inline

◆ Determinant() [2/2]

template<typename T >
MathMatrix<4,4,T>::value_type ug::Determinant ( const MathMatrix< 4, 4, T > &  m)
inline

◆ dgetrf_()

void ug::dgetrf_ ( lapack_int m,
lapack_int n,
lapack_double pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

◆ dgetri_()

void ug::dgetri_ ( lapack_int n,
lapack_double pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_double pWork,
lapack_int worksize,
lapack_int info 
)

Referenced by getri().

◆ dgetrs_()

void ug::dgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const lapack_double pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_double b,
lapack_int ldb,
lapack_int info 
)

Referenced by getrs().

◆ diag_step()

template<typename Matrix_type , typename Vector_type >
bool ug::diag_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  damp 
)

Performs a jacobi-step.

Parameters
AMatrix \(A = D - L - R\)
xwill be \(x = D^{-1} b \)
bthe vector b.
dampthe damping factor

References InverseMatMult(), and UG_ASSERT.

◆ Diag_Vanka_step()

template<typename Matrix_type , typename Vector_type >
bool ug::Diag_Vanka_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  relax 
)

◆ DID_REFERENCE_MAPPING()

DebugID ug::DID_REFERENCE_MAPPING ( "REFERENCE_MAPPING"  )

◆ DID_REFERENCE_MAPPING_GLOB_TO_LOC()

DebugID ug::DID_REFERENCE_MAPPING_GLOB_TO_LOC ( "REFERENCE_MAPPING_GLOB_TO_LOC"  )

◆ DimensionOfSubset()

int ug::DimensionOfSubset ( const ISubsetHandler sh,
int  si 
)

returns the current dimension of the subset

Returns the dimension of geometric objects, that are contained in the subset.

This function returns the dimension of the subset. The dimension is simply defined to be the highest reference dimension of all geometric objects contained in the subset If a InterfaceCommunicator is passed, the highest dimension within all procs in the ProcessCommunicator is returned.

Parameters
[in]shISubsetHandler
[in]siSubset Index
Returns
dimension Dimension of Subset DIM_SUBSET_EMPTY_GRID if empty Grid given

References ug::SubsetInfo::get_property(), ug::ISubsetHandler::subset_info(), ug::Variant::to_int(), and UG_CATCH_THROW.

Referenced by ug::ActiveSet< TDomain, TAlgebra >::active_index(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_defect(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_jacobian(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_linear(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), ug::ActiveSet< TDomain, TAlgebra >::check_conv(), ug::DegeneratedLayerManager< dim >::close(), CreateGridOfControlVolumes(), CreateGridOfSubControlVolumeFaces(), CreateGridOfSubControlVolumes(), ug::SubsetGroup::dim(), ug::FunctionPattern::dim_subset(), DimensionOfSubsets(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep_elem(), ug::DomainDiscretizationBase< TDomain, TAlgebra, LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation > >::is_error_valid(), ug::ActiveSet< TDomain, TAlgebra >::lagrange_mat_inv(), ug::DegeneratedLayerManager< dim >::mark_vertices(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep_elem(), ug::VTKOutput< TDim >::print_subset(), and ug::VTKOutput< TDim >::print_subsets().

◆ DimensionOfSubsets()

int ug::DimensionOfSubsets ( const ISubsetHandler sh)

Returns the dimension of geometric objects, that are contained in the subset handler.

This function returns the dimension of the subsets. The dimension is simply defined to be the highest reference dimension of all geometric objects contained the union of all subset If a InterfaceCommunicator is passed, the highest dimension within all procs in the ProcessCommunicator is returned.

Parameters
[in]shISubsetHandler
Returns
dimension Dimension of Subset DIM_SUBSET_EMPTY_GRID if empty Grid given

References dim, DIM_SUBSET_EMPTY_GRID, DimensionOfSubset(), and ug::ISubsetHandler::num_subsets().

Referenced by ug::IApproximationSpace::add(), ug::FunctionPattern::add(), ug::GridPointsOrdering< TDomain, TAlgebra >::create_vtkoutput_ordering(), and ug::VTKOutput< TDim >::print().

◆ DisplayVacantMemory()

void ug::DisplayVacantMemory ( )

Displays information about memory which has not been freed (yet).

References bMemTracker, EnableMemTracker(), GetBytesSizeString(), memTracker, s, and UG_LOG.

◆ DistancePointToRay()

template<class vector_t >
number ug::DistancePointToRay ( vector_t &  vOut,
number tOut,
const vector_t &  v,
const vector_t &  from,
const vector_t &  dir 
)
inline

◆ DistributeDomain() [1/2]

template<typename TDomain >
static bool ug::DistributeDomain ( TDomain &  domainOut,
PartitionMap partitionMap,
bool  createVerticalInterfaces 
)
static

distributes a already distributed domain onto the specified processes

◆ DistributeDomain() [2/2]

◆ DistributeExpansionMarks3D()

static void ug::DistributeExpansionMarks3D ( Grid grid,
SubsetHandler sh,
Selector sel,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds,
Grid::VertexAttachmentAccessor< AInt > &  aaMarkVRT,
Grid::EdgeAttachmentAccessor< AInt > &  aaMarkEDGE,
Grid::FaceAttachmentAccessor< AInt > &  aaMarkFACE 
)
static

◆ DistributeGrid()

bool ug::DistributeGrid ( MultiGrid mg,
SubsetHandler shPartition,
GridDataSerializationHandler serializer,
bool  createVerticalInterfaces,
const std::vector< int > *  processMap = NULL,
const pcl::ProcessCommunicator procComm = pcl::ProcessCommunicator() 
)

distributes/redistributes parts of possibly distributed grids.

This method is still in development... Use with care!

Note that the method assumes that all data serialized and deserialized is stored in a consistent manner - i.e. that all slaves hold the same values as their associated masters.

The method only considers the partition defined on the elements of highest dimension of the given grid. Elements of lower dimension are simply sent alongside those highest dimensional elements.

The method posts the following messages to the message hub of the specified grid:

  • GridMessage_Distribution(GMDT_DISTRIBUTION_STARTS) at the start of the method
  • GridMessage_Creation(GMCT_CREATION_STARTS) before the local grid is cleared
  • GridMessage_Creation(GMCT_CREATION_STOPS) after the local grid has been rebuilt completely
  • GridMessage_Distribution(GMDT_DISTRIBUTION_STOPS) when the method is done.
Note
??? The partition map shPartition has to fulfill the following requirement: All siblings (all children of a parent) have to be in a common subset (not necessarily the subset of their parent). ???
Parameters
procMapis by default NULL and thus ignored. If you specify it make sure to specify a pointer to an array with size shPartition.num_subsets(). All values in the array have to be in the range [0, pcl:NumProcs()[. The procMap associates a process rank with each subset index.

References ug::GridDataSerializationHandler::add(), aGeomObjID, ug::Grid::attach_to_all(), ug::GridLayoutMap::clear(), ug::MGSelector::clear(), ug::Grid::clear_geometry(), pcl::CommunicateInvolvedProcesses(), ug::GridDataSerializationHandler::deserialization_done(), ug::GridDataSerializationHandler::deserialization_starts(), ug::GridDataSerializationHandler::deserialize(), DeserializeMultiGridElements(), ug::Grid::detach_from_all(), ug::DistInfoSupplier::dist_info_attachment(), pcl::ProcessCommunicator::distribute_data(), ug::Grid::distributed_grid_manager(), ug::DistributedGridManager::enable_interface_management(), EraseSelectedObjects(), FillDistInfos(), GDIST_PROFILE, GDIST_PROFILE_END, GDIST_PROFILE_END_, GDIST_PROFILE_FUNC, ug::MGSelector::get_grid_objects(), GetDataPtr(), GMCT_CREATION_STARTS, GMCT_CREATION_STOPS, GMDT_DISTRIBUTION_STARTS, GMDT_DISTRIBUTION_STOPS, ug::DistributedGridManager::grid_layout_map(), ug::DistributedGridManager::grid_layouts_changed(), InvertSelection(), IS_DUMMY, ug::Grid::is_parallel(), LG_DIST, ug::Grid::message_hub(), ug::ISubsetHandler::num_subsets(), PCL_DEBUG_BARRIER, pcl::ProcRank(), ug::BinaryBuffer::read(), ug::GridDataSerializationHandler::read_infos(), ug::GridLayoutMap::remove_empty_interfaces(), SelectElementsForTargetPartition(), ug::GridDataSerializationHandler::serialize(), SerializeMultiGridElements(), SynchronizeAttachedGlobalAttachments(), UG_DLOG, UG_LOG, UG_STATIC_ASSERT, UG_THROW, ug::BinaryBuffer::write(), and ug::GridDataSerializationHandler::write_infos().

Referenced by DistributeDomain(), and ug::LoadBalancer::rebalance().

◆ DistributionPercentage()

std::string ug::DistributionPercentage ( std::vector< double >  values)

References cutString().

Referenced by checksub().

◆ DoFPosition() [1/2]

template<int dim>
bool ug::DoFPosition ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References EDGE, FACE, ReferenceElementDimension(), UG_THROW, VERTEX, and VOLUME.

Referenced by CheckDoFElem(), ug::StdLagrangeElemTransfer< TDomain >::do_restrict(), and ProlongateElemwise().

◆ DoFPosition() [2/2]

template<typename TDomain >
bool ug::DoFPosition ( std::vector< MathVector< TDomain::dim > > &  vPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

◆ DoFPositionElem()

template<int refDim, int dim>
bool ug::DoFPositionElem ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

◆ DoFPositionVertex()

template<int dim>
bool ug::DoFPositionVertex ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

◆ DoFRef() [1/4]

template<typename TMatrix >
const number& ug::DoFRef ( const TMatrix &  mat,
const DoFIndex iInd,
const DoFIndex jInd 
)
inline

References BlockRef().

◆ DoFRef() [2/4]

template<typename TVector >
const number& ug::DoFRef ( const TVector &  vec,
const DoFIndex ind 
)
inline

References BlockRef().

◆ DoFRef() [3/4]

template<typename TMatrix >
number& ug::DoFRef ( TMatrix &  mat,
const DoFIndex iInd,
const DoFIndex jInd 
)
inline

References BlockRef().

Referenced by ug::GridFunctionComponentSpace< TGridFunction >::add_distance_values(), ug::GridFunctionComponentSpace< TGridFunction >::add_norm_values(), AddFunctionValuesToGridCoordinatesP1(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_error(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_prolongation(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_restriction(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_rhs(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::apply_blocks(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::apply_blocks_weighted(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation_p1(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), AverageFunctionDifference(), CheckGFforNaN(), CheckGFValuesWithinBounds(), ComputeGradientCrouzeixRaviart(), ComputeGradientLagrange1(), ComputeGradientPiecewiseConstant(), ug::AdaptionSurfaceGridFunction< TDomain >::copy_from_surface(), ug::AdaptionSurfaceGridFunction< TDomain >::copy_to_surface(), ug::GridFunctionVectorData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientData< TGridFunction >::eval_and_deriv(), ug::GridFunctionNumberData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientComponentData< TGridFunction >::eval_and_deriv(), ug::VectorProxy< TVector >::evaluate(), ug::GradientEvaluator_LagrangeP1< TFunction >::evaluate(), ug::GlobalGridFunctionGradientData< TGridFunction >::evaluate(), ug::ExplicitGridFunctionVector< TGridFunction >::evaluate(), ug::ExplicitGridFunctionGradient< TGridFunction >::evaluate(), ug::GlobalGridFunctionNumberData< TGridFunction, elemDim >::evaluate(), ug::ExplicitGridFunctionValue< TGridFunction >::evaluate(), ug::L2DistIntegrand< TGridFunction >::evaluate(), ug::H1SemiDistIntegrand< TGridFunction >::evaluate(), ug::H1EnergyDistIntegrand< TGridFunction >::evaluate(), ug::H1DistIntegrand< TGridFunction >::evaluate(), ug::MaximumDistIntegrand< TGridFunction >::evaluate(), ug::L2ErrorIntegrand< TGridFunction >::evaluate(), ug::H1ErrorIntegrand< TGridFunction >::evaluate(), ug::L2Integrand< TGridFunction >::evaluate(), ug::H1SemiIntegrand< TGridFunction >::evaluate(), ug::H1EnergyIntegrand< TGridFunction >::evaluate(), ug::H1NormIntegrand< TGridFunction >::evaluate(), ug::StdFuncIntegrand< TGridFunction >::evaluate(), ug::bridge::Evaluate::EvaluateAtVertex(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::extract_blocks(), ug::LocalDoFSubspace< TDomain, TAlgebra, TObject >::extract_matrix(), ug::LocalDoFSubspace< TDomain, TAlgebra, TObject >::extract_rhs(), ug::GridFunctionOrdering< TDomain, TAlgebra >::GridFunctionOrdering(), ug::GridPointsOrdering< TDomain, TAlgebra >::GridPointsOrdering(), IntegrateDiscFlux(), IntegrateNormalComponentOnManifold(), IntegrateNormalGradientOnManifold(), interpolate_from_original_fct(), InterpolateOnDiffElements(), InterpolateOnDiffVertices(), InterpolateOnElementsInner(), MarkOutOfRangeElems(), MaxErrorOnElements(), MaxErrorOnVertices(), ug::CompositeConvCheck< TVector, TDomain >::norm(), ug::GridFunctionVectorData< TGridFunction >::operator()(), ug::GridFunctionNumberData< TGridFunction >::operator()(), ProlongateElemwise(), ug::ActiveSet< TDomain, TAlgebra >::residual_lagrange_mult(), RestrictElemwise(), ScaleGFOnElems(), ug::AssemblingTuner< TAlgebra >::set_dirichlet_val(), ug::SortedGridFunctionOrdering< TDomain, TAlgebra >::SortedGridFunctionOrdering(), SplitAddRow_Symmetric(), StdFuncIntegralOnVertex(), SubtractValueFromComponent(), SumGFValuesAt(), ug::IProjGaussSeidel< TDomain, TAlgebra >::truncateVec(), ug::LocalDoFSubspace< TDomain, TAlgebra, TObject >::update_solution(), ug::VTKOutput< TDim >::write_cell_values_elementwise(), and ug::VTKOutput< TDim >::write_nodal_values_elementwise().

◆ DoFRef() [4/4]

template<typename TVector >
number& ug::DoFRef ( TVector &  vec,
const DoFIndex ind 
)
inline

References BlockRef().

◆ DownCast() [1/2]

template<typename TTo , typename TFrom >
TTo& ug::DownCast ( const TTo &  pfrom,
const TFrom &  p 
)

References p, TypeName(), and UG_ASSERT.

◆ DownCast() [2/2]

template<typename TTo , typename TFrom >
TTo& ug::DownCast ( const TTo &  pfrom,
TFrom &  p 
)

References p, TypeName(), and UG_ASSERT.

◆ Duplicate()

template<class TAPos >
bool ug::Duplicate ( Grid grid,
Selector sel,
const typename TAPos::ValueType &  offset,
TAPos &  aPos,
bool  deselectOld = true,
bool  selectNew = true 
)

◆ EdgeExists()

bool ug::EdgeExists ( SweepLineVertex v0,
SweepLineVertex v1 
)

◆ EdgeOrientationMatches()

UG_API bool ug::EdgeOrientationMatches ( EdgeVertices ev,
Face f 
)

checks if the edge-orientation of the edge and the face matches.

the match is positive if the face contains the vertices of 'ev' in the same order as ev. please note: if the edge is contained by two faces and both faces have the same edge-orientation as ed, then the face-orientation of the faces differ.

References OrientationMatches().

Referenced by AdjustEdgeOrientationToFaceOrientation(), FixFaceOrientation(), and MultiEdgeSplit().

◆ EdgeReferenceMappingTest()

void ug::EdgeReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vGlobPos 
)

◆ ElementDebugInfo_IMPL()

◆ ElementDiameter()

template<typename TElem , typename TDomain >
number ug::ElementDiameter ( TElem &  elem,
TDomain &  domain 
)

References ElementDiameter().

◆ ElementDiameterSq()

template<typename TElem , typename TDomain >
number ug::ElementDiameterSq ( TElem &  elem,
TDomain &  domain 
)

References ElementDiameterSq().

◆ ElementExtensionsSq()

template<int dim>
void ug::ElementExtensionsSq ( ReferenceObjectID  roid,
MathVector< dim > &  ext,
const MathVector< dim > *  vCornerCoords 
)
inline

◆ ElementExtensionsSq< 1 >()

template<>
void ug::ElementExtensionsSq< 1 > ( ReferenceObjectID  roid,
MathVector< 1 > &  ext,
const MathVector< 1 > *  vCornerCoords 
)
inline

◆ ElementExtensionsSq< 2 >()

template<>
void ug::ElementExtensionsSq< 2 > ( ReferenceObjectID  roid,
MathVector< 2 > &  ext,
const MathVector< 2 > *  vCornerCoords 
)
inline

◆ ElementExtensionsSq< 3 >()

◆ ElementGaussSeidelStep()

template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ug::ElementGaussSeidelStep ( const typename TAlgebra::matrix_type A,
GridFunction< TDomain, TAlgebra > &  c,
const typename TAlgebra::vector_type d,
number  relax,
const std::vector< std::string > &  cmp,
number  alpha,
bool  elim_off_diag = false 
)

◆ ElementNormal() [1/2]

template<typename TRefElem , int TWorldDim>
void ug::ElementNormal ( MathVector< TWorldDim > &  normalOut,
const MathVector< TWorldDim > *  vCornerCoords 
)
inline

Normal to an Element in a given Dimension.

◆ ElementNormal() [2/2]

template<int dim>
void ug::ElementNormal ( ReferenceObjectID  roid,
MathVector< dim > &  normalOut,
const MathVector< dim > *  vCornerCoords 
)
inline

◆ ElementNormal< 1 >()

template<>
void ug::ElementNormal< 1 > ( ReferenceObjectID  roid,
MathVector< 1 > &  normalOut,
const MathVector< 1 > *  vCornerCoords 
)
inline

◆ ElementNormal< 2 >()

template<>
void ug::ElementNormal< 2 > ( ReferenceObjectID  roid,
MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

◆ ElementNormal< 3 >()

◆ ElementNormal< ReferenceEdge, 2 >()

template<>
void ug::ElementNormal< ReferenceEdge, 2 > ( MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

Normal to a Line in 2d.

This function returns the normal of a line in 2d. The normal is in clockwise direction to the vector (x1-x0). The norm of the normal is the size of the line.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

Referenced by ElementNormal< 2 >(), ug::hfv1_traits< ReferenceTriangle, 2 >::NormalOnSCVF(), ug::hfv1_traits< ReferenceQuadrilateral, 2 >::NormalOnSCVF(), and ug::fv1_traits_ReferenceFace2d::NormalOnSCVF().

◆ ElementNormal< ReferenceEdge, 3 >()

template<>
void ug::ElementNormal< ReferenceEdge, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Line in 3d.

This function returns the normal of a line in 3d. This can only be understood as the normal on an edge in a 2d manifold defined by at least a triangle. Therefore, it is assumed that vCornerCoords contains at least three vertices. The normal is computed as the outer normal on the first edge (v2-v1) of the triangle and embedded in the 2d subspace defined by the triangle. The norm of the normal is the size of the line.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, VecCross(), VecNormalize(), VecScale(), VecSubtract(), and VecTwoNorm().

Referenced by ElementNormal< 3 >().

◆ ElementNormal< ReferenceQuadrilateral, 3 >()

template<>
void ug::ElementNormal< ReferenceQuadrilateral, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Quadrilateral in 3d.

This function returns the normal of a quadrilateral in 3d. The orientation is right-handed (i.e. forming with the four fingers of the right hand a circle in direction of the corner nodes, the thumb points in the direction of the normal)

The norm of the normal is the size of the quadrilateral.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References VecCross(), VecScale(), and VecSubtract().

Referenced by ElementNormal< 3 >(), ug::fv1_traits< ReferencePyramid, 3 >::NormalOnBF(), and ug::fv1_traits_ReferenceVolume::NormalOnSCVF().

◆ ElementNormal< ReferenceTriangle, 3 >()

template<>
void ug::ElementNormal< ReferenceTriangle, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Triangle in 3d.

This function returns the normal of a triangle in 3d. The orientation is right-handed (i.e. forming with the four fingers of the right hand a circle in direction of the corner nodes, the thumb points in the direction of the normal)

The norm of the normal is the size of the triangle.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References VecCross(), VecScale(), and VecSubtract().

Referenced by ElementNormal< 3 >(), ug::hfv1_traits_ReferenceVolume::NormalOnSCVF(), ug::fv1_traits< ReferencePyramid, 3 >::NormalOnSCVF(), and ug::fv1_traits_ReferenceFace3d::NormalOnSCVF_Face().

◆ ElementNormal< ReferenceVertex, 1 >()

template<>
void ug::ElementNormal< ReferenceVertex, 1 > ( MathVector< 1 > &  normalOut,
const MathVector< 1 > *  vCornerCoords 
)
inline

Normal to a Point in 1d.

This function returns the normal of a point in 1d. This always 1.0.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

Referenced by ElementNormal< 1 >(), ug::hfv1_traits< ReferenceEdge, 1 >::NormalOnSCVF(), and ug::fv1_traits< ReferenceEdge, 1 >::NormalOnSCVF().

◆ ElementNormal< ReferenceVertex, 2 >()

template<>
void ug::ElementNormal< ReferenceVertex, 2 > ( MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

Normal to a Point in 2d.

This function returns the normal of a point in 2d. This can only be understood as the normal on a corner of an edge in 2d. Therefore, it will be assumed that vCornerCoords has exactly 2 entries defining the edge. Then the normal is the one-dim. normal on the first vertex embedded in the 1D subspace defined by the edge.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, and VecNormalize().

Referenced by ElementNormal< 2 >().

◆ ElementNormal< ReferenceVertex, 3 >()

template<>
void ug::ElementNormal< ReferenceVertex, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Point in 3d.

This function returns the normal of a point in 3d. This can only be understood as the normal on a corner of an edge in 3d. Therefore, it will be assumed that vCornerCoords has exactly 2 entries defining the edge. Then the normal is the one-dim. normal on the first vertex embedded in the 1D subspace defined by the edge.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, and VecNormalize().

Referenced by ElementNormal< 3 >().

◆ ElementSideRayIntersection()

template<typename TRefElem , int TWorldDim>
bool ug::ElementSideRayIntersection ( size_t &  sideOut,
MathVector< TWorldDim > &  GlobalIntersectionPointOut,
MathVector< TRefElem::dim > &  LocalIntersectionPoint,
const MathVector< TWorldDim > &  From,
const MathVector< TWorldDim > &  Direction,
bool  bPositiv,
const MathVector< TWorldDim > *  vCornerCoords 
)

ElementSideRayIntersection.

This function computes the side of element, that is intersected by a Ray given in Parameter form by 'From + c * Direction'. The intersection is choose to be at positive parameter if bPositiv == true, else the intersection at negative parameter is choosen. Global and local coordinates of the intersection points are returned as well as the reference element number of the side.

Parameters
[in]FromPoint of Ray
[in]DirectionDirection of Ray
[in]bPositivFlag, whether to search in positiv of negative direction
[in]vCornerCoordsVector of corner coordinates
[out]sideOutside of intersection
[out]GlobalIntersectionPointOutIntersection Point (global)
[out]LocalIntersectionPointIntersection Point (local)

References ug::ElementSideRayIntersectionWrapper< TRefElem, TWorldDim, TRefDim >::apply(), UG_ASSERT, and VecTwoNorm().

◆ ElementSize() [1/2]

template<typename TRefElem , int TWorldDim>
number ug::ElementSize ( const MathVector< TWorldDim > *  vCornerCoords)
inline

Volume of an Element in a given Dimension.

Referenced by ElementSize().

◆ ElementSize() [2/2]

template<int dim>
number ug::ElementSize ( ReferenceObjectID  roid,
const MathVector< dim > *  vCornerCoords 
)
inline

◆ ElementSize< 1 >()

template<>
number ug::ElementSize< 1 > ( ReferenceObjectID  roid,
const MathVector< 1 > *  vCornerCoords 
)
inline

◆ ElementSize< 2 >()

◆ ElementSize< 3 >()

◆ ElementSize< ReferenceEdge, 1 >()

template<>
number ug::ElementSize< ReferenceEdge, 1 > ( const MathVector< 1 > *  vCornerCoords)
inline

Volume of a Line in 1d.

This function returns the volume of a line in 1d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 1 >().

◆ ElementSize< ReferenceEdge, 2 >()

template<>
number ug::ElementSize< ReferenceEdge, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Line in 2d.

This function returns the volume of a line in 2d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 2 >().

◆ ElementSize< ReferenceEdge, 3 >()

template<>
number ug::ElementSize< ReferenceEdge, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Line in 3d.

This function returns the volume of a line in 3d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferenceHexahedron, 3 >()

template<>
number ug::ElementSize< ReferenceHexahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Hexahedron in 3d.

This function returns the volume of a hexahedron in 3d. Therefore, the element is divided into two prisms: 1) {x0, x_1, x_2, x_4; x_5, x_6} and 2) {x0, x_2, x_3, x_4; x_6, x_7}

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (8 corners)
Returns
number Volume of Hexahedron

References VecAppend(), VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferenceOctahedron, 3 >()

template<>
number ug::ElementSize< ReferenceOctahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of an Octahedron in 3d.

This function returns the volume of an octhedron in 3d by calculating the volumes of the upper and lower pyramid the octahedron consists of. The pyramidal volumes are computed via: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (6 corners)
Returns
number Volume of Octahedron

References VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferencePrism, 3 >()

template<>
number ug::ElementSize< ReferencePrism, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Prism in 3d.

This function returns the volume of a prism in 3d. Therefore, the element is divided into pyramid {x0, x_1, x_4, x_3; x_5} and a tetrahedron {x_0, x_1, x_2; x_5}, whose volumes are computed and added.

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (6 corners)
Returns
number Volume of Prism

References VecAppend(), VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferencePyramid, 3 >()

template<>
number ug::ElementSize< ReferencePyramid, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Pyramid in 3d.

This function returns the volume of a pyramid in 3d. The volume is computed via: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (5 corners)
Returns
number Volume of Pyramid

References VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferenceQuadrilateral, 2 >()

template<>
number ug::ElementSize< ReferenceQuadrilateral, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Quadrilateral in 2d.

This function returns the volume of a quadrilateral in 2d. The Volume is computed via: F = 1/2 * | (y3-y1)*(x2-x0) - (x3-x1)*(y2-y0) |

Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Quadrilateral

Referenced by ElementSize< 2 >().

◆ ElementSize< ReferenceQuadrilateral, 3 >()

template<>
number ug::ElementSize< ReferenceQuadrilateral, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Quadrilateral in 3d.

This function returns the volume of a quadrilateral in 3d. The Volume is computed via: F = 1/2 * | (c - a) x (d - b) | (Here, a,b,c,d are the vectors of the corners)

The corner coordinates must be given in counter - clockwise order

Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Quadrilateral

References VecCross(), VecSubtract(), and VecTwoNorm().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferenceTetrahedron, 3 >()

template<>
number ug::ElementSize< ReferenceTetrahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Tetrahedron in 3d.

This function returns the volume of a tetrahedron in 3d. The Volume is computed via: V = 1/6 * | ( (b - a) x (c - a) ) * (d - a) | (Here, a,b,c,d are the vectors of the corners)

This is motivated by the formula: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height
Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Tetrahedron

References VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

◆ ElementSize< ReferenceTriangle, 2 >()

template<>
number ug::ElementSize< ReferenceTriangle, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Triangle in 2d.

This function returns the volume of a triangle in 2d. The Volume is computed via: F = 1/2 * fabs( (x2-x1)*(y1-y0) - (x1-x0)*(y2-y0) )

Parameters
[in]vCornerCoordsVector of corner coordinates (3 corners)
Returns
number Volume of Triangle

Referenced by ElementSize< 2 >().

◆ ElementSize< ReferenceTriangle, 3 >()

template<>
number ug::ElementSize< ReferenceTriangle, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Triangle in 3d.

This function returns the volume of a triangle in 3d. The Volume is computed via: F = 1/2 * | (c - a) x (b - a) | (Here, a,b,c are the vectors of the corners)

Parameters
[in]vCornerCoordsVector of corner coordinates (3 corners)
Returns
number Volume of Triangle

References VecCross(), VecSubtract(), and VecTwoNorm().

Referenced by ElementSize< 3 >().

◆ EliminateInvalidCells()

template<class T >
bool ug::EliminateInvalidCells ( Field< T > &  field,
const T &  noDataValue 
)

eliminates invalid cells by repeatedly filling those cells with averages of neighboring cells

The field has to contain at least one valid cell. If it doesn't, false is returned. The value type T has to support operators += and *= and = 0

References ug::Field< T >::at(), ug::Field< T >::height(), UG_COND_THROW, and ug::Field< T >::width().

Referenced by ug::Heightfield::eliminate_invalid_cells(), and ug::RasterLayers::eliminate_invalid_cells().

◆ EnableDelaunayDebugSave()

static void ug::EnableDelaunayDebugSave ( bool  enable = true)
static

Referenced by QualityGridGeneration().

◆ EnableMemTracker()

bool ug::EnableMemTracker ( bool  b)

With EnableMemTracker(true) you start the memory profiling, with EnableMemTracker(false) you stop it. If you have a section you don't want to be measured, use this code bool bMTEnabled = EnableMemTracker(false);

CallToFunctionWhichShouldNotBeProfiled();
EnableMemTracker(bMTEnabled);

EnableMemTracker(false) has to be called before pcl::Finalize();

Parameters
bif true, mem tracking is on, if false, it is off.
Returns
previous state.

References bMemTracker.

Referenced by DisplayVacantMemory(), UGFinalizeNoPCLFinalize(), ugshell_main(), and UpdateTotalMem().

◆ EnergyNorm() [1/2]

template<typename matrix_type , typename vector_type >
double ug::EnergyNorm ( vector_type x,
matrix_type A 
)

References CloneVector(), and EnergyProd().

◆ EnergyNorm() [2/2]

template<typename matrix_type , typename vector_type >
double ug::EnergyNorm ( vector_type x,
matrix_type A,
vector_type tmp 
)

◆ EnergyProd() [1/4]

template<typename T1 , typename T2 >
double ug::EnergyProd ( const T1 &  v1,
const DenseMatrix< T2 > &  M,
const T1 &  v2 
)
inline

◆ EnergyProd() [2/4]

double ug::EnergyProd ( double  v1,
double  M,
double  v2 
)
inline

◆ EnergyProd() [3/4]

template<typename matrix_type , typename vector_type >
double ug::EnergyProd ( vector_type v1,
matrix_type A,
vector_type v2 
)

References CloneVector(), and EnergyProd().

◆ EnergyProd() [4/4]

template<typename matrix_type , typename vector_type >
double ug::EnergyProd ( vector_type v1,
matrix_type A,
vector_type v2,
vector_type tmp 
)

◆ EraseEmptySubsets()

◆ EraseSelectedObjects< MGSelector >()

◆ EraseSelectedObjects< Selector >()

template void ug::EraseSelectedObjects< Selector > ( Selector )

◆ ErrorStringFromStdException()

std::string ug::ErrorStringFromStdException ( const std::exception *  pex)

Referenced by ug::UGError::UGError().

◆ EvaluateGradientJump_Norm()

template<typename TGradientEvaluator , typename TFunction >
void ug::EvaluateGradientJump_Norm ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

calculates the length of the gradient in each element and then fills aaError depending on the difference in length between neighbored elements.

References CalculateVolume(), dim, s, ug::PointerConstArray< TPtr >::size(), and VecTwoNorm().

◆ EvaluateGradientJump_SideIntegral()

template<typename TGradientEvaluator , typename TFunction >
void ug::EvaluateGradientJump_SideIntegral ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError,
bool  addErrSquareToAAError = false 
)

Calculates the jump between normal components of element-gradients on element sides, then calculates the integral over those jumps on each side and finally sums those integrals into aaError.

References CalculateOuterNormal(), CalculateVolume(), dim, ElementDiameter(), s, ug::PointerConstArray< TPtr >::size(), sq(), and VecDot().

◆ EvaluateResidualErrorP1()

template<typename TFunction >
void ug::EvaluateResidualErrorP1 ( SmartPtr< TFunction >  u,
SmartPtr< UserData< number, TFunction::dim > >  f,
const char *  cmp,
number  time,
int  quadOrder,
std::string  quadType,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

Evaluates the residual error for P1 shape functions (with some simplifications)

References dim, ElementDiameterSq(), and UG_COND_THROW.

Referenced by MarkForAdaption_ResidualErrorP1Absolute(), and MarkForAdaption_ResidualErrorP1Relative().

◆ ExchangeAndAdjustSideErrors()

template<class side_t , class TFunction >
void ug::ExchangeAndAdjustSideErrors ( TFunction &  u,
ANumber  aSideError,
ANumber  aNumElems 
)

Exchages error-values and nbr-element-numbers between distributed sides and adjusts those values in rim-shadows and rim-shadowing elements on the fly (e.g. constrained and constraining elements).

Parameters
[in]uThe grid-function on which error-indication is based
[in]aSideErrorANumber attachment on side_t: The total error accumulated in element-sides.
[in]aNumElemsANumber attachment on side_t: The number of elements which have contributed to aSideError.

References pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_H_MASTER, INT_H_SLAVE, INT_V_MASTER, INT_V_SLAVE, ug::Flag< TEnum, TStorageType, defaultValue >::partially_contains(), PCL_RO_SUM, s, ug::SurfaceView::SHADOW_RIM, ug::GridLevel::SURFACE, and ug::SurfaceView::surface_state().

◆ ExpandFractures2d() [1/2]

bool ug::ExpandFractures2d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

1 dimensional fractures specified in fracInfos are expanded to 2 dimensional subsets. the resulting fractures will then consist of 2 layers of quadrilaterals. On the boundaries triangles are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Selector::begin(), ug::GridSubsetHandler::begin(), CalculateBoundaryVertexNormal2D(), CalculateCreaseNormal(), CollectEdges(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::Selector::end(), ug::GridSubsetHandler::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

◆ ExpandFractures2d() [2/2]

bool ug::ExpandFractures2d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

1 dimensional fractures specified in fracInfos are expanded to 2 dimensional subsets. the resulting fractures will then consist of 2 layers of quadrilaterals. On the boundaries triangles are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Selector::begin(), ug::GridSubsetHandler::begin(), CalculateBoundaryVertexNormal2D(), CalculateCreaseNormal(), CollectEdges(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::Selector::end(), ug::GridSubsetHandler::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

◆ ExpandFractures3d() [1/2]

bool ug::ExpandFractures3d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

2 dimensional fractures specified in fracInfos are expanded to 3 dimensional subsets. the resulting fractures will then consist of 2 layers of hexahedrons. On the boundaries tetrahedrons, prisms and pyramids are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces_dv(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::attach_to_volumes(), ug::Selector::begin(), CalculateBoundaryVertexNormal3D(), CalculateCreaseNormal(), CollectFaces(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Grid::detach_from_volumes(), DistributeExpansionMarks3D(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::ISelector::enable_strict_inheritance(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::get_edge(), ug::Grid::get_face(), ug::Grid::get_side(), ug::ISubsetHandler::get_subset_index(), ug::Volume::get_vertex_indices_of_edge(), ug::Volume::get_vertex_indices_of_face(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex3D(), ug::Volume::num_edges(), ug::Volume::num_faces(), ug::Volume::num_sides(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::VolumeDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ProjectPointToPlane(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::VolumeVertices::vertex(), ug::Selector::vertices_begin(), ug::Selector::vertices_end(), VOLOPT_AUTOGENERATE_FACES, ug::Selector::volumes_begin(), and ug::Selector::volumes_end().

◆ ExpandFractures3d() [2/2]

bool ug::ExpandFractures3d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

2 dimensional fractures specified in fracInfos are expanded to 3 dimensional subsets. the resulting fractures will then consist of 2 layers of hexahedrons. On the boundaries tetrahedrons, prisms and pyramids are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces_dv(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::attach_to_volumes(), ug::Selector::begin(), CalculateBoundaryVertexNormal3D(), CalculateCreaseNormal(), CollectFaces(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Grid::detach_from_volumes(), DistributeExpansionMarks3D(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::ISelector::enable_strict_inheritance(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::get_edge(), ug::Grid::get_face(), ug::Grid::get_side(), ug::ISubsetHandler::get_subset_index(), ug::Volume::get_vertex_indices_of_edge(), ug::Volume::get_vertex_indices_of_face(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex3D(), ug::Volume::num_edges(), ug::Volume::num_faces(), ug::Volume::num_sides(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::VolumeDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ProjectPointToPlane(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::VolumeVertices::vertex(), ug::Selector::vertices_begin(), ug::Selector::vertices_end(), VOLOPT_AUTOGENERATE_FACES, ug::Selector::volumes_begin(), and ug::Selector::volumes_end().

◆ ExportGridToSMESH() [1/2]

bool ug::ExportGridToSMESH ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler psh = NULL,
std::vector< AFloat > *  pvNodeAttributes = NULL,
std::vector< vector3 > *  pvHoles = NULL,
std::vector< vector3 > *  pvRegionPositions = NULL,
std::vector< int > *  pvRegionAttributes = NULL,
std::vector< float > *  pvRegionVolumeConstraints = NULL 
)

writes an SMESH file.

Be sure that grid consists of closed, 2-dimensional surfaces. except of grid, filename and aPos, all parameters are optional. Be sure that all attachments that you pass to the method have been properly attached. If you don't want to specify a parameter simply pass NULL. meaning of optional parameters: pvNodeAttributes: a vector that holds attachments of type AFloat, which store vertex-attributes. psh: subset-handler specifying boundary-indices of vertices and faces. pvHoles: specifies where holes are located. pvRegionPositions: specifies where regions are located. vRegionAttributes: specifies the attribute of a region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified. vRegionVolumeConstraints: specifies the maximal volume of a tetrahedron in each region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified.

References ug::Grid::attach_to_vertices(), ug::Grid::detach_from_vertices(), ug::Grid::faces_begin(), ug::Grid::faces_end(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::Grid::num_faces(), ug::Grid::num_vertices(), ug::FaceVertices::num_vertices(), ug::FaceVertices::vertex(), ug::Grid::vertices_begin(), and ug::Grid::vertices_end().

◆ ExportGridToSMESH() [2/2]

bool ug::ExportGridToSMESH ( Grid grid,
const char *  filename,
AVector3 aPos,
std::vector< AFloat > *  pvNodeAttributes = NULL,
AInt paNodeBoundaryMarker = NULL,
AInt paFaceBoundaryMarker = NULL,
std::vector< vector3 > *  pvHoles = NULL,
std::vector< vector3 > *  pvRegionPositions = NULL,
std::vector< int > *  pvRegionAttributes = NULL,
std::vector< float > *  pvRegionVolumeConstraints = NULL 
)

writes an SMESH file.

Be sure that grid consists of closed, 2-dimensional surfaces. except of grid, filename and aPos, all parameters are optional. Be sure that all attachments that you pass to the method have been properly attached. If you don't want to specify a parameter simply pass NULL. meaning of optional parameters: pvNodeAttributes: a vector that holds attachments of type AFloat, which store vertex-attributes. paNodeBoundaryMarker: specifies the boundary-index of a vertex. paFaceBoundaryMarker: specifies the boundary-index of a face. pvHoles: specifies where holes are located. pvRegionPositions: specifies where regions are located. vRegionAttributes: specifies the attribute of a region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified. vRegionVolumeConstraints: specifies the maximal volume of a tetrahedron in each region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified.

References ug::Grid::AttachmentAccessor< TElem, TAttachment >::access(), ug::Grid::attach_to_vertices(), ug::Grid::detach_from_vertices(), ug::Grid::faces_begin(), ug::Grid::faces_end(), ug::Grid::has_vertex_attachment(), ug::Grid::num_faces(), ug::Grid::num_vertices(), ug::FaceVertices::num_vertices(), ug::FaceVertices::vertex(), ug::Grid::vertices_begin(), and ug::Grid::vertices_end().

Referenced by SaveGrid3d_IMPL().

◆ ExportGridToSWC()

◆ ExportGridToTETGEN()

◆ ExportGridToTIKZ()

◆ ExportGridToUG()

bool ug::ExportGridToUG ( const Grid g,
const SubsetHandler shFace,
const SubsetHandler shVolume,
const char *  fileNamePrefix,
const char *  lgmName,
const char *  problemName,
int  convex 
)

converts tetgen files (*.node, *.face and *.ele) to UG files (*.lgm, *.ng)

PLEASE NOTE: This algorithm uses Grid::mark shFace has to contain the interface-faces that separate the different volume-subsets (specified in shVolume).

lgmName, problemName and convex correlate to the parameters that appear at the beginning of each lgm-file.

References aPosition, ug::Grid::attach_to_edges(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::TElemSelector< TBaseElem >::begin(), ug::GridSubsetHandler::begin(), CollectAllVerticesForNG(), CollectInnerVertices(), CollectLines(), CollectSurfaceVertices(), EDGEOPT_STORE_ASSOCIATED_FACES, ug::Grid::enable_options(), ug::TElemSelector< TBaseElem >::end(), ug::GridSubsetHandler::end(), FACEOPT_AUTOGENERATE_EDGES, FACEOPT_STORE_ASSOCIATED_EDGES, FixFaceOrientation(), ug::GridSubsetHandler::num(), ug::ISubsetHandler::num_subsets(), SHE_FACE, SHE_VOLUME, UG_LOG, VRTOPT_STORE_ASSOCIATED_FACES, WriteLGM(), and WriteNG().

◆ ExportGridToUG_2D()

◆ ExtendSelection< MGSelector >()

template void ug::ExtendSelection< MGSelector > ( MGSelector sel,
size_t  extSize,
ISelector::status_t  status 
)

◆ ExtendSelection< Selector >()

template void ug::ExtendSelection< Selector > ( Selector sel,
size_t  extSize,
ISelector::status_t  status 
)

◆ extract_by_grouping()

template<typename TGroupObj , typename GF >
void ug::extract_by_grouping ( std::vector< std::vector< DoFIndex > > &  vvDoFIndex,
const GF &  c,
const std::vector< size_t > &  vFullRowCmp,
const std::vector< size_t > &  vRemainCmp 
)

References dim, EDGE, UG_THROW, and VERTEX.

◆ extract_path()

string ug::extract_path ( const string &  filename)

◆ ExtractAlgebraIndices()

template<typename TDomain >
void ug::ExtractAlgebraIndices ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< size_t > &  fctIndex 
)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References EDGE, FACE, VERTEX, and VOLUME.

◆ ExtractAlgebraIndices2()

template<typename TDomain , typename TBaseElem >
void ug::ExtractAlgebraIndices2 ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< size_t > &  fctIndex 
)

References ug::SurfaceView::ALL.

◆ ExtractByObject()

template<typename TGroupObj , typename TGridFunction >
void ug::ExtractByObject ( std::vector< DoFIndex > &  vIndex,
const TGridFunction &  c,
const std::vector< size_t > &  vFullRowCmp,
const std::vector< size_t > &  vRemainCmp 
)

◆ ExtractPositions() [1/4]

template<typename TFunction >
void ug::ExtractPositions ( const TFunction &  u,
std::vector< MathVector< TFunction::domain_type::dim > > &  vPos 
)

extracts the positions of the degrees of freedom and stores them into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
uthe underlying grid function
vPosthe array of positions (to be filled)

References ExtractPositions().

◆ ExtractPositions() [2/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
const size_t  fct,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

extracts the positions of the degrees of freedom of a component and stores them together with the index in a std::pair into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
fctthe component of the trial space
vPosthe array of positions (to be filled)

References EDGE, FACE, VERTEX, and VOLUME.

◆ ExtractPositions() [3/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

extracts the positions of the degrees of freedom and stores them into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
vPosthe array of positions (to be filled)

References EDGE, FACE, VERTEX, and VOLUME.

Referenced by ExtractPositions(), ug::GridFunctionPositionProvider< TGridFunction >::get_positions(), ug::DirectionalOrdering< TAlgebra, TDomain, O_t >::init(), ug::LexOrdering< TAlgebra, TDomain, O_t >::init(), OrderDirectionYForDofDist(), OrderDirectionZForDofDist(), OrderDownwindForDofDist(), OrderLexForDofDist(), WriteMatrixToConnectionViewer(), WriteVectorCSV(), and WriteVectorToConnectionViewer().

◆ ExtractPositions() [4/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

extracts the positions of the degrees of freedom and stores them together with the index in a std::pair into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
vPosthe array of positions (to be filled)

References EDGE, FACE, VERTEX, and VOLUME.

◆ ExtractPositionsElem() [1/3]

template<typename TDomain , typename TBaseElem >
void ug::ExtractPositionsElem ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
const size_t  fct,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

◆ ExtractPositionsElem() [2/3]

template<typename TDomain , typename TBaseElem >
void ug::ExtractPositionsElem ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

◆ ExtractPositionsElem() [3/3]

template<typename TDomain , typename TBaseElem >
void ug::ExtractPositionsElem ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

◆ ExtractPositionsVertex() [1/2]

template<typename TDomain >
void ug::ExtractPositionsVertex ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

References ug::SurfaceView::ALL.

◆ ExtractPositionsVertex() [2/2]

template<typename TDomain >
void ug::ExtractPositionsVertex ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

References ug::SurfaceView::ALL.

◆ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector1 ,
Grid::VertexAttachmentAccessor< Attachment< vector1 > >  ,
uint  ,
std::vector< Volume * > *   
)

◆ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector2 ,
Grid::VertexAttachmentAccessor< Attachment< vector2 > >  ,
uint  ,
std::vector< Volume * > *   
)

◆ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector3 ,
Grid::VertexAttachmentAccessor< Attachment< vector3 > >  ,
uint  ,
std::vector< Volume * > *   
)

◆ Extrude< vector1 >()

template void ug::Extrude< vector1 > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector1 ,
uint  ,
Attachment< vector1 > &  ,
std::vector< Volume * > *   
)

◆ Extrude< vector2 >()

template void ug::Extrude< vector2 > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector2 ,
uint  ,
Attachment< vector2 > &  ,
std::vector< Volume * > *   
)

◆ Extrude< vector3 >()

template void ug::Extrude< vector3 > ( Grid ,
std::vector< Vertex * > *  ,
std::vector< Edge * > *  ,
std::vector< Face * > *  ,
const vector3 ,
uint  ,
Attachment< vector3 > &  ,
std::vector< Volume * > *   
)

◆ ExtrudeCylinder()

◆ ExtrudeLayers()

void ug::ExtrudeLayers ( Grid grid,
const RasterLayers layers,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
ISubsetHandler sh,
bool  allowForTetsAndPyras,
const ANumber aRelZOut = NULL 
)

grid has to contain a triangluation of the surface grid of raster-layers. Only x- and y- coordinates of the vertices of the reference triangulation are considered, since all vertices are projected to their respective layers. By setting 'allowForTetsAndPyras = true', one will receive less elements. By setting 'allowForTetsAndPyras = false', the resulting mesh will consist of (possibly rather flat) prisms only.

Parameters
gridThe grid whose surface triangulation will be extended to a volume mesh.
layersA stack of rasters, defining the layered domain.
aaPosvertex positions
shElement subsets will be assigned depending on the index of the layer in which an element is located.
allowForTetsAndPyras'true': the resulting mesh will only contain necessary elements to represent the individual layers. 'false': For each layer in 'layers' a complete layer of prisms is generated. Individual prisms are then assigned to subsets depending on which layer contains their longest edge.
aRelZOut(optional) Vertex attachment to which the relative height of each vertex will be written. This value will equal the layer index for which a specific vertex has been created.

References ug::Grid::AttachmentAccessor< TElem, TAttachment >::access(), ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::begin(), ug::Grid::begin_marking(), CalculateCenter(), ug::Grid::clear_marks(), CollapseEdge(), ug::Grid::detach_from_vertices(), ug::Grid::end(), end_for, ug::Grid::end_marking(), EO_DEFAULT, ug::ISubsetHandler::erase_subset(), Extrude(), ExtrudeLayersMixed(), for_each_in_vec, ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), ug::Grid::has_vertex_attachment(), ug::RasterLayers::layer_t::heightfield, ug::Grid::is_marked(), lg_end_for, lg_for_each, lg_for_each_vertex_in_elem, ug::Grid::mark(), ug::RasterLayers::min_height(), ug::Heightfield::no_data_value(), ug::Grid::num_faces(), ug::RasterLayers::num_layers(), ug::ISubsetHandler::num_subsets(), ug::Grid::num_vertices(), ug::FaceVertices::num_vertices(), ug::RasterLayers::relative_to_global_height(), ug::Grid::reserve(), ug::PointerConstArray< TPtr >::size(), ug::RasterLayers::size(), SMALL, ug::RasterLayers::top(), ug::RasterLayers::trace_line_down(), ug::RasterLayers::trace_line_up(), UG_COND_THROW, UG_LOG, ug::AttachmentAccessor< TElem, TAttachment, TElemHandler >::valid(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertices().

◆ ExtrudeLayersMixed()

void ug::ExtrudeLayersMixed ( Grid grid,
const RasterLayers layers,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
ISubsetHandler sh,
const ANumber aRelZOut 
)

grid has to contain a triangluation of the surface grid of raster-layers. Only x- and y- coordinates of the vertices of the reference triangulation are considered, since all vertices are projected to their respective layers. The resulting mesh will contain prisms, pyramids, and tetrahedra

Parameters
gridThe grid whose surface triangulation will be extended to a volume mesh.
layersA stack of rasters, defining the layered domain.
aaPosvertex positions
shElement subsets will be assigned depending on the index of the layer in which an element is located.
aRelZOut(optional) Vertex attachment to which the relative height of each vertex will be written. This value will equal the layer index for which a specific vertex has been created.

References ug::Grid::AttachmentAccessor< TElem, TAttachment >::access(), ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::Grid::begin(), ug::Grid::create(), ug::Grid::detach_from_vertices(), ug::Grid::end(), ug::Grid::has_vertex_attachment(), ug::RasterLayers::layer_t::heightfield, ug::RasterLayers::heightfield(), ug::Heightfield::interpolate(), ug::RasterLayers::min_height(), ug::Heightfield::no_data_value(), ug::Grid::num(), ug::Grid::num_faces(), ug::RasterLayers::num_layers(), ug::Grid::num_vertices(), ug::FaceVertices::num_vertices(), ug::Grid::reserve(), ug::TriangleDescriptor::set_vertex(), ug::RasterLayers::size(), ug::RasterLayers::top(), Triangulate(), UG_COND_THROW, UG_LOG, ug::AttachmentAccessor< TElem, TAttachment, TElemHandler >::valid(), ug::TriangleDescriptor::vertex(), and ug::FaceVertices::vertices().

Referenced by ExtrudeLayers().

◆ ExtrusionHelper_CheckOrientation() [1/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector1 > > &  aaPos 
)
static

References UG_THROW.

◆ ExtrusionHelper_CheckOrientation() [2/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector2 > > &  aaPos 
)
static

References UG_THROW.

◆ ExtrusionHelper_CheckOrientation() [3/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector3 > > &  aaPos 
)
static

References CheckOrientation().

Referenced by Extrude().

◆ FaceIsOnRightSide()

static bool ug::FaceIsOnRightSide ( Face f,
Edge e 
)
static

◆ FacePlane()

static int ug::FacePlane ( const vector3 p)
static

References p.

Referenced by CheckPoint(), and TriCubeIntersection().

◆ FactorizeILU()

template<typename Matrix_type >
bool ug::FactorizeILU ( Matrix_type &  A)

◆ FactorizeILUBeta()

template<typename Matrix_type >
bool ug::FactorizeILUBeta ( Matrix_type &  A,
number  beta 
)

◆ FactorizeILUSorted()

template<typename Matrix_type >
bool ug::FactorizeILUSorted ( Matrix_type &  A,
const number  eps = 1e-50 
)

◆ FilenameAndPathWithoutExtension()

string ug::FilenameAndPathWithoutExtension ( string  str)

◆ FilenameWithoutExtension()

string ug::FilenameWithoutExtension ( string  str)

◆ FilenameWithoutPath()

◆ FillCornerCoordinates() [1/2]

template<typename TDomain >
void ug::FillCornerCoordinates ( typename TDomain::position_type  vCornerCoordsOut[],
const RegularVertex vtx,
const TDomain &  domain 
)

returns the coordinates of a vertex (specialization)

◆ FillCornerCoordinates() [2/2]

◆ FillDistInfos()

static void ug::FillDistInfos ( MultiGrid mg,
SubsetHandler shPartition,
MGSelector msel,
DistInfoSupplier distInfos,
const std::vector< int > *  processMap,
const pcl::ProcessCommunicator procComm,
bool  createVerticalInterfaces,
vector< bool > &  partitionIsEmpty 
)
static
Parameters
partitionIsEmptyIf no elements are selected for a target-partition, the corresponding entry is set to false. This can happen even if shPartition contains elements for that partition: vmaster elements whose parents are not sent to the same partition don't have to be sent either and are thus ignored...

References ug::MGSelector::clear(), ug::MGSelector::empty(), GDIST_PROFILE_FUNC, LG_DIST, ug::ISubsetHandler::num_subsets(), pcl::ProcRank(), SelectElementsForTargetPartition(), and UG_DLOG.

Referenced by DistributeGrid().

◆ find()

IndexLayout::Interface::iterator ug::find ( IndexLayout::Interface interface,
size_t  i 
)
inline

Referenced by ug::SubsetGroup::add(), ug::FunctionGroup::add(), ug::bridge::ClassNameNode::add_base_class(), ug::ITransferOperator< TDomain, TAlgebra >::add_constraint(), ug::NeumannBoundaryBase< TDomain >::add_inner_subsets(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_linear(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_rhs(), AppendInterface(), pcl::CollectAssociatedProcesses(), CollectIErrEstData(), ug::SubsetGroup::contains(), ug::FunctionGroup::contains(), ug::NewLayoutCreator::create_node(), ug::ParallelNodes::create_node(), ElementGaussSeidelStep(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::extract_blocks(), FindDuplicates(), ug::MapSparseMatrix< TValueType >::get_connection(), ug::DoFDistribution::get_connections(), ug::node_tree::Traverser_IntersectFaces::handle_collision_triangles(), ug::UzawaSlicing< TGridFunction >::init(), ug::ConstrainingEdge::is_constrained_object(), ug::ConstrainingFace::is_constrained_object(), IsInInterface(), LoadGridFromTXT(), ug::DoFDistribution::manage_grid_function(), PluginLoaded(), PrintFaceFromVrts(), ug::Grid::register_observer(), ug::SubsetGroup::remove(), ug::FunctionGroup::remove(), ug::PeriodicBoundaryManager::remove_slave(), RemoveInterface(), ug::Grid::replace_vertex(), pcl::SendRecvListsMatch(), ug::ConstrainingEdge::unconstrain_object(), ug::ConstrainingFace::unconstrain_object(), ug::Grid::unregister_edge(), ug::Grid::unregister_face(), ug::Grid::unregister_observer(), and ug::Grid::unregister_volume().

◆ find_pid()

template<typename TLayout >
TLayout::iterator ug::find_pid ( TLayout &  layout,
int  pid 
)
Parameters
layoutlayout to search
pidproc_id to find
Returns
layout.end() if not found, else it so that layout.proc_id(it) == pid

◆ findBlockSize()

static size_t ug::findBlockSize ( const std::vector< std::vector< size_t > > &  vvConnection)
static

References gcd().

Referenced by ComputeCuthillMcKeeOrder().

◆ FindClosestVertexInArray() [1/2]

template<class TAAPosVRT >
int ug::FindClosestVertexInArray ( const std::vector< Vertex * > &  array,
const Vertex p,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

returns the index of the closest vertex to p if closer than snapThreshold.

Referenced by FindClosestVertexInPointSet().

◆ FindClosestVertexInArray() [2/2]

template<class TAAPosVRT >
int ug::FindClosestVertexInArray ( std::vector< Vertex * > &  array,
const Vertex p,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

returns the index of the closest vertex to p smaller than snapThreshold.

returns -1 if nothing was found.

References p, and VecDistanceSq().

◆ FindClosestVertexInPointSet()

template<class TAAPosVRT , class vector_t >
int ug::FindClosestVertexInPointSet ( const vector_t *  pointSet,
const Vertex p,
TAAPosVRT &  aaPos,
number  snapThreshold,
size_t  numPoints 
)

returns the index of the closest vertex to p if closer than snapThreshold

returns the index of the closest vertex to p smaller than snapThreshold.

returns -1 if nothing was found.

References FindClosestVertexInArray(), p, and boost::vertices().

◆ FindCloseVertexInArray() [1/2]

template<class TAAPosVRT >
int ug::FindCloseVertexInArray ( const std::vector< Vertex * > &  array,
const typename TAAPosVRT::ValueType &  p,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

returns the index of the first vertex closer to p than snapThreshold.

returns -1 if nothing was found.

Referenced by ResolveTriangleIntersections().

◆ FindCloseVertexInArray() [2/2]

template<class TAAPosVRT >
int ug::FindCloseVertexInArray ( std::vector< Vertex * > &  array,
const typename TAAPosVRT::ValueType &  p,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

returns the index of the first vertex closer to p than snapThreshold.

returns -1 if nothing was found.

References p, and VecDistanceSq().

◆ FindContainingElement()

◆ FindDuplicates()

vector<string> ug::FindDuplicates ( const vector< string > &  vec)

◆ FindElementsInIntersectingNodes()

template<class tree_t >
bool ug::FindElementsInIntersectingNodes ( std::vector< typename tree_t::elem_t > &  elemsOut,
const tree_t &  tree,
const typename tree_t::box_t &  bbox 
)

◆ FindElementWithLargestAspectRatio()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithLargestAspectRatio ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPosVRT &  aaPos 
)

◆ FindElementWithLargestMaxAngle()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithLargestMaxAngle ( Grid grid,
TIterator  elementsBegin,
TIterator  elementsEnd,
TAAPosVRT &  aaPos 
)

References CalculateMaxAngle().

◆ FindElementWithLargestVolToRMSFaceAreaRatio()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithLargestVolToRMSFaceAreaRatio ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPosVRT &  aaPos 
)

◆ FindElementWithSmallestAspectRatio()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithSmallestAspectRatio ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPosVRT &  aaPos 
)

◆ FindElementWithSmallestMinAngle()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithSmallestMinAngle ( Grid grid,
TIterator  elementsBegin,
TIterator  elementsEnd,
TAAPosVRT &  aaPos 
)

References CalculateMinAngle().

◆ FindElementWithSmallestVolToRMSFaceAreaRatio()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindElementWithSmallestVolToRMSFaceAreaRatio ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPosVRT &  aaPos 
)

◆ FindLargestFace()

template<class TIterator , class TAAPosVRT >
Face* ug::FindLargestFace ( TIterator  facesBegin,
TIterator  facesEnd,
TAAPosVRT &  aaPos 
)

References FaceArea().

◆ FindLargestVolume()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindLargestVolume ( TIterator  volumesBegin,
TIterator  volumesEnd,
TAAPosVRT &  aaPos 
)

References CalculateVolume().

◆ FindLongestEdge()

template<class TEdgeIterator , class TAAPosVRT >
Edge* ug::FindLongestEdge ( TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
TAAPosVRT &  aaPos 
)

◆ FindLowestLeafNodeLevel()

template<class tree_t >
size_t ug::FindLowestLeafNodeLevel ( const tree_t &  tree)

◆ FindPositionInInterfaces()

void ug::FindPositionInInterfaces ( std::vector< std::pair< int, size_t > > &  vIndexInterface,
const IndexLayout layout,
size_t  index 
)

◆ FindSlivers()

template<class TIter , class TAAPos >
size_t ug::FindSlivers ( std::vector< typename TIter::value_type > &  sliversOut,
TIter  elemsBegin,
TIter  elemsEnd,
number  thresholdRatio,
TAAPos  aaPos,
bool  clearContainer = true 
)

Searchs for slivers in the given list of elements.

Slivers are flat tetrahedrons. Only tetrahedral elements will be regarded!

References IsSliver(), and ROID_TETRAHEDRON.

◆ FindSmallestVolume()

template<class TIterator , class TAAPosVRT >
TIterator::value_type ug::FindSmallestVolume ( TIterator  volumesBegin,
TIterator  volumesEnd,
TAAPosVRT &  aaPos 
)

References CalculateVolume().

◆ FinishShinyCallLogging()

void ug::FinishShinyCallLogging ( )

References callsOnHold, and profileCalls.

◆ FixFaceOrientation()

template<class TFaceIterator >
void ug::FixFaceOrientation ( Grid grid,
TFaceIterator  facesBegin,
TFaceIterator  facesEnd 
)

creates uniform orientation of neighboured and boundary faces.

This algorithm uses Grid::mark

swaps orientation of faces so that all neighboured faces share the same orientation and boundary faces are oriented with an outward normal

Value type of TFaceIterator has to be compatible with Face*.

Note that all faces between faceBegin and facesEnd have to be members of the specified grid.

References ug::Grid::associated_elements(), ug::Grid::begin_marking(), ug::Face::edge_desc(), EdgeOrientationMatches(), ug::Grid::end_marking(), ug::Grid::flip_orientation(), GetNeighbours(), ug::Grid::is_marked(), ug::Grid::mark(), ug::Face::num_edges(), NumAssociatedVolumes(), OrientationMatches(), ug::PointerConstArray< TPtr >::size(), and ug::Grid::unmark().

◆ FixOrientation()

template<class TVolIterator , class TAAPosVRT >
int ug::FixOrientation ( Grid grid,
TVolIterator  volsBegin,
TVolIterator  volsEnd,
TAAPosVRT &  aaPosVRT 
)

Changes orientation of badly oriented volumes.

changes the orientation of volumes so that CheckOrientation returns true for all volumes between volsBegin and volsEnd.

Make sure that all volumes between volsBegin and volsEnd are registerd volumes of the specified grid.

Returns
number of reoriented volumes.

References CheckOrientation(), and ug::Grid::flip_orientation().

◆ forward_gs_step()

template<typename Matrix_type , typename Vector_type >
void ug::forward_gs_step ( Vector_type &  c,
const Matrix_type &  A,
const Vector_type &  d,
const size_t  i,
const number  relaxFactor 
)

commmon GaussSeidel-step-calls for a single index 'i'

References InverseMatMult(), MatMultAdd(), and s.

Referenced by ug::ProjGaussSeidel< TDomain, TAlgebra >::step(), and ug::ProjSymmetricGaussSeidel< TDomain, TAlgebra >::step().

◆ GatherGrid()

◆ GatherVectorOnOne() [1/2]

◆ GatherVectorOnOne() [2/2]

template<typename T >
void ug::GatherVectorOnOne ( IndexLayout agglomeratedMaster,
IndexLayout agglomeratedSlave,
pcl::InterfaceCommunicator< IndexLayout > &  com,
ParallelVector< T > &  collectedVec,
const ParallelVector< T > &  vec,
ParallelStorageType  type,
bool  bRoot 
)

gathers the vector vec to collectedVec on one processor

Parameters
agglomeratedMastermaster agglomeration layout. only nonempty if Root=true
agglomeratedSlaveslave agglomeration layout. only nonempty if Root=false
com
collectedVec(output) result on proc with bRoot=true
vec(input) the distributed vec
typecan be PST_ADDITIVE or PST_CONSISTENT
bRoot

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::ParallelVector< TVector >::get_storage_type(), ug::ParallelVector< TVector >::has_storage_type(), PROFILE_FUNC_GROUP, PST_ADDITIVE, PST_CONSISTENT, pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), ug::ParallelVector< TVector >::set(), ug::ParallelVector< TVector >::set_storage_type(), UG_CATCH_THROW, UG_COND_THROW, and UG_THROW.

◆ gcd()

static size_t ug::gcd ( size_t  a,
size_t  b 
)
static

greatest common divisor

Referenced by findBlockSize().

◆ GeneralizedEigenvalueProblemComplex()

template<typename A_type , typename TLambdaVectorType >
int ug::GeneralizedEigenvalueProblemComplex ( DenseMatrix< A_type > &  A,
DenseMatrix< A_type > &  X,
TLambdaVectorType &  lambda,
DenseMatrix< A_type > &  B,
bool  bSortEigenvalues = false 
)

References UG_ASSERT.

◆ GenerateAlgebraIDHashList()

◆ GenerateGlobalConsecutiveIndices()

◆ GenerateIcosahedron()

void ug::GenerateIcosahedron ( Grid grid,
const vector3 center,
number  radius,
AVector3 aPos 
)

Creates an Icosahedron.

Creates an Icosahedron with the given radius. (outer circle)

References ug::Grid::attach_to_vertices(), ug::Grid::create(), ug::Grid::has_vertex_attachment(), and VecScaleAdd().

Referenced by GenerateIcosphere().

◆ GenerateIcosphere() [1/2]

void ug::GenerateIcosphere ( Grid grid,
const vector3 center,
number  radius,
int  numRefinements,
AVector3 aPos,
Selector psel = NULL 
)

Creates a ico-sphere by repeatedly refining an icosahedron.

Make sure not to choose a too high number of refinements. Number of triangles produced equals 20 * 4^numRefinements.

You may optionally specify a selector. If you do so, the selector will be used for internal calculations. The whole sphere will be selected when the algorithm is done (all vertices, edges and faces).

If you won't specify a selector, an internal selector has to be created, which introduces a runtime overhead of O(n). This could be avoided by a more elaborate implementation.

References ug::Selector::assign_grid(), ug::Grid::attach_to_edges(), ug::ISelector::autoselection_enabled(), ug::Selector::clear(), ug::Grid::detach_from_edges(), ug::ISelector::enable_autoselection(), GenerateIcosahedron(), MakeGeometry3d(), and Refine().

Referenced by GenerateIcosphere().

◆ GenerateIcosphere() [2/2]

void ug::GenerateIcosphere ( std::vector< vector3 > &  trisOut,
const vector3 center,
number  radius,
size_t  refinements 
)

Generates a list of triangle-corners for the given Ico-Sphere.

Parameters
trisOutstd::vector of points. Contents are not cleared! Computed vertices are written to this vector. Three consecutive points form a triangle.
centerCenter of the sphere.
radiusRadius of the sphere.
refinementsnumber of refinements used to generate the Icosphere.

References aPosition, ug::Grid::attach_to_vertices(), ug::Grid::begin(), ug::Grid::end(), GenerateIcosphere(), ug::Grid::num(), ug::FaceVertices::num_vertices(), and ug::FaceVertices::vertex().

◆ GenVecCross< 2 >()

template<>
void ug::GenVecCross< 2 > ( MathVector< 2 > &  result,
const MathVector< 2 > &  v_1,
const MathVector< 2 > &  v_2 
)
inline

specialization of the "generalized vector product" in 2d.

See also
GenVecCross

◆ GenVecCross< 3 >()

template<>
void ug::GenVecCross< 3 > ( MathVector< 3 > &  result,
const MathVector< 3 > &  v_1,
const MathVector< 3 > &  v_2 
)
inline

specialization of the "generalized vector product" in 3d.

See also
GenVecCross

References VecCross().

◆ GeometricApproximationDegree() [1/2]

number ug::GeometricApproximationDegree ( SimpleGrid sg)

sums GeometricApproximationDegree for each triangle.

the returned degree lies between 0 and 1. The closer to 1 the better.

References ug::SimpleGrid::triangles.

Referenced by GeometricApproximationDegree().

◆ GeometricApproximationDegree() [2/2]

number ug::GeometricApproximationDegree ( SimpleGrid sg,
int  triIndex 
)

the returned degree lies between 0 and 1. The closer to 1 the better.

returns the minimal dot-product of each normal of the triangle-corners with the triangles normal.

References GeometricApproximationDegree(), ug::SimpleGrid::triangleNormals, ug::SimpleGrid::triangles, and ug::SimpleGrid::vertexNormals.

◆ get_algebra_indices() [1/2]

void ug::get_algebra_indices ( ConstSmartPtr< DoFDistribution dd,
ConstrainedVertex hgVrt,
std::vector< Vertex * > &  vConstrainingVrt,
std::vector< size_t > &  constrainedInd,
std::vector< std::vector< size_t > > &  vConstrainingInd 
)
inline

◆ get_algebra_indices() [2/2]

template<typename TDomain >
void ug::get_algebra_indices ( ConstSmartPtr< DoFDistribution dd,
ConstrainedVertex hgVrt,
std::vector< Vertex * > &  vConstrainingVrt,
std::vector< size_t > &  constrainedInd,
std::vector< std::vector< size_t > > &  vConstrainingInd,
const SortVertexPos< TDomain::dim > &  sortVertexPos 
)
inline

Extract DoF indices for constrained and constraining indices from DoF distribution.

One cannot simply use algebra indices as constrainers and constrained vertices might not have the same number of functions defined on them. Mapping correct indices is only possible through DoF indices.

Parameters
ddDoF distribution
hgVrtthe hanging vertex
vConstrainingVrtvector of constraining vertices
constrainedIndvector of DoFs indices on hanging vertex
vConstrainingIndvector of (vector of constraining DoF indices) for constraining vertices
sortVertexPossorting functional for constrainers

References CollectConstraining(), and UG_COND_THROW.

◆ get_clock_s()

◆ get_mem()

void* ug::get_mem ( size_t  size)

References allocated, bMemTracker, memTracker, p, and s.

Referenced by operator new(), and operator new[]().

◆ get_number_on_coords()

template<typename TGridFunction >
number ug::get_number_on_coords ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
typename TGridFunction::domain_type::position_type  pos,
number  time,
const int  si 
)

◆ get_val() [1/2]

◆ get_val() [2/2]

size_t ug::get_val ( size_t  i)
inline

◆ GetAct()

void ug::GetAct ( string  str,
vector< size_t > &  act 
)

Referenced by AttachAct(), and LoadGridFromGRDECL().

◆ GetAspectRatioHistogram()

template<class TElemIter , class TAAPos >
void ug::GetAspectRatioHistogram ( std::vector< int > &  histoOut,
TElemIter  elemsBegin,
TElemIter  elemsEnd,
int  histoSecs,
TAAPos &  aaPos,
Grid::AttachmentAccessor< typename PtrToValueType< typename TElemIter::value_type >::base_type, Attachment< int > > *  paaHistoSec = NULL 
)

References AspectRatio(), and UG_COND_THROW.

◆ GetAspectRatioInfo()

template<class TElemIter , class TAAPos >
AspectRatioInfo ug::GetAspectRatioInfo ( TElemIter  elemsBegin,
TElemIter  elemsEnd,
TAAPos &  aaPos 
)

◆ GetBlockGSCorrection() [1/2]

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrection ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
DenseMatrix< VariableArray2< double > > &  AlocInv,
std::vector< size_t > &  indices 
)

◆ GetBlockGSCorrection() [2/2]

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrection ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
DenseMatrix< VariableArray2< double > > &  AlocInv,
std::vector< size_t > &  indices,
DenseVector< VariableArray1< double > > &  tmp,
DenseVector< VariableArray1< double > > &  tmp2 
)

Calculates the gs correction by updating all unknowns in 'indices' at once with the inverse of this block stored in AlocInv.

Parameters
Aa SparseMatrix
xsolution to be GS-updated
bright hand side b
AlocInvcached inverse on a block/slice, calculated with GetSliceDenseInverse
indicesthe indices of the block
tmpa temporary vector

References BlockRef(), GetSize(), MatMult(), and s.

Referenced by ug::BlockGaussSeidel< TAlgebra, backward, forward >::block_step(), and GetBlockGSCorrection().

◆ GetBlockGSCorrectionILUT()

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrectionILUT ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
SmartPtr< ILUTPreconditioner< CPUAlgebra > > &  ilut,
std::vector< size_t > &  indices,
CPUAlgebra::vector_type tmp,
CPUAlgebra::vector_type tmp2 
)

Calculates the gs correction by updating all unknowns in 'indices' at once with the inverse of this block implicitely in 'ilut'.

Parameters
Aa SparseMatrix
xsolution to be GS-updated
bright hand side b
ilutcached ilut inverse type
indicesthe indices of the block
tmpa temporary vector
tmp2another temporary vector

References BlockRef(), GetSize(), ug::Vector< TValueType >::resize(), and s.

Referenced by ug::SparseBlockGaussSeidel< TAlgebra, backward, forward >::block_step(), and ug::SparseBlockGaussSeidel2< TAlgebra, backward, forward >::block_step().

◆ GetBoundaryRefinementRule()

GlobalBoundaryRefinementRule ug::GetBoundaryRefinementRule ( )

get procedure for boundary refinement rule variable

References g_boundaryRefinementRule.

◆ GetBytesSizeString()

std::string ug::GetBytesSizeString ( size_t  s,
int  length = 0 
)

Helper function to display byte sizes like 2411724 => 2,3 MB

Parameters
[in]ssize in bytes
[in]lengthif != 0, fixes the returned string length to this length (for tables etc.).
Returns
string describing the size s=1024 -> 1 kb

References s.

Referenced by DisplayVacantMemory(), and ug::LU< TAlgebra >::init_dense().

◆ GetColorFromDefaultPalette()

UG_API vector3 ug::GetColorFromDefaultPalette ( int  index)

◆ GetCols() [1/3]

template<typename T >
size_t ug::GetCols ( const DenseMatrix< T > &  t)
inline

◆ GetCols() [2/3]

template<>
size_t ug::GetCols ( const number t)
inline

◆ GetCols() [3/3]

◆ GetConnectedNeighbor()

template<typename TBaseElem >
TBaseElem * ug::GetConnectedNeighbor ( Grid g,
typename TBaseElem::side *  face,
TBaseElem elem 
)

Finds the neighbor connected through a side.

Parameters
[in]g
[in]

References ug::Grid::associated_elements(), and UG_COND_THROW.

◆ GetConnectedNeighbor< Edge >()

template Edge* ug::GetConnectedNeighbor< Edge > ( Grid ,
Vertex ,
Edge  
)

◆ GetConnectedNeighbor< Face >()

template Face* ug::GetConnectedNeighbor< Face > ( Grid ,
Edge ,
Face  
)

◆ GetConnectedNeighbor< Volume >()

template Volume* ug::GetConnectedNeighbor< Volume > ( Grid ,
Face ,
Volume  
)

◆ GetCoord()

void ug::GetCoord ( string  str,
vector< double > &  coord 
)

Referenced by LoadGridFromGRDECL().

◆ GetCuthillMcKeeOrder()

template<typename TSparseMatrix >
void ug::GetCuthillMcKeeOrder ( const TSparseMatrix &  mat,
std::vector< size_t > &  newIndex,
bool  reverse = true,
bool  bPreserveConsec = false 
)
Parameters
matA sparse matrix
newIndexthe cuthill-mckee ordered new indices

References ComputeCuthillMcKeeOrder().

◆ GetDefaultPositionAttachment()

template<class TAttachment >
UG_API TAttachment& ug::GetDefaultPositionAttachment ( )
inline

this method can be used to retrieve the default position attachments for different types.

Please note that only existing default attachments are returned.

Valid types for TAttachment are:

  • APosition (AVector3) the default 3d position type. Returns aPosition.
  • APosition2 (AVector2) the default 2d position type. Returns aPosition2.
  • APosition1 (AVector1) the default 1d position type. Returns aPosition1.

◆ GetDefaultPositionAttachment< APosition >()

References aPosition.

◆ GetDefaultPositionAttachment< APosition1 >()

References aPosition1.

◆ GetDefaultPositionAttachment< APosition2 >()

References aPosition2.

◆ GetDiag() [1/2]

void ug::GetDiag ( double &  a,
double  b 
)
inline

◆ GetDiag() [2/2]

template<typename T1 , typename T2 >
void ug::GetDiag ( T1 &  m1,
const T2 &  m 
)
inline

References UG_ASSERT.

◆ GetDiagSqrt() [1/2]

void ug::GetDiagSqrt ( double &  a,
double  b 
)
inline

◆ GetDiagSqrt() [2/2]

template<typename T1 , typename T2 >
void ug::GetDiagSqrt ( T1 &  v,
const T2 &  m 
)
inline

References UG_ASSERT.

◆ GetDim()

void ug::GetDim ( string  str,
vector< size_t > &  dim 
)

References dim.

Referenced by LoadGridFromGRDECL().

◆ GetDirectorySeperatorPos()

string::size_type ug::GetDirectorySeperatorPos ( const string &  str)

◆ GetDomainPositionAttachment()

template<class TDomain >
TDomain::position_attachment_type& ug::GetDomainPositionAttachment ( TDomain &  dom)

Helper function for subdivision volumes multigrid smoothing.

Returns the default position attachment from the given domain needed for hierarchy smoothing using subdivision volumes schemes.

◆ GetEdgeOnTheLeft()

◆ GetElemDiscItemOnSubset()

template<typename TElemOut , typename TElemIn >
void ug::GetElemDiscItemOnSubset ( std::vector< TElemOut * > &  vSubsetElemDiscOut,
const std::vector< TElemIn * > &  vElemDiscIn,
const std::vector< SubsetGroup > &  vSSGrp,
int  si,
bool  clearVec = true 
)

This function selects from a given set of element discretizations those who work on a given subset.

At the same time, pointers are converted e.g. from TElemIn=IElemDisc<TDomain> to typename TElemOut=IElemError<TDomain>

Parameters
[out]vSubsetElemDiscElem Disc items working on subset (pointers type of type TElemOut)
[in]vElemDiscElem Disc items to select from (pointers type of type TElemIn)
[in]siSubset index
[in]clearVecflag if vector should be cleared

References contains().

◆ GetElemDiscOnSubset()

◆ GetFileLinesParallel()

string ug::GetFileLinesParallel ( string  filename,
size_t  fromline,
size_t  toline,
bool  includeLineNumbers,
const pcl::ProcessCommunicator pc = pcl::ProcessCommunicator() 
)

◆ GetFilenameExtension()

string ug::GetFilenameExtension ( const string &  str)

◆ GetFirstRegularVertex()

static int ug::GetFirstRegularVertex ( Grid grid,
const SubsetHandler sh,
Face q 
)
static

THIS METHOD USES Grid::mark This method is required since double-triangles have to be avoided during triangulation of quadrilaterals which share two edges whith another quadrilateral (this e.g. occurs in fracture geometries with neumann boundaries). Note that only faces in the same subset as q are regarded.

References ug::Grid::begin_marking(), CollectAssociated(), ug::Grid::end_marking(), ug::ISubsetHandler::get_subset_index(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::num_vertices(), and ug::FaceVertices::vertex().

Referenced by WriteLGM(), and WriteNG().

◆ GetHighestReferencedIndex()

◆ GetInverse() [1/2]

template<typename T >
bool ug::GetInverse ( block_traits< T >::inverse_type &  inv,
const T &  m 
)
inline

◆ GetInverse() [2/2]

bool ug::GetInverse ( number inv,
const number m 
)
inline

◆ GetInversePermutation()

bool ug::GetInversePermutation ( const std::vector< size_t > &  perm,
std::vector< size_t > &  invPerm 
)

Function to calculate the inverse of a permutation

Parameters
[in]permarray mapping i -> perm[i]
[out]invPermarray mapping i -> invPerm[i] so that perm[ invPerm[i] ] = i
Returns
true if perm[i] == i forall i.

References UG_COND_THROW.

Referenced by ug::ILU< TAlgebra >::apply_ordering(), ug::SCCOrdering< TAlgebra, O_t >::compute(), and ug::ILUTPreconditioner< TAlgebra >::preprocess_mat2().

◆ GetLayoutTargetProcs()

template<class TLayout >
void ug::GetLayoutTargetProcs ( std::vector< int > &  procsOut,
const TLayout &  layout 
)

◆ GetLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::GetLocalMatrix ( const TGlobalMatrix &  mat,
TLocalMatrix &  localMat 
)
inline

◆ GetLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::GetLocalMatrix ( const TGlobalMatrix &  mat,
TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References GetLocalMatrix().

◆ GetLocalVector()

template<typename TVector >
void ug::GetLocalVector ( LocalVector lvec,
const TVector &  vec 
)

References BlockRef(), ug::LocalIndices::comp(), ug::LocalVector::get_indices(), ug::LocalIndices::index(), ug::LocalVector::num_all_dof(), ug::LocalVector::num_all_fct(), and ug::LocalVector::value().

Referenced by ug::ActiveSet< TDomain, TAlgebra >::active_index_elem(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::AssembleDefect(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleDefect(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleErrorEstimator(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::AssembleJacobian(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleJacobian(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::AssembleMassMatrix(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleMassMatrix(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleRhs(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::AssembleStiffnessMatrix(), ug::StdGlobAssembler< TDomain, TAlgebra >::AssembleStiffnessMatrix(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::calc_error(), ug::ActiveSet< TDomain, TAlgebra >::check_conv_elem(), ug::H1SemiDistIntegrand< TGridFunction >::evaluate(), ug::H1EnergyDistIntegrand< TGridFunction >::evaluate(), ug::UserDataIntegrandSq< TData, TGridFunction >::evaluate(), ug::H1SemiIntegrand< TGridFunction >::evaluate(), ug::H1EnergyIntegrand< TGridFunction >::evaluate(), ug::UserDataDistIntegrandSq< TData, TGridFunction >::evaluate(), ug::UserDataIntegrand< TData, TGridFunction >::evaluate(), ug::bridge::Evaluate::NumberValuedUserDataEvaluator< TDomain, TAlgebra >::evaluateOnThisProcess(), ug::bridge::Evaluate::VectorValuedUserDataEvaluator< TDomain, TAlgebra >::evaluateOnThisProcess(), ug::bridge::Evaluate::VectorValuedUserDataEvaluator< TDomain, TAlgebra >::evaluateOnThisProcessNeighbouring(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::FinishTimestepElem(), ug::StdGlobAssembler< TDomain, TAlgebra >::FinishTimestepElem(), ug::LSGFGlobAssembler< TDomain, TAlgebra, TExtrapolation >::PrepareTimestepElem(), ug::StdGlobAssembler< TDomain, TAlgebra >::PrepareTimestepElem(), ug::LocalVectorTimeSeries::read_values(), ug::VTKOutput< TDim >::write_cell_data_elementwise(), and ug::VTKOutput< TDim >::write_nodal_data_elementwise().

◆ GetMaxEdgeLength()

template<class TAAPos >
number ug::GetMaxEdgeLength ( Volume vol,
TAAPos &  aaPos 
)

◆ GetMinimum()

template<typename TGridFunction >
number ug::GetMinimum ( TGridFunction &  gridFct,
const char *  cmp,
const char *  subsets 
)

◆ GetMinMaxNumElements()

template<class tree_t >
std::pair<size_t, size_t> ug::GetMinMaxNumElements ( const tree_t &  tree,
size_t  lvl 
)

◆ GetMultType()

◆ GetNeighborhood()

template<typename TElem >
void ug::GetNeighborhood ( Grid grid,
size_t  extSize,
TElem *  elem,
typename geometry_traits< TElem >::const_iterator &  begin,
typename geometry_traits< TElem >::const_iterator &  end 
)

Finds the neighborhood of a given size for specified element and type.

Parameters
[in]grid
[in]extSizesize of neighborhood
[in]elemstart element
[out]beginiterator
[out]enditerator Returns iterators begin and end for accessing elements of type

References ug::Grid::begin_marking(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ug::Selector::num_levels(), SelectAssociatedGridObjects(), and ug::PointerConstArray< TPtr >::size().

◆ GetNumberOfDigits()

unsigned int ug::GetNumberOfDigits ( uint64_t  i)
inline

Referenced by ConvertNumber(), and ConvertNumberSI().

◆ GetNumberOfDoFsOfPyramid()

size_t ug::GetNumberOfDoFsOfPyramid ( int  p)

References p.

Referenced by LagrangeNumDoFOnSub(), and LagrangeNumDoFs().

◆ GetOpposingSide() [1/3]

Vertex * ug::GetOpposingSide ( Grid g,
Edge elem,
Vertex side 
)

◆ GetOpposingSide() [2/3]

Edge * ug::GetOpposingSide ( Grid g,
Face elem,
Edge side 
)

◆ GetOpposingSide() [3/3]

Face * ug::GetOpposingSide ( Grid g,
Volume elem,
Face side 
)

◆ GetParent()

static pair<GridObject*, char> ug::GetParent ( BinaryBuffer in,
const vector< Vertex * > &  vVrts,
const vector< Edge * > &  vEdges,
const vector< Face * > &  vFaces,
const vector< Volume * > &  vVols 
)
static

◆ GetPositionAttachmentDimension() [1/2]

template<typename TAPos >
UG_API int ug::GetPositionAttachmentDimension ( )
inline

this function returns the dimension of the position attachment at compile time

◆ GetPositionAttachmentDimension() [2/2]

template<typename TAPos >
int ug::GetPositionAttachmentDimension ( )
inline

this function returns the dimension of the position attachment at compile time

◆ GetProfileNode() [1/2]

const UGProfileNode * ug::GetProfileNode ( const char *  name)

◆ GetProfileNode() [2/2]

const UGProfileNode * ug::GetProfileNode ( const char *  name,
const UGProfileNode node 
)

References PROFILER_NULL_NODE.

◆ GetProfilerAvailable()

bool ug::GetProfilerAvailable ( )

◆ GetProperty()

void ug::GetProperty ( string  str,
vector< double > &  prop 
)

Referenced by AttachProperty().

◆ GetQuadratureType()

QuadType ug::GetQuadratureType ( const std::string &  name)

returns Identifier from string

References BEST, GAUSS, GAUSS_LEGENDRE, name, NEWTON_COTES, TrimString(), and UG_THROW.

Referenced by Integrate().

◆ getrf() [1/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
lapack_double pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References dgetrf_().

◆ getrf() [2/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
lapack_float pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

getrf computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges.

The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

Parameters
rowsThe number of rows of the matrix A. M >= 0.
colsThe number of columns of the matrix A. N >= 0.
pColMajorMatrixdimension (LDA,N) On entry, the M-by-N matrix to be factored. On exit, the factors L and U from the factorization A = P*L*U; the unit diagonal elements of L are not stored.
ldaThe leading dimension of the array A. LDA >= max(1,M).
pPivotarray, dimension (min(M,N)) The pivot indices; for 1 <= i <= min(M,N), row i of the matrix was interchanged with row IPIV(i).
Returns
= 0: successful exit < 0: if = -i, the i-th argument had an illegal value > 0: if = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.*

References sgetrf_().

Referenced by ug::DenseMatrixInverse< TStorage >::invert(), Invert(), and InvertNdyn().

◆ getrf() [3/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
std::complex< lapack_double > *  pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References zgetrf_().

◆ getrf() [4/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
std::complex< lapack_float > *  pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References cgetrf_().

◆ getri() [1/2]

lapack_int ug::getri ( lapack_int  n,
lapack_double pColMajorMatrix,
lapack_int  lda,
const int *  pPivot,
lapack_double pWork,
lapack_int  worksize 
)
inline

References dgetri_().

◆ getri() [2/2]

lapack_int ug::getri ( lapack_int  n,
lapack_float pColMajorMatrix,
lapack_int  lda,
const int *  pPivot,
lapack_float pWork,
lapack_int  worksize 
)
inline

References sgetri_().

Referenced by Invert(), and InvertNdyn().

◆ GetRightLeftUnitIndex()

static bool ug::GetRightLeftUnitIndex ( int &  rightIndex,
int &  leftIndex,
Grid grid,
Face face,
const SubsetHandler shVolume 
)
static

◆ GetRows() [1/3]

template<typename T >
size_t ug::GetRows ( const DenseMatrix< T > &  t)
inline

◆ GetRows() [2/3]

template<>
size_t ug::GetRows ( const number t)
inline

◆ GetRows() [3/3]

template<typename T >
size_t ug::GetRows ( const T &  t)
inline

◆ getrs() [1/2]

lapack_int ug::getrs ( eTransposeMode  transposeMode,
lapack_int  n,
lapack_int  nrOfRHS,
const double *  pColMajorMatrix,
lapack_int  lda,
const lapack_int pPivot,
lapack_double pRHS,
lapack_int  ldb 
)
inline

References dgetrs_(), and TransposeModeToChar().

◆ getrs() [2/2]

lapack_int ug::getrs ( eTransposeMode  transposeMode,
lapack_int  n,
lapack_int  nrOfRHS,
const float *  pColMajorMatrix,
lapack_int  lda,
const lapack_int pPivot,
lapack_float pRHS,
lapack_int  ldb 
)
inline

◆ getScaling() [1/2]

template<typename T >
double ug::getScaling ( const AlphaVec_Expression< T > &  t)

◆ getScaling() [2/2]

template<typename T >
double ug::getScaling ( const T &  t)

Referenced by operator*(), and VectorAssign().

◆ GetSelectedElementIndices()

◆ GetSelfMem()

size_t ug::GetSelfMem ( const Shiny::ProfileNode *  p)

References p, and selfmem.

◆ GetSize() [1/3]

template<typename T >
size_t ug::GetSize ( const DenseVector< T > &  t)
inline

◆ GetSize() [2/3]

template<>
size_t ug::GetSize ( const number t)
inline

◆ GetSize() [3/3]

◆ GetSliceDenseInverse() [1/2]

template<typename TSparseMatrixType >
void ug::GetSliceDenseInverse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
DenseMatrix< VariableArray2< double > > &  AlocInv 
)

◆ GetSliceDenseInverse() [2/2]

template<typename TSparseMatrixType >
void ug::GetSliceDenseInverse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
DenseMatrix< VariableArray2< double > > &  AlocInv,
DenseMatrix< VariableArray2< typename TSparseMatrixType::value_type > > &  tmp 
)
Parameters
Aa sparse matrix
indicesmap local -> global indices
AlocInvinverse on the indices to be used in
See also
GetBlockGSCorrection

References BlockMatrixToDoubleMatrix(), GetLocalMatrix(), and Invert().

Referenced by ug::BlockGaussSeidel< TAlgebra, backward, forward >::block_preprocess(), and GetSliceDenseInverse().

◆ GetSliceSparse()

template<typename TSparseMatrixType >
void ug::GetSliceSparse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
CPUAlgebra::matrix_type R 
)
Parameters
Aa sparse matrix
indicesmap local -> global indices
Rsparse matrix slice in local indices

References BlockRef(), and GetRows().

Referenced by ug::SparseBlockGaussSeidel< TAlgebra, backward, forward >::block_preprocess(), and ug::SparseBlockGaussSeidel2< TAlgebra, backward, forward >::block_preprocess().

◆ GetSmallestLocalSubsetDimension()

template<class TElem >
static char ug::GetSmallestLocalSubsetDimension ( typename Grid::traits< TElem >::secure_container &  nbrs,
MultiElementAttachmentAccessor< AChar > &  aaDim 
)
static

◆ GetStandardElementProlongation()

template<typename TDomain >
SmartPtr< IElemProlongation< TDomain > > ug::GetStandardElementProlongation ( const LFEID lfeid)

◆ GetStandardElementRestriction()

template<typename TDomain >
SmartPtr< IElemRestriction< TDomain > > ug::GetStandardElementRestriction ( const LFEID lfeid)

◆ GetTotalMem()

size_t ug::GetTotalMem ( const Shiny::ProfileNode *  p)

References p, and totalmem.

◆ GetUniqueFVGeomID()

template<class TType >
size_t ug::GetUniqueFVGeomID ( )

This method associates a unique unsigned integer value with each type.

References ug::UniqueFVGeomIDProvider::inst(), and ug::UniqueFVGeomIDProvider::new_id().

◆ getVector() [1/3]

template<typename T >
const T& ug::getVector ( const AlphaVec_Expression< T > &  t)

◆ getVector() [2/3]

template<typename TDomain , typename TAlgebra >
const TAlgebra::vector_type& ug::getVector ( const GridFunction< TDomain, TAlgebra > &  t)

◆ getVector() [3/3]

template<typename T >
const T& ug::getVector ( const T &  t)

Referenced by operator*(), and VectorAssign().

◆ GetZcorn()

void ug::GetZcorn ( string  str,
vector< double > &  zcorn 
)

◆ GramDeterminant() [1/3]

template<typename T >
MathMatrix<0,0,T>::value_type ug::GramDeterminant ( const MathMatrix< 0, 0, T > &  m)
inline

◆ GramDeterminant() [2/3]

template<size_t M, typename T >
MathMatrix<0,M,T>::value_type ug::GramDeterminant ( const MathMatrix< 0, M, T > &  m)
inline

◆ GramDeterminant() [3/3]

template<size_t N, typename T >
MathMatrix<N,0,T>::value_type ug::GramDeterminant ( const MathMatrix< N, 0, T > &  m)
inline

◆ GridFunctionDistance2() [1/3]

template<typename TDistIntegrand , typename TGridFunction >
number ug::GridFunctionDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

computes an (abstract) distance between two functions

This function computes the (abstract) TDiffError-difference between two grid functions that may be defined on different grids. The element loop is performed over the finer level.

Parameters
[in]spGridFct1grid function 1
[in]cmp1symbolic name of component function
[in]spGridFct2grid function 2
[in]cmp2symbolic name of component function
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number H1-norm of difference

References IntegrateSubsets(), and UG_THROW.

◆ GridFunctionDistance2() [2/3]

template<typename TDistIntegrand , typename TGridFunction >
number ug::GridFunctionDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename TDistIntegrand::weight_type >  spWeights 
)

Computes (weighted) distance.

References IntegrateSubsets(), and UG_THROW.

◆ GridFunctionDistance2() [3/3]

template<typename TDistIntegrand , typename TGridFunction >
number ug::GridFunctionDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename TDistIntegrand::weight_type >  spWeights,
number  distAvg12 
)

Computes (weighted) distance with shift for averages.

References IntegrateSubsets(), and UG_THROW.

◆ GridLevelAppendix()

◆ H1Distance()

template<typename TGridFunction >
number ug::H1Distance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets = NULL 
)

References H1Distance2().

Referenced by H1Error().

◆ H1Distance2()

template<typename TGridFunction >
number ug::H1Distance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets = NULL 
)

Referenced by H1Distance().

◆ H1EnergyDistance() [1/2]

template<typename TGridFunction >
number ug::H1EnergyDistance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Distance in H1 semi norm (with select subsets & weights)

References H1EnergyDistance2().

◆ H1EnergyDistance() [2/2]

template<typename TGridFunction >
number ug::H1EnergyDistance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Distance in H1 semi norm (all subsets, with weights)

References H1EnergyDistance2().

◆ H1EnergyDistance2() [1/2]

template<typename TGridFunction >
number ug::H1EnergyDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Squared distance in H1 semi norm (with select subsets & weights)

Referenced by H1EnergyDistance(), and H1EnergyDistance2().

◆ H1EnergyDistance2() [2/2]

template<typename TGridFunction >
number ug::H1EnergyDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Squared distance in H1 semi norm (all subsets, with weights)

References H1EnergyDistance2().

◆ H1EnergyNorm() [1/4]

template<typename TGridFunction >
number ug::H1EnergyNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder 
)

References H1EnergyNorm().

◆ H1EnergyNorm() [2/4]

template<typename TGridFunction >
number ug::H1EnergyNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

References H1EnergyNorm().

◆ H1EnergyNorm() [3/4]

template<typename TGridFunction >
number ug::H1EnergyNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights 
)

References H1EnergyNorm().

◆ H1EnergyNorm() [4/4]

template<typename TGridFunction >
number ug::H1EnergyNorm ( TGridFunction &  gridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

References H1EnergyNorm2().

Referenced by H1EnergyNorm().

◆ H1EnergyNorm2()

template<typename TGridFunction >
number ug::H1EnergyNorm2 ( TGridFunction &  gridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

compute energy -norm of a function on the whole domain (or on selected subsets)

This function computes the integral over \( \| q \|^2 \) where the velocity is given by \( q:= \kappa \nabla u \) of a grid function u.

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute (OPTIONAL)
[in]weightselement-wise matrix-valued weights kappa (OPTIONAL)
Returns
number l2-norm

References IntegrateSubsets(), and UG_COND_THROW.

Referenced by H1EnergyNorm().

◆ H1Error() [1/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder 
)

for lua shell

References H1Distance().

◆ H1Error() [2/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

for lua shell

References H1Distance().

◆ H1Error() [3/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spExactGrad,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder 
)

References H1Error().

◆ H1Error() [4/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spExactGrad,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder,
const char *  subsets 
)

compute H1 error of a function on the whole domain or on some subsets

This function computes the H1-difference between a given analytic function and a grid function.

Parameters
[in]spExactSolanalytic function
[in]spExactGradanalytic gradient
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), and UG_THROW.

Referenced by H1Error().

◆ H1Norm() [1/3]

template<typename TGridFunction >
number ug::H1Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder 
)

References H1Norm().

◆ H1Norm() [2/3]

template<typename TGridFunction >
number ug::H1Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

References H1Norm().

◆ H1Norm() [3/3]

template<typename TGridFunction >
number ug::H1Norm ( TGridFunction &  u,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL 
)

References H1Norm2().

Referenced by H1Norm().

◆ H1Norm2()

template<typename TGridFunction >
number ug::H1Norm2 ( TGridFunction &  u,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL 
)

References IntegrateSubsets(), and UG_THROW.

Referenced by H1Norm().

◆ H1SemiDistance() [1/2]

template<typename TGridFunction >
number ug::H1SemiDistance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Distance in H1 semi norm (with select subsets & weights)

References H1SemiDistance2().

◆ H1SemiDistance() [2/2]

template<typename TGridFunction >
number ug::H1SemiDistance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Distance in H1 semi norm (all subsets, with weights)

References H1SemiDistance2().

◆ H1SemiDistance2() [1/2]

template<typename TGridFunction >
number ug::H1SemiDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Squared distance in H1 semi norm (with select subsets & weights)

Referenced by H1SemiDistance(), and H1SemiDistance2().

◆ H1SemiDistance2() [2/2]

template<typename TGridFunction >
number ug::H1SemiDistance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
ConstSmartPtr< typename H1SemiDistIntegrand< TGridFunction >::weight_type >  weights 
)

Squared distance in H1 semi norm (all subsets, with weights)

References H1SemiDistance2().

◆ H1SemiError() [1/2]

template<typename TGridFunction >
number ug::H1SemiError ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder 
)

Distance in H1 semi norm (all subsets)

References H1SemiError().

◆ H1SemiError() [2/2]

template<typename TGridFunction >
number ug::H1SemiError ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

Distance in H1 semi norm (with subset selection)

References H1SemiError2().

Referenced by H1SemiError().

◆ H1SemiError2()

template<typename TGridFunction >
number ug::H1SemiError2 ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

Distance in H1 semi norm (with subset selection)

Referenced by H1SemiError().

◆ H1SemiNorm() [1/5]

template<typename TGridFunction >
number ug::H1SemiNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder 
)

References H1SemiNorm().

◆ H1SemiNorm() [2/5]

template<typename TGridFunction >
number ug::H1SemiNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

References H1SemiNorm().

◆ H1SemiNorm() [3/5]

template<typename TGridFunction >
number ug::H1SemiNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

References H1SemiNorm().

◆ H1SemiNorm() [4/5]

template<typename TGridFunction >
number ug::H1SemiNorm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights 
)

References H1SemiNorm().

◆ H1SemiNorm() [5/5]

template<typename TGridFunction >
number ug::H1SemiNorm ( TGridFunction &  gridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

Computes the H1SemiNorm.

References H1SemiNorm2().

Referenced by H1SemiNorm().

◆ H1SemiNorm2()

template<typename TGridFunction >
number ug::H1SemiNorm2 ( TGridFunction &  gridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets = NULL,
ConstSmartPtr< typename H1SemiIntegrand< TGridFunction >::weight_type >  weights = SPNULL 
)

compute H1 semi-norm of a function on the whole domain (or on selected subsets)

This function computes the H1 semi-norm of a grid function

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute (OPTIONAL)
[in]weightselement-wise weights (OPTIONAL)
Returns
number l2-norm

References IntegrateSubsets(), and UG_COND_THROW.

Referenced by H1SemiNorm().

◆ HangingNormalOnSCVF()

template<typename TRefElem , int TWorldDim>
void ug::HangingNormalOnSCVF ( MathVector< TWorldDim > &  outNormal,
const MathVector< TWorldDim > *  vCornerCoords 
)

◆ hash_key() [1/14]

size_t ug::hash_key ( const EdgeVertices key)

References HashKey().

◆ hash_key() [2/14]

size_t ug::hash_key ( const FaceVertices key)

References HashKey().

◆ hash_key() [3/14]

template<>
size_t ug::hash_key ( const string &  key)

◆ hash_key() [4/14]

size_t ug::hash_key ( const VolumeVertices key)

References HashKey().

◆ hash_key() [5/14]

size_t ug::hash_key ( Edge key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PEdgeVertices>

References HashKey().

◆ hash_key() [6/14]

size_t ug::hash_key ( EdgeDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PEdgeVertices>

References HashKey().

◆ hash_key() [7/14]

size_t ug::hash_key ( EdgeVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Edge (or EdgeDescriptor) has the same vertices as another Edge (or EdgeDescriptor), the hash-keys are the same.

References HashKey().

◆ hash_key() [8/14]

size_t ug::hash_key ( Face key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PFaceVertices>

References HashKey().

◆ hash_key() [9/14]

size_t ug::hash_key ( FaceDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PFaceVertices>

References HashKey().

◆ hash_key() [10/14]

size_t ug::hash_key ( FaceVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Face (or FaceDescriptor) has the same vertices as another Face (or FaceDescriptor), the hash-keys are the same.

References HashKey().

◆ hash_key() [11/14]

size_t ug::hash_key ( Vertex key)

returns the hash-value of the vertex.

References ug::Vertex::get_hash_value().

◆ hash_key() [12/14]

size_t ug::hash_key ( Volume key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PVolumeVertices>

References HashKey().

◆ hash_key() [13/14]

size_t ug::hash_key ( VolumeDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PVolumeVertices>

References HashKey().

◆ hash_key() [14/14]

size_t ug::hash_key ( VolumeVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Volume (or VolumeDescriptor) has the same vertices as another Volume (or VolumeDescriptor), the hash-keys are the same.

References HashKey().

◆ hash_key< AlgebraID >()

template<>
size_t ug::hash_key< AlgebraID > ( const AlgebraID key)

◆ HashKey() [1/3]

static unsigned long ug::HashKey ( const EdgeVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::Vertex::get_hash_value(), and ug::EdgeVertices::vertex().

Referenced by hash_key().

◆ HashKey() [2/3]

static unsigned long ug::HashKey ( const FaceVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::FaceVertices::num_vertices(), and ug::FaceVertices::vertices().

◆ HashKey() [3/3]

static unsigned long ug::HashKey ( const VolumeVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::VolumeVertices::num_vertices(), and ug::VolumeVertices::vertices().

◆ HasMemTracking()

bool ug::HasMemTracking ( )
Returns
true if -DINTERNAL_MEMTRACKER=ON, otherwise false this function returns true if memory tracking is possible at all.

◆ HistogrammString()

std::string ug::HistogrammString ( std::vector< double >  values)

References scientificStr().

◆ IdentifySubsets() [1/2]

template<class TDomain >
void ug::IdentifySubsets ( TDomain &  dom,
const char *  sName1,
const char *  sName2 
)

identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created.

Parameters
domDomain the periodic boundary should be defined on
sName1subset name which elements should be identified with elements from those of sName2
sName2
See also
{sName1}

References IdentifySubsets(), and UG_THROW.

◆ IdentifySubsets() [2/2]

template<class TDomain >
void ug::IdentifySubsets ( TDomain &  dom,
int  sInd1,
int  sInd2 
)

identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created.

performs geometric ident of periodic elements and master slave

Parameters
domDomain the periodic boundary should be defined on
sInd1subset index which elements should be identified with elements from those of sInd2
sInd2
See also
{sInd1}

References ug::GridObjectCollection::begin(), CalculateCenter(), ug::PeriodicBoundaryManager::check_periodicity(), ug::GridObjectCollection::end(), ug::PeriodicBoundaryManager::identify(), ug::ParallelShiftIdentifier< TPosAA >::match(), ug::GridObjectCollection::num(), ug::GridObjectCollection::num_levels(), ug::ParallelShiftIdentifier< TPosAA >::set_shift(), UG_THROW, and VecSubtract().

Referenced by IdentifySubsets().

◆ ImportGridFromLGM()

bool ug::ImportGridFromLGM ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler pSurfaceHandler 
)

◆ ImportGridFromNG()

bool ug::ImportGridFromNG ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler pSubdomainHandler 
)

◆ ImportGridFromTETGEN() [1/2]

bool ug::ImportGridFromTETGEN ( Grid grid,
const char *  nodesFilename,
const char *  facesFilename,
const char *  elemsFilename,
AVector3 aPos,
ISubsetHandler psh,
std::vector< AFloat > *  pvNodeAttributes 
)

◆ ImportGridFromTETGEN() [2/2]

bool ug::ImportGridFromTETGEN ( Grid grid,
const char *  nodesFilename,
const char *  facesFilename,
const char *  elemsFilename,
AVector3 aPos,
std::vector< AFloat > *  pvNodeAttributes,
AInt paNodeBoundaryMarker,
AInt paFaceBoundaryMarker,
AInt paElementAttribute 
)

◆ IndexListToRangeString()

template<class ind_t >
std::string ug::IndexListToRangeString ( const std::vector< ind_t > &  inds)

Range strings are comma separated values and ranges, e.g.: "0,1,2-4,8,9-11"

◆ induced_subgraph()

template<typename G_t , typename M_t >
void ug::induced_subgraph ( G_t &  ind_g,
M_t *  A,
const std::vector< size_t > &  inv_map 
)

◆ InitLinearManifoldSubsetHandler()

void ug::InitLinearManifoldSubsetHandler ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler linearManifoldSH,
const char *  linearManifoldSubsets 
)

Procedure to initialize the linear boundary manifold subsets SubsetHandler with user-specified subsets.

This procedure initializes the referenced linear boundary manifold subsets SubsetHandler s.t. user-specified subsets

Parameters
domreference to Domain
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler

References ug::MultiGridSubsetHandler::assign_subset(), ug::MultiGridSubsetHandler::begin(), ug::MultiGridSubsetHandler::end(), ug::ISubsetHandler::get_subset_index(), ug::MultiGrid::num_levels(), RemoveWhitespaceFromString(), TokenizeString(), ug::MultiGrid::top_level(), UG_COND_THROW, and UG_THROW.

Referenced by ApplyConstrainedSmoothSubdivisionVolumesToTopLevel(), ApplySmoothSubdivisionSurfacesToTopLevel(), ApplySmoothSubdivisionVolumesToTopLevel(), and ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::set_linear_manifold_subsets().

◆ InitPaths()

UG_API bool ug::InitPaths ( const char *  argv0)

Initializes the pathes of ug::PathProvider.

init app, script and data paths

Initializes the following pathes in ug::PathProvider:

  • ROOT_PATH
  • BIN_PATH
  • SCRIPT_PATH
  • DATA_PATH
  • GRID_PATH
  • PLUGIN_PATH

Note: If you set a path before calling this method, it won't be overwritten.

References APPS_PATH, BIN_PATH, ug::PathProvider::get_path(), GetPathSeparator(), ug::PathProvider::has_path(), MAIN, PLUGIN_PATH, PROFILE_FUNC, ROOT_PATH, SCRIPT_PATH, ug::PathProvider::set_path(), and UG_DLOG.

Referenced by ug_init_path(), and UGInit().

◆ InnerDoFPosition() [1/2]

◆ InnerDoFPosition() [2/2]

template<typename TDomain >
bool ug::InnerDoFPosition ( std::vector< MathVector< TDomain::dim > > &  vPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

◆ InnerDoFPositionElem()

template<int refDim, int dim>
bool ug::InnerDoFPositionElem ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

◆ InnerDoFPositionVertex()

template<int dim>
bool ug::InnerDoFPositionVertex ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

◆ Integral() [1/16]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct 
)

References Integral().

◆ Integral() [2/16]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets 
)

References Integral().

◆ Integral() [3/16]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time 
)

References Integral().

◆ Integral() [4/16]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  quadOrder 
)

References dim, Integral(), and make_sp().

◆ Integral() [5/16]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
number  time 
)

References Integral().

◆ Integral() [6/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References Integral().

◆ Integral() [7/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Integral().

◆ Integral() [8/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
int  quadOrder 
)

References Integral().

◆ Integral() [9/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct 
)

References Integral().

◆ Integral() [10/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets 
)

References Integral().

◆ Integral() [11/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time 
)

References Integral().

◆ Integral() [12/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  order 
)

References Integral().

◆ Integral() [13/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  quadOrder,
std::string  quadType 
)

References Integral().

◆ Integral() [14/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
number  time 
)

References Integral().

◆ Integral() [15/16]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
TGridFunction &  spGridFct,
const char *  subsets,
number  time,
int  quadOrder,
std::string  quadType 
)

◆ Integral() [16/16]

◆ IntegralNormalComponentOnManifold() [1/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset 
)

◆ IntegralNormalComponentOnManifold() [2/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset 
)

◆ IntegralNormalComponentOnManifold() [3/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset,
number  time 
)

◆ IntegralNormalComponentOnManifold() [4/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset,
number  time,
int  quadOrder 
)

◆ IntegralNormalComponentOnManifold() [5/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
number  time 
)

◆ IntegralNormalComponentOnManifoldGeneral()

◆ IntegralNormalComponentOnManifoldSubset()

template<typename TGridFunction , int dim>
number ug::IntegralNormalComponentOnManifoldSubset ( SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
int  si,
const SubsetGroup bndSSGrp,
int  quadOrder 
)

◆ IntegralNormalComponentOnManifoldSubsets()

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifoldSubsets ( SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubsets,
const char *  InnerSubsets,
int  quadOrder 
)

◆ IntegralNormalComponentOnManifoldUsingFV1Geom()

template<int WorldDim, int dim, typename TConstIterator >
number ug::IntegralNormalComponentOnManifoldUsingFV1Geom ( TConstIterator  iterBegin,
TConstIterator  iterEnd,
typename domain_traits< WorldDim >::position_accessor_type &  aaPos,
const ISubsetHandler ish,
IIntegrand< MathVector< WorldDim >, WorldDim > &  integrand,
const SubsetGroup bndSSGrp 
)

◆ Integrate()

template<int WorldDim, int dim, typename TConstIterator >
number ug::Integrate ( TConstIterator  iterBegin,
TConstIterator  iterEnd,
typename domain_traits< WorldDim >::position_accessor_type &  aaPos,
IIntegrand< number, WorldDim > &  integrand,
int  quadOrder,
std::string  quadType,
Grid::AttachmentAccessor< typename domain_traits< dim >::grid_base_object, ANumber > *  paaElemContribs = NULL 
)

integrates on the whole domain

This function integrates an arbitrary integrand over the whole domain. Note:

  • only grid elements of the same dimension as the world dimension of the domain are integrated. Thus, no manifolds.
  • The implementation is using virtual functions. Thus, there is a small performance drawback compared to hard coding everything, but we gain flexibility. In addition all virtual calls compute for the whole set of integration points to avoid many virtual calls, i.e. only one virtual call for all integration points is needed.
Parameters
[in]iterBeginiterator to first geometric object to integrate
[in]iterBeginiterator to last geometric object to integrate
[in]integrandIntegrand
[in]quadOrderorder of quadrature rule
[in]quadType
[in]paaElemContribs(optional). If != NULL, the method will store the contribution of each element in the associated attachment entry.
Returns
value of the integral

References CollectCornerCoordinates(), ug::QuadratureRuleProvider< TDim >::get(), GetQuadratureType(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed(), ug::DimReferenceMapping< TDim, TWorldDim >::local_to_global(), ug::QuadratureRule< TDim >::points(), PROFILE_FUNC, ug::QuadratureRule< TDim >::size(), SqrtGramDeterminant(), UG_CATCH_THROW, ug::DimReferenceMapping< TDim, TWorldDim >::update(), ug::AttachmentAccessor< TElem, TAttachment, TElemHandler >::valid(), ug::IIntegrand< TData, TWorldDim >::values(), and ug::QuadratureRule< TDim >::weight().

◆ IntegrateDiscFlux() [1/2]

◆ IntegrateDiscFlux() [2/2]

template<typename TGridFunction , int dim>
void ug::IntegrateDiscFlux ( std::vector< number > &  vValue,
const TGridFunction &  rDefect,
const FunctionGroup fctGrp,
int  si 
)

◆ IntegrateNormalComponentOnManifold()

template<typename TGridFunction >
number ug::IntegrateNormalComponentOnManifold ( TGridFunction &  u,
const char *  cmp,
const char *  BndSubset 
)

Integrates a component over some boundary subsets.

This function integrates \( -c \cdot \vec{n} \) over some selected boundary subsets, where c is a component of the grid function u. The integral is taken over all boundary subset manifold geometric objects

Parameters
ua grid function
cmpthe component c which should be integrated
BndSubseta comma-separated string of symbolic boundary subset names
Returns
the integral

References ug::SubsetGroup::add(), ug::DimFV1Geometry< TDim, TWorldDim >::add_boundary_subset(), pcl::ProcessCommunicator::allreduce(), ug::DimFV1Geometry< TDim, TWorldDim >::bf(), CollectCornerCoordinates(), dim, DoFRef(), ug::LFEID::LAGRANGE, ug::detail::local(), pcl::NumProcs(), PCL_DT_DOUBLE, PCL_RO_SUM, s, ug::SubsetGroup::size(), TokenizeString(), UG_ASSERT, UG_CATCH_THROW, UG_THROW, ug::DimFV1Geometry< TDim, TWorldDim >::update(), VecDot(), VecScaleAdd(), and VecSet().

◆ IntegrateNormalGradientOnManifold()

template<typename TGridFunction >
number ug::IntegrateNormalGradientOnManifold ( TGridFunction &  u,
const char *  cmp,
const char *  BndSubset,
const char *  InnerSubset = NULL 
)

Integrates the Flux of a component over some boundary subsets.

This function integrates \( - \nabla c \cdot \vec{n} \) over some selected boundary subsets. In order to compute the gradient of a function a world- dimension element must be given and, thus, some "inner" subsets have to be specified to indicate the full-dimensional subsets. The integral sum is then taken over all boundary subset manifold geometric objects, that are part of an element of the scheduled "inner" elements

Parameters
ua grid function
cmpthe component, whose gradient should be integrated
BndSubseta comma-separated string of symbolic boundary subset names
InnerSubseta comma-separated string of symbolic inner subset names
Returns
the integral

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), ug::DimFV1Geometry< TDim, TWorldDim >::add_boundary_subset(), pcl::ProcessCommunicator::allreduce(), ug::DimFV1Geometry< TDim, TWorldDim >::bf(), CollectCornerCoordinates(), dim, ug::SubsetGroup::dim(), DoFRef(), ug::LFEID::LAGRANGE, ug::detail::local(), pcl::NumProcs(), PCL_DT_DOUBLE, PCL_RO_SUM, s, ug::SubsetGroup::size(), TokenizeString(), UG_ASSERT, UG_CATCH_THROW, UG_THROW, ug::DimFV1Geometry< TDim, TWorldDim >::update(), VecDot(), VecScaleAdd(), and VecSet().

◆ IntegrateSubset()

template<typename TGridFunction , int dim>
number ug::IntegrateSubset ( IIntegrand< number, TGridFunction::dim > &  spIntegrand,
TGridFunction &  spGridFct,
int  si,
int  quadOrder,
std::string  quadType 
)

◆ IntegrateSubsets()

◆ Interpolate() [1/13]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References Interpolate().

◆ Interpolate() [2/13]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Interpolate().

◆ Interpolate() [3/13]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, Interpolate(), and make_sp().

◆ Interpolate() [4/13]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time,
const SmartPtr< CplUserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  m_diff_pos 
)

References dim, and make_sp().

◆ Interpolate() [5/13]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References Interpolate().

◆ Interpolate() [6/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References Interpolate().

◆ Interpolate() [7/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Interpolate().

◆ Interpolate() [8/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

interpolates a function on a subset

This function interpolates a GridFunction. To evaluate the function on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References dim.

Referenced by Interpolate().

◆ Interpolate() [9/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time,
const MathVector< TGridFunction::dim diff_pos 
)

interpolates a function on a subset

This function interpolates a GridFunction. To evaluate the function on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References Interpolate(), and UG_THROW.

◆ Interpolate() [10/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const MathVector< TGridFunction::dim > &  m_diff_pos 
)

References Interpolate().

◆ Interpolate() [11/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References Interpolate().

◆ Interpolate() [12/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const size_t  fct,
const char *  subsets,
number  time,
const MathVector< TGridFunction::dim diff_pos 
)

interpolates a function on a subset

This function interpolates a GridFunction. To evaluate the function on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), Interpolate(), ug::LFEID::LAGRANGE, RemoveLowerDimSubsets(), SameDimensionsInAllSubsets(), TokenizeString(), and UG_THROW.

◆ Interpolate() [13/13]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const size_t  fct,
const SubsetGroup ssGrp,
number  time,
const MathVector< TGridFunction::dim diff_pos 
)

interpolates a function on a subset

This function interpolates a GridFunction. To evaluate the function on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctid of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::LFEID::LAGRANGE, PST_CONSISTENT, and UG_THROW.

◆ interpolate_from_original_fct()

template<typename TElem , typename TGridFunction , typename TGGFND >
void ug::interpolate_from_original_fct ( SmartPtr< TGridFunction >  u_new,
const TGGFND &  u_orig,
size_t  fct,
const LFEID lfeid 
)
inline

◆ InterpolateInner() [1/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References InterpolateInner().

◆ InterpolateInner() [2/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References InterpolateInner().

◆ InterpolateInner() [3/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, InterpolateInner(), and make_sp().

◆ InterpolateInner() [4/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References InterpolateInner().

◆ InterpolateInner() [5/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References InterpolateInner().

◆ InterpolateInner() [6/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References InterpolateInner().

◆ InterpolateInner() [7/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

interpolates a function on a subset

This function interpolates a Lagrange type GridFunction. In contrast to its "big brother" Interpolate() in interpolate.h, this function will only write to inner DoFs, but to all of them, on any element located in any of the given subsets. This is more intuitive and secure than writing to all (not necessarily inner) DoFs of an element located in a subset, as this takes into account the unique subsets of sub-elements.

At the moment, this is only meant for Lagrange-type elements. Please feel free to add functionality for other types if you like.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), ug::LFEID::LAGRANGE, PST_CONSISTENT, TokenizeString(), and UG_THROW.

Referenced by InterpolateInner().

◆ InterpolateInner() [8/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References InterpolateInner().

◆ InterpolateInnerDiff()

template<typename TGridFunction >
void ug::InterpolateInnerDiff ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time,
const SmartPtr< CplUserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  m_diff_pos 
)

interpolates a function on a subset

This function interpolates a Lagrange type GridFunction. In contrast to its "big brother" Interpolate() in interpolate.h, this function will only write to inner DoFs, but to all of them, on any element located in any of the given subsets. This is more intuitive and secure than writing to all (not necessarily inner) DoFs of an element located in a subset, as this takes into account the unique subsets of sub-elements.

At the moment, this is only meant for Lagrange-type elements. Please feel free to add functionality for other types if you like.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), ug::LFEID::LAGRANGE, PST_CONSISTENT, TokenizeString(), and UG_THROW.

◆ InterpolateOnDiffElements() [1/2]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnDiffElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time,
const MathVector< TGridFunction::dim diff_pos 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References CollectCornerCoordinates(), dim, DoFRef(), ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), ug::LocalDoFSet::num_sh(), ug::DimLocalDoFSet< TDim >::position(), UG_THROW, and ug::ReferenceMapping< TRefElem, TWorldDim >::update().

◆ InterpolateOnDiffElements() [2/2]

template<typename TGridFunction >
void ug::InterpolateOnDiffElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp,
const MathVector< TGridFunction::dim diff_pos 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.

◆ InterpolateOnDiffVertices()

template<typename TGridFunction >
void ug::InterpolateOnDiffVertices ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp,
const MathVector< TGridFunction::dim diff_pos 
)

This function interpolates a grid function on a vertex loop. Thus, it can only be used if all degrees of freedom are located in the vertices only (e.g. P1 finite elements). In those cases it is faster than the element by element loop.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point
[in]diff_posdifferent vector between Interpolatin values and spGridFct.

References DoFRef(), and ug::SubsetGroup::size().

◆ InterpolateOnElements() [1/2]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References dim.

◆ InterpolateOnElements() [2/2]

template<typename TGridFunction >
void ug::InterpolateOnElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.

◆ InterpolateOnElementsInner() [1/3]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnElementsInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function interpolates a grid function on a specific subset and for a specific element type. All inner dofs of all grid elements of the given type in the given subset will be assigned an interpolated value.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References dim, and ROID_TETRAHEDRON.

◆ InterpolateOnElementsInner() [2/3]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnElementsInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time,
const MathVector< TGridFunction::dim diff_pos 
)

This function interpolates a grid function on a specific subset and for a specific element type. All inner dofs of all grid elements of the given type in the given subset will be assigned an interpolated value.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References DoFRef(), ROID_TETRAHEDRON, and UG_THROW.

◆ InterpolateOnElementsInner() [3/3]

template<typename TGridFunction >
void ug::InterpolateOnElementsInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on a subset group. All inner dofs of all grid elements in the subset group will be assigned an inter- polated value.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, EDGE, FACE, ug::SubsetGroup::size(), UG_CATCH_THROW, UG_THROW, VERTEX, and VOLUME.

◆ InterpolateOnVertices()

template<typename TGridFunction >
void ug::InterpolateOnVertices ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on a vertex loop. Thus, it can only be used if all degrees of freedom are located in the vertices only (e.g. P1 finite elements). In those cases it is faster than the element by element loop.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim.

◆ InterpolateValues()

template<typename TVector >
void ug::InterpolateValues ( TVector &  u,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

◆ IntersectCloseEdges()

template<class TObjectCollection , class TAAPosVRT >
bool ug::IntersectCloseEdges ( Grid grid,
TObjectCollection &  elems,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

THIS METHOD USES Grid::mark. Intersects all edges in elems which are closer to each other than snapThreshold.

THIS METHOD USES Grid::mark. Intersects all edges in elems which are closer to each other than snapThreshold.

TObjectCollection has to fulfill the interface of a GridObjectCollection.

Todo:
: speed up through octree (use MultiEdgeSplit)
Note
: It is recommended to use a Grid ore a Selector as TObjectCollection, since a GridObjectCollection is static and it would thus not be possible to resolve all intersections.

References ug::Grid::associated_elements(), ug::Grid::begin_marking(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ResolveEdgeEdgeIntersection(), ug::PointerConstArray< TPtr >::size(), sq(), and UG_LOG.

Referenced by ResolveTriangleIntersections().

◆ IntersectCoplanarTriangles() [1/3]

template<class TAAPos >
bool ug::IntersectCoplanarTriangles ( std::vector< typename TAAPos::ValueType > &  edgesOut,
FaceVertices tri1,
FaceVertices tri2,
TAAPos  aaPos 
)

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge.

References CalculateCenter(), ug::UGError::get_msg(), IntersectCoplanarTriangles(), ug::FaceVertices::num_vertices(), UG_THROW, and ug::FaceVertices::vertex().

◆ IntersectCoplanarTriangles() [2/3]

bool ug::IntersectCoplanarTriangles ( std::vector< vector2 > &  edgesOut,
const vector2 p00,
const vector2 p01,
const vector2 p02,
const vector2 p10,
const vector2 p11,
const vector2 p12 
)
inline

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge. Please note that the returned list may contain multiple copies of a point.

Note
This method performs the full test and does not perform any optimizations like an initial bounding-box check. For best performance this method should thus only be called if the two triangles do most likely intersect.

References LineLineIntersection2d(), PointIsInsideTriangle(), SMALL, sq(), UG_COND_THROW, VecDistanceSq(), VecDot(), VecLength(), VecLengthSq(), VecScale(), and VecSubtract().

Referenced by IntersectCoplanarTriangles(), and ResolveTriangleIntersections().

◆ IntersectCoplanarTriangles() [3/3]

bool ug::IntersectCoplanarTriangles ( std::vector< vector3 > &  edgesOut,
const vector3 p00,
const vector3 p01,
const vector3 p02,
const vector3 p10,
const vector3 p11,
const vector3 p12 
)
inline

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge. Please note that the returned list may contain multiple copies of a point. This method works even if the triangles are not perfectly coplanar. In this case the projection of the triangle (p10,p11,p12) onto the triangle (p00,p01,p02) is intersected. Please note that the returned list may contain multiple copies of a point.

Note
This method performs the full test and does not perform any optimizations like an initial bounding-box check. For best performance this method should thus only be called if the two triangles do most likely intersect.

References CalculateTriangleNormal(), ConstructOrthonormalSystem(), IntersectCoplanarTriangles(), MatVecMult(), TransposedMatVecMult(), UG_LOG, VecCopy(), and VecSubtract().

◆ InvalidateSmallLenses()

template<class T >
void ug::InvalidateSmallLenses ( Field< T > &  field,
size_t  thresholdCellCount,
const T &  noDataValue 
)

invalidates cells that belong to a small lense

Given a valid cell, the assoicated lense is the set of valid cells that can be reached from that cell by only traversing valid neighbors. Whether a lense is small or not is determined by the number of cells that belong to a lense.

References ug::Field< T >::at(), ug::Field< T >::height(), and ug::Field< T >::width().

Referenced by ug::RasterLayers::invalidate_small_lenses().

◆ InverseFromInverseType() [1/2]

template<typename TMatrix , typename TInverseMatrixType , typename TVector >
void ug::InverseFromInverseType ( TMatrix &  mat,
TInverseMatrixType &  inv,
TVector &  x,
TVector &  e 
)

References MatMult().

◆ InverseFromInverseType() [2/2]

template<typename TMatrix , typename TVector >
void ug::InverseFromInverseType ( TMatrix &  mat,
TMatrix &  inv,
TVector &  x,
TVector &  e 
)

◆ InverseMatMult() [1/2]

bool ug::InverseMatMult ( number dest,
const double &  beta,
const number mat,
const number vec 
)
inline

◆ InverseMatMult() [2/2]

◆ Invert() [1/3]

template<typename T , size_t TUnknowns>
bool ug::Invert ( DenseMatrix< FixedArray2< T, TUnknowns, TUnknowns > > &  mat)

References getrf(), getri(), UG_ASSERT, and UG_COND_THROW.

◆ Invert() [2/3]

bool ug::Invert ( number m)
inline

◆ Invert() [3/3]

◆ invert_L()

template<typename Matrix_type , typename Vector_type >
bool ug::invert_L ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b 
)

◆ invert_U()

template<typename Matrix_type , typename Vector_type >
bool ug::invert_U ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
const number  eps = 1e-8 
)

◆ InvertNdyn()

template<typename T >
bool ug::InvertNdyn ( DenseMatrix< T > &  mat)

References getrf(), and getri().

Referenced by Invert().

◆ InvertOrientation()

template<class iter_t >
void ug::InvertOrientation ( Grid grid,
iter_t  elemsBegin,
iter_t  elemsEnd 
)

inverts the orientation of all elements between elemsBegin and elemsEnd

Make sure that iter_t::value_type is of type Edge*, Face*, or Volume*.

References ug::Grid::flip_orientation().

◆ InvertSelection< MGSelector >()

template void ug::InvertSelection< MGSelector > ( MGSelector )

◆ InvertSelection< Selector >()

template void ug::InvertSelection< Selector > ( Selector )

◆ is_anisotropic() [1/6]

template<typename TAAPos >
AnisotropyState ug::is_anisotropic ( Edge elem,
const TAAPos &  aaPos,
number  thresholdRatio 
)

◆ is_anisotropic() [2/6]

template<typename TAAPos >
AnisotropyState ug::is_anisotropic ( Face elem,
const TAAPos &  aaPos,
number  thresholdRatio 
)

References is_anisotropic(), and ISOTROPIC.

◆ is_anisotropic() [3/6]

template<typename TAAPos >
static AnisotropyState ug::is_anisotropic ( Hexahedron hex,
const TAAPos &  aaPos,
number  thresholdRatio 
)
static

◆ is_anisotropic() [4/6]

template<typename TAAPos >
static AnisotropyState ug::is_anisotropic ( Prism p,
const TAAPos &  aaPos,
number  thresholdRatio 
)
static

◆ is_anisotropic() [5/6]

template<typename TAAPos >
static AnisotropyState ug::is_anisotropic ( Quadrilateral q,
const TAAPos &  aaPos,
number  thresholdRatio 
)
static

◆ is_anisotropic() [6/6]

template<typename TAAPos >
AnisotropyState ug::is_anisotropic ( Volume elem,
const TAAPos &  aaPos,
number  thresholdRatio 
)

References is_anisotropic(), and ISOTROPIC.

◆ is_permutation()

◆ IsFinite()

template<typename TVector >
bool ug::IsFinite ( const ParallelVector< TVector > &  v)

◆ IsFiniteAndNotTooBig() [1/10]

template<typename T >
bool ug::IsFiniteAndNotTooBig ( const DenseMatrix< T > &  m)
inline

◆ IsFiniteAndNotTooBig() [2/10]

template<typename T >
bool ug::IsFiniteAndNotTooBig ( const DenseVector< T > &  v)
inline

◆ IsFiniteAndNotTooBig() [3/10]

template<std::size_t N, std::size_t M, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathMatrix< N, M, T > &  m)
inline

◆ IsFiniteAndNotTooBig() [4/10]

template<size_t TRank, size_t N, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathTensor< TRank, N, T > &  t)
inline

◆ IsFiniteAndNotTooBig() [5/10]

template<typename TData , size_t N>
bool ug::IsFiniteAndNotTooBig ( const MathTensorX< TData, N > &  t)
inline

◆ IsFiniteAndNotTooBig() [6/10]

template<std::size_t N, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathVector< N, T > &  m)
inline

◆ IsFiniteAndNotTooBig() [7/10]

template<typename TVector >
bool ug::IsFiniteAndNotTooBig ( const ParallelVector< TVector > &  v)

◆ IsFiniteAndNotTooBig() [8/10]

template<typename TData >
bool ug::IsFiniteAndNotTooBig ( const std::vector< TData > &  t)
inline

◆ IsFiniteAndNotTooBig() [9/10]

template<typename TVector >
bool ug::IsFiniteAndNotTooBig ( const TVector &  v,
double  tooBigValue = 1e24 
)

◆ IsFiniteAndNotTooBig() [10/10]

◆ IsInInterface()

bool ug::IsInInterface ( IndexLayout::Interface interface,
size_t  i 
)
inline

References find().

Referenced by AddIfUnique().

◆ IsLonger()

bool ug::IsLonger ( const string &  a,
const string &  b 
)

◆ IsMemTrackerEnabled()

bool ug::IsMemTrackerEnabled ( )
Returns
true if currently we are memory tracking

References bMemTracker.

◆ IsShiftChar()

bool ug::IsShiftChar ( char  c)

References shiftCharacters, and shiftCharactersLength.

Referenced by ConfigShift().

◆ IsSliver()

UG_API int ug::IsSliver ( const vector3 v0,
const vector3 v1,
const vector3 v2,
const vector3 v3,
number  thresholdRatio 
)

Checks for all edges of the given tetrahedron whether the distance to the opposite edge is smaller than the given ratio of the length of the longest edge in the element.

Returns
integer to the first edge which is closer to its opposed edge than the given threshold allows. -1 if no such edge exists. Use tet_rules::OPPOSED_EDGE to retrieve the associated opposed edge.

References DistanceLineToLine(), ug::tet_rules::EDGE_VRT_INDS, ug::tet_rules::NUM_EDGES, ug::tet_rules::OPPOSED_EDGE, and VecDistanceSq().

Referenced by FindSlivers().

◆ IsSubSurfaceElement()

template<class TElem >
bool ug::IsSubSurfaceElement ( MultiGrid mg,
TElem *  e,
bool  checkSides = false 
)

returns true, if the element lies one level below the surface

If checkSides == false, then only children of the same base type as TElem will be regarded. If checkSides == true, also children of the elements sides will be regarded, too. If all regarded children lie on the surface (i.e. do not have children them selfs), then the element is regarded as a surface element.

References ug::MultiGrid::get_child(), ug::Grid::get_side(), and ug::MultiGrid::num_children().

◆ IsVectorFiniteAndNotTooBig()

template<typename T >
bool ug::IsVectorFiniteAndNotTooBig ( const T &  t)
inline

◆ IsVertical() [1/3]

static bool ug::IsVertical ( const vector1 ,
const vector1  
)
inlinestatic

◆ IsVertical() [2/3]

static bool ug::IsVertical ( const vector2 from,
const vector2 to 
)
inlinestatic

References SMALL.

◆ IsVertical() [3/3]

static bool ug::IsVertical ( const vector3 from,
const vector3 to 
)
inlinestatic

References SMALL.

◆ iszero()

template<class __T >
bool ug::iszero ( __T  __val)
inline

◆ iterator_cast()

template<class TIterDest , class TIterSrc >
TIterDest ug::iterator_cast ( const TIterSrc &  iter)
inline

You should avoid casting whenever possible!

◆ JuliaString()

template<typename TStorage >
std::string ug::JuliaString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

◆ L2Distance()

template<typename TGridFunction >
number ug::L2Distance ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

computes the l2 distance between two functions

References L2Distance2().

Referenced by L2Error().

◆ L2Distance2() [1/2]

template<typename TGridFunction >
number ug::L2Distance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

computes the squared l2 distance between two functions

◆ L2Distance2() [2/2]

template<typename TGridFunction >
number ug::L2Distance2 ( TGridFunction &  spGridFct1,
const char *  cmp1,
TGridFunction &  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename L2Integrand< TGridFunction >::weight_type >  spWeight,
number  avgDist12 = 0.0 
)

computes the squared l2 distance between two functions

Referenced by ug::L2ComponentSpace< TGridFunction >::distance2(), ug::L2QuotientSpace< TGridFunction >::distance2(), and L2Distance().

◆ L2Error() [1/5]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder 
)

References L2Distance().

◆ L2Error() [2/5]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

References L2Distance().

◆ L2Error() [3/5]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder 
)

References L2Error().

◆ L2Error() [4/5]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder,
const char *  subsets 
)

References L2Error().

◆ L2Error() [5/5]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
TGridFunction &  gridFct,
const char *  cmp,
number  time,
int  quadOrder,
const char *  subsets 
)

computes the l2 error function on the whole domain or on some subsets

This function computes the L2-difference between a given analytic function and a grid function.

Parameters
[in]ExactSolanalytic function
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), and UG_COND_THROW.

Referenced by L2Error(), and ug::L2QuotientSpace< TGridFunction >::norm2().

◆ L2Norm() [1/4]

template<typename TGridFunction >
number ug::L2Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder 
)

References L2Norm().

◆ L2Norm() [2/4]

template<typename TGridFunction >
number ug::L2Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

References L2Norm().

◆ L2Norm() [3/4]

template<typename TGridFunction >
number ug::L2Norm ( TGridFunction &  gridFct,
const char *  cmp,
int  quadOrder 
)

This function computes the L2-norm of a grid function on all full-dim subsets.

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of function
[in]quadOrderorder of quadrature rule
Returns
number l2-norm

References L2Norm().

◆ L2Norm() [4/4]

template<typename TGridFunction >
number ug::L2Norm ( TGridFunction &  u,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

References L2Norm2().

Referenced by L2Norm().

◆ L2Norm2() [1/2]

template<typename TGridFunction >
number ug::L2Norm2 ( TGridFunction &  u,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

◆ L2Norm2() [2/2]

template<typename TGridFunction >
number ug::L2Norm2 ( TGridFunction &  u,
const char *  cmp,
int  quadOrder,
const char *  subsets,
ConstSmartPtr< typename L2Integrand< TGridFunction >::weight_type >  spWeight 
)

This function computes the square of the L2-norm of a grid function.

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of function
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to interpolate (NULL indicates that all full-dimensional subsets shall be considered)
Returns
number l2-norm

References IntegrateSubsets(), and UG_COND_THROW.

Referenced by L2Norm(), and ug::L2ComponentSpace< TGridFunction >::norm2().

◆ LagrangeNumDoFOnSub()

size_t ug::LagrangeNumDoFOnSub ( const ReferenceObjectID  elem,
const ReferenceObjectID  sub,
const size_t  p 
)

◆ LagrangeNumDoFs()

size_t ug::LagrangeNumDoFs ( const ReferenceObjectID  elem,
const size_t  p 
)

◆ LaplacianSmooth()

template<class TIterator , class AAPosVRT >
void ug::LaplacianSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations 
)

◆ LegendrePoly()

number ug::LegendrePoly ( size_t  k,
number  x 
)

returns the values of the Legendre polynomials

The polynomials are \(L_2\)-orthogonal on \([-1, 1]\). They satisfy the recursion \(P_0 (x) = 1\), \(P_1 (1) = x\), \(P_k (x) = ((2 k - 1) x P_{k-1} (x) - (k - 1) P_{k-2} (x)) / k\). The \(L_2\)-norm of \(P_k\) is \(\sqrt {2 / (2 k + 1)}\).

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

Referenced by NormalizedLegendrePoly(), and ug::bridge::RegisterBridge_OrthoPoly().

◆ LevenshteinDistance()

size_t ug::LevenshteinDistance ( const string &  s1,
const string &  s2 
)

◆ LIB_ALG_AMG()

DebugID ug::LIB_ALG_AMG ( "LIB_ALG_AMG"  )

◆ LIB_ALG_LINEAR_OPERATOR()

DebugID ug::LIB_ALG_LINEAR_OPERATOR ( "LIB_ALG_LINEAR_OPERATOR"  )

◆ LIB_ALG_LINEAR_SOLVER()

DebugID ug::LIB_ALG_LINEAR_SOLVER ( "LIB_ALG_LINEAR_SOLVER"  )

◆ LIB_ALG_MATRIX()

DebugID ug::LIB_ALG_MATRIX ( "LIB_ALG_MATRIX"  )

◆ LIB_ALG_VECTOR()

DebugID ug::LIB_ALG_VECTOR ( "LIB_ALG_VECTOR"  )

◆ LIB_DISC()

DebugID ug::LIB_DISC ( "LIB_DISC"  )

◆ LIB_DISC_ASSEMBLE()

DebugID ug::LIB_DISC_ASSEMBLE ( "LIB_DISC_ASSEMBLE"  )

◆ LIB_DISC_D3F()

DebugID ug::LIB_DISC_D3F ( "LIB_DISC_D3F"  )

◆ LIB_DISC_DISCRETE_FUNCTION()

DebugID ug::LIB_DISC_DISCRETE_FUNCTION ( "LIB_DISC_DISCRETE_FUNCTION"  )

◆ LIB_DISC_LINKER()

DebugID ug::LIB_DISC_LINKER ( "LIB_DISC_LINKER"  )

◆ LIB_DISC_MULTIGRID()

DebugID ug::LIB_DISC_MULTIGRID ( "LIB_DISC_MULTIGRID"  )

◆ LIB_DISC_NEWTON()

DebugID ug::LIB_DISC_NEWTON ( "LIB_DISC_NEWTON"  )

◆ LIB_DISC_OPERATOR_INVERSE()

DebugID ug::LIB_DISC_OPERATOR_INVERSE ( "LIB_DISC_OPERATOR_INVERSE"  )

◆ LIB_DISC_OUTPUT()

DebugID ug::LIB_DISC_OUTPUT ( "LIB_DISC_OUTPUT"  )

◆ LIB_DISC_TRANSFER()

DebugID ug::LIB_DISC_TRANSFER ( "LIB_DISC_TRANSFER"  )

◆ LIB_GRID()

DebugID ug::LIB_GRID ( "LIB_GRID"  )

◆ LIB_GRID_REFINER()

DebugID ug::LIB_GRID_REFINER ( "LIB_GRID_REFINER"  )

◆ LIB_PCL()

DebugID ug::LIB_PCL ( "LIB_PCL"  )

◆ LoadDomain< Domain1d >() [1/2]

template void ug::LoadDomain< Domain1d > ( Domain1d domain,
const char *  filename 
)

◆ LoadDomain< Domain1d >() [2/2]

template void ug::LoadDomain< Domain1d > ( Domain1d domain,
const char *  filename,
int  procId 
)

◆ LoadDomain< Domain2d >() [1/2]

template void ug::LoadDomain< Domain2d > ( Domain2d domain,
const char *  filename 
)

◆ LoadDomain< Domain2d >() [2/2]

template void ug::LoadDomain< Domain2d > ( Domain2d domain,
const char *  filename,
int  procId 
)

◆ LoadDomain< Domain3d >() [1/2]

template void ug::LoadDomain< Domain3d > ( Domain3d domain,
const char *  filename 
)

◆ LoadDomain< Domain3d >() [2/2]

template void ug::LoadDomain< Domain3d > ( Domain3d domain,
const char *  filename,
int  procId 
)

◆ LoadGrid() [1/2]

template<class TAPos >
static bool ug::LoadGrid ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPos &  aPos,
int  procId 
)
static

◆ LoadGrid() [2/2]

template<class TAPos >
static bool ug::LoadGrid ( Grid grid,
SPProjectionHandler ph,
size_t &  num_ph,
ISubsetHandler psh,
std::vector< std::string >  additionalSHNames,
std::vector< SmartPtr< ISubsetHandler >>  ash,
const char *  filename,
TAPos &  aPos,
int  procId 
)
static

◆ LoadGrid3d() [1/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition1 aPos 
)
static

◆ LoadGrid3d() [2/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition2 aPos 
)
static

◆ LoadGrid3d() [3/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition3 aPos 
)
static

References LoadGrid3d_IMPL().

Referenced by LoadGrid().

◆ LoadGrid3d_IMPL()

◆ LoadGridFrom2DF()

bool ug::LoadGridFrom2DF ( Grid grid,
const char *  filename,
ISubsetHandler psh,
AVector3 aPos 
)

◆ LoadGridFromART()

◆ LoadGridFromASC()

◆ LoadGridFromDUMP()

bool ug::LoadGridFromDUMP ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition 
)

loads dump-files.

A dump-file is a very simple format that describes a triangular grid. The format is an ASCII format. a # at the beginning of a line marks a comment. other lines should either be empty or should describe a triangle. a triangle is described be three coordinate-triples. Space is used as seperator. a file could look like this:

start of .dump file

a single triangle

0 0 0 1 0 0 0 1 0

end of .dump file

References ug::Grid::attach_to_vertices(), ug::ISubsetHandler::get_default_subset_index(), ug::Grid::has_vertex_attachment(), LOG, ReadTetrahedrons(), ReadTriangles(), ug::ISubsetHandler::set_default_subset_index(), and split_parameters().

Referenced by LoadGrid3d_IMPL().

◆ LoadGridFromELE()

bool ug::LoadGridFromELE ( Grid grid,
const char *  filename,
ISubsetHandler pSH,
APosition aPos 
)

References ImportGridFromTETGEN(), and LOG.

Referenced by LoadGrid3d_IMPL().

◆ LoadGridFromFile() [1/17]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector1 ,
int   
)

◆ LoadGridFromFile() [2/17]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector2 ,
int   
)

◆ LoadGridFromFile() [3/17]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector3 ,
int   
)

◆ LoadGridFromFile() [4/17]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector1 ,
int   
)

◆ LoadGridFromFile() [5/17]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector2 ,
int   
)

◆ LoadGridFromFile() [6/17]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector3 ,
int   
)

◆ LoadGridFromFile() [7/17]

template bool ug::LoadGridFromFile ( Grid ,
SPProjectionHandler ,
size_t &  ,
ISubsetHandler ,
std::vector< std::string >  ,
std::vector< SmartPtr< ISubsetHandler >>  ,
const char *  ,
AVector1 ,
int   
)

◆ LoadGridFromFile() [8/17]

template bool ug::LoadGridFromFile ( Grid ,
SPProjectionHandler ,
size_t &  ,
ISubsetHandler ,
std::vector< std::string >  ,
std::vector< SmartPtr< ISubsetHandler >>  ,
const char *  ,
AVector2 ,
int   
)

◆ LoadGridFromFile() [9/17]

template bool ug::LoadGridFromFile ( Grid ,
SPProjectionHandler ,
size_t &  ,
ISubsetHandler ,
std::vector< std::string >  ,
std::vector< SmartPtr< ISubsetHandler >>  ,
const char *  ,
AVector3 ,
int   
)

◆ LoadGridFromFile() [10/17]

UG_API bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
int  procId 
)

Loads a grid from a file. Position data is written to aPosition.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References aPosition, and LoadGrid().

◆ LoadGridFromFile() [11/17]

template<class TAPos >
bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
TAPos &  aPos,
int  procId 
)

References LoadGrid().

◆ LoadGridFromFile() [12/17]

template<class TAPos >
UG_API bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References LoadGrid().

◆ LoadGridFromFile() [13/17]

UG_API bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
int  procId = -1 
)

Loads a grid from a file. Position data is written to aPosition.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References aPosition, and LoadGrid().

◆ LoadGridFromFile() [14/17]

template<class TAPos >
bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos,
int  procId 
)

References LoadGrid().

◆ LoadGridFromFile() [15/17]

template<class TAPos >
UG_API bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References LoadGrid().

◆ LoadGridFromFile() [16/17]

template<class TAPos >
UG_API bool ug::LoadGridFromFile ( Grid grid,
SPProjectionHandler ph,
size_t &  num_ph,
ISubsetHandler sh,
std::vector< std::string >  additionalSHNames,
std::vector< SmartPtr< ISubsetHandler >>  ash,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

◆ LoadGridFromFile() [17/17]

template<class TAPos >
bool ug::LoadGridFromFile ( Grid grid,
SPProjectionHandler ph,
size_t &  num_ph,
ISubsetHandler sh,
vector< string >  additionalSHNames,
vector< SmartPtr< ISubsetHandler >>  ash,
const char *  filename,
TAPos &  aPos,
int  procId 
)

◆ LoadGridFromGRDECL()

bool ug::LoadGridFromGRDECL ( Grid grid,
const char *  filename,
AVector3 aPos 
)

◆ LoadGridFromLGB() [1/2]

bool ug::LoadGridFromLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
ISelector **  ppSel,
int  numSels,
ProjectionHandler pPH = NULL,
APosition  aPos = aPosition 
)

◆ LoadGridFromLGB() [2/2]

bool ug::LoadGridFromLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
ProjectionHandler pPH,
APosition  aPos 
)

References LoadGridFromLGB().

Referenced by LoadGrid3d_IMPL().

◆ LoadGridFromMSH()

bool ug::LoadGridFromMSH ( Grid grid,
const char *  filename,
ISubsetHandler psh = NULL,
AVector3 aPos = aPosition 
)

loads a grid from the GMSH ascii .msh format

Please check the GMSH manual for syntax information.

References ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::Grid::create(), ug::Grid::has_vertex_attachment(), ug::Grid::num(), p, and UG_LOG.

Referenced by LoadGrid3d_IMPL().

◆ LoadGridFromOBJ()

bool ug::LoadGridFromOBJ ( Grid grid,
const char *  filename,
AVector3 aPos = aPosition,
AVector2 paTexCoord = NULL,
ISubsetHandler pSubsetHandler = NULL,
std::vector< OBJMaterial > *  pvMaterials = NULL 
)

◆ LoadGridFromSMESH()

◆ LoadGridFromSTL()

bool ug::LoadGridFromSTL ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition,
AVector3 aNormFACE = aNormal 
)

loads stl-ascii-files.

if aPosition is not attached to the vertices of the grid, it will be automatically attached. If however aNormal is not attached to the faces of the grid, it will be ignored.

References ug::Grid::AttachmentAccessor< TElem, TAttachment >::access(), ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::Grid::create(), ug::Grid::has_face_attachment(), ug::Grid::has_vertex_attachment(), ug::Grid::num(), p, stl_reader::ReadStlFile(), ug::Grid::reserve(), and ug::AttachmentAccessor< TElem, TAttachment, TElemHandler >::valid().

Referenced by LoadGrid3d_IMPL().

◆ LoadGridFromSTL_ASCII()

bool ug::LoadGridFromSTL_ASCII ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition,
AVector3 aNormFACE = aNormal 
)

◆ LoadGridFromSTL_BINARY()

bool ug::LoadGridFromSTL_BINARY ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition,
AVector3 aNormFACE = aNormal 
)

◆ LoadGridFromSWC()

bool ug::LoadGridFromSWC ( Grid g,
ISubsetHandler pSH,
const char *  fileName,
AVector3 aPos 
)

◆ LoadGridFromTXT()

bool ug::LoadGridFromTXT ( Grid grid,
const char *  filename,
AVector3 aPos 
)

◆ LoadGridFromUGX() [1/4]

bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Reads a grid to an ugx file.

Before reading a grid from file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of LoadGridFromUGX.

If no standard attachment is found, aPosition will be attached and used.

References aPosition, aPosition1, aPosition2, ug::Grid::attach_to_vertices(), and ug::Grid::has_vertex_attachment().

Referenced by LoadGrid().

◆ LoadGridFromUGX() [2/4]

template<class TAPosition >
bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
APosition aPos 
)

Reads a grid to an ugx file. internally uses GridReaderUGX.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

◆ LoadGridFromUGX() [3/4]

template<class TAPosition >
bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

◆ LoadGridFromUGX() [4/4]

◆ LoadGridFromVTU() [1/3]

bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Reads a grid to a vtu (vtk unstructured mesh) file.

Before reading a grid from file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of LoadGridFromVTU.

If no standard attachment is found, aPosition will be attached and used.

References aPosition, aPosition1, aPosition2, ug::Grid::attach_to_vertices(), and ug::Grid::has_vertex_attachment().

Referenced by LoadGrid().

◆ LoadGridFromVTU() [2/3]

template<class TAPosition >
bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename,
APosition aPos 
)

Reads a grid to an vtu (vtk) file. internally uses GridReaderVTK.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

◆ LoadGridFromVTU() [3/3]

template<class TAPosition >
bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

◆ LoadHeightfieldFromASC()

◆ LoadMarkerPointsFromFile()

◆ LoadPlugins()

◆ LoadVector()

template<typename TGridFunction >
void ug::LoadVector ( TGridFunction &  u,
const char *  filename 
)

References dim, PROFILE_FUNC, and ReadVector().

◆ LogIndexLayout()

void ug::LogIndexLayout ( IndexLayout layout,
int  depth = 0 
)

Logs the internals of an index layout.

Writes information about an index interface. If depth >= 1 is passed, then also the current indices in the interfaces are printed.

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), GetLogAssistant(), pcl::SingleLevelLayout< TInterface >::proc_id(), and UG_LOG.

Referenced by LogIndexLayoutOnAllProcs().

◆ LogIndexLayoutOnAllProcs()

void ug::LogIndexLayoutOnAllProcs ( IndexLayout layout,
int  depth 
)

◆ long_edges_of_anisotropic_elem() [1/3]

template<typename TAAPos >
AnisotropyState ug::long_edges_of_anisotropic_elem ( Edge elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Edge * > &  longEdges 
)

References ISOTROPIC.

Referenced by MarkAnisotropic(), and MarkAnisotropicOnlyX().

◆ long_edges_of_anisotropic_elem() [2/3]

template<typename TAAPos >
AnisotropyState ug::long_edges_of_anisotropic_elem ( Face elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Edge * > &  longEdges 
)

◆ long_edges_of_anisotropic_elem() [3/3]

template<typename TAAPos >
AnisotropyState ug::long_edges_of_anisotropic_elem ( Volume elem,
Grid grid,
const TAAPos &  aaPos,
number  thresholdRatio,
std::vector< Edge * > &  longEdges 
)

◆ LUDecomp()

template<typename matrix_t >
bool ug::LUDecomp ( DenseMatrix< matrix_t > &  A,
size_t *  pInterchange 
)

◆ LUDecompIKJ()

template<typename matrix_t >
bool ug::LUDecompIKJ ( DenseMatrix< matrix_t > &  A,
size_t *  pInterchange 
)

References dabs(), UG_ASSERT, and UG_LOG.

◆ MAIN()

DebugID ug::MAIN ( "MAIN"  )

◆ make_dirichlet_iterator()

template<typename TAlgebra >
std::tuple<dirichlet_iterator<TAlgebra>, dirichlet_iterator<TAlgebra> > ug::make_dirichlet_iterator ( typename TAlgebra::matrix_type mat)

◆ make_non_dirichlet_iterator()

template<typename TAlgebra >
std::tuple<non_dirichlet_iterator<TAlgebra>, non_dirichlet_iterator<TAlgebra> > ug::make_non_dirichlet_iterator ( typename TAlgebra::matrix_type mat)

◆ MakeConsistent()

◆ MakeDelaunay() [1/2]

template bool ug::MakeDelaunay ( DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &  )

Referenced by QualityGridGeneration().

◆ MakeDelaunay() [2/2]

◆ MakeGeometry3d()

template<class TAPos >
SPIGeometry3d ug::MakeGeometry3d ( Grid grid,
TAPos  aPos 
)

Utility method to construct an IGeometry3d for a given grid and position attachment.

References make_sp().

Referenced by AdaptSurfaceGridToCylinder(), ug::bridge::CreateSmoothHierarchy(), CutEdgesWithPlane(), ug::Domain< d, TGrid, TSubsetHandler >::Domain(), GenerateIcosphere(), and ug::IRefiner::refine().

◆ MakeTmpFile()

string ug::MakeTmpFile ( string  filename,
const string &  extension,
bool &  bSuccess 
)

!!! Serial i/o version !!!

References FileExists(), name, and PROFILE_FUNC.

Referenced by ug::bridge::LUACompiler::createC().

◆ MapLagrangeMultiIndexQuad()

void ug::MapLagrangeMultiIndexQuad ( std::vector< size_t > &  vOrientOffset,
const int  id0,
bool  sameOrientation,
const size_t  pOuter 
)

References p, and UG_THROW.

Referenced by ComputeOrientationOffsetLagrange().

◆ MapLagrangeMultiIndexTriangle()

void ug::MapLagrangeMultiIndexTriangle ( std::vector< size_t > &  vOrientOffset,
const int  id0,
bool  sameOrientation,
const size_t  pOuter 
)

References p, and UG_THROW.

Referenced by ComputeOrientationOffsetLagrange().

◆ MaplePrint()

template<typename TStorage >
void ug::MaplePrint ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

References name, and UG_LOG.

◆ mark_if_periodic()

◆ MarkAllElemsForAssemblyButHSlaves() [1/2]

template<typename TElem >
static void ug::MarkAllElemsForAssemblyButHSlaves ( Grid grid,
BoolMarker bMarker 
)
static

This function marks all grid elements of type TElem for assembly BUT H-slaves in a BoolMarker.

Parameters
[out]gridGrid
[out]bMarkerBoolMarker containing all marked elements of type TElem BUT H-slaves

References ug::Grid::begin(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::Grid::end(), ES_H_SLAVE, ug::BoolMarker::mark(), and ug::BoolMarker::unmark().

◆ MarkAllElemsForAssemblyButHSlaves() [2/2]

template<typename TAlgebra >
static void ug::MarkAllElemsForAssemblyButHSlaves ( SmartPtr< IAssemble< TAlgebra > >  ass,
Grid grid 
)
static

This function marks all elements for assembly BUT H-slaves in a BoolMarker and sets it in the assemble tuner of the given assemble object. Necessary to avoid multiple assembly of manifold elements when using inner_boundary discretization in parallel mode.

Parameters
[out]gridSmart pointer to assemble object with assemble tuner as member
[out]assGrid

◆ MarkAllFromInterface() [1/2]

void ug::MarkAllFromInterface ( std::vector< bool > &  mark,
const IndexLayout::Interface interface 
)

Marks all indices in the IndexLayout::Interface with true

Parameters
marka std::vector which has to be big enough for maximum index in interface
layout

Referenced by MarkAllFromLayout().

◆ MarkAllFromInterface() [2/2]

template<class T >
void ug::MarkAllFromInterface ( std::vector< T > &  mark,
const IndexLayout::Interface interface,
const T &  default_val 
)

◆ MarkAllFromLayout() [1/2]

void ug::MarkAllFromLayout ( std::vector< bool > &  mark,
const IndexLayout layout 
)

Marks all indices in the IndexLayout with true

Parameters
marka std::vector which has to be big enough for maximum index in layout
layout

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), pcl::SingleLevelLayout< TInterface >::interface(), and MarkAllFromInterface().

Referenced by ug::SchurPrecond< TAlgebra >::get_skeleton_slicing().

◆ MarkAllFromLayout() [2/2]

template<class T >
void ug::MarkAllFromLayout ( std::vector< T > &  mark,
const IndexLayout layout,
const T &  default_val 
)

◆ MarkAlongSurface()

template<typename TDomain >
void ug::MarkAlongSurface ( SmartPtr< IRefiner refiner,
SmartPtr< TDomain >  domain,
const std::vector< std::string > &  surfaceSubsets,
const std::vector< std::string > &  volumeSubsets 
)

Mark elements neighboring a surface.

For a given pair of surface subset and volume subset, marks all full-dim elements of the volume subset for refinement that have at least one vertex in the surface subset.

References ug::Grid::associated_elements(), ug::SurfaceView::begin(), ug::Flag< TEnum, TStorageType, defaultValue >::contains(), ug::SurfaceView::end(), ug::ISubsetHandler::get_subset_index(), ug::SurfaceView::MG_ALL, ug::SurfaceView::MG_SHADOW_PURE, RM_REFINE, ug::SurfaceView::surface_state(), UG_CATCH_THROW, and UG_COND_THROW.

◆ MarkAnisotropic()

template<typename TDomain >
void ug::MarkAnisotropic ( SmartPtr< IRefiner refiner,
SmartPtr< TDomain >  domain,
number  thresholdRatio 
)

Mark all anisotropic elements of the surface grid for ansiotropic refinement.

Whether an element is isotropic or not is decided using the is_anisotropic() functions from lib_grid's anisotropy_util and the given threshold ratio.

References ug::SurfaceView::ALL_BUT_SHADOW_COPY, ug::Grid::associated_elements(), ug::SurfaceView::begin(), ug::SurfaceView::end(), ISOTROPIC, long_edges_of_anisotropic_elem(), RM_CLOSURE, RM_FULL, s, and ug::PointerConstArray< TPtr >::size().

◆ MarkAnisotropicOnlyX()

template<typename TDomain >
void ug::MarkAnisotropicOnlyX ( SmartPtr< IRefiner refiner,
SmartPtr< TDomain >  domain,
number  thresholdRatio 
)

Mark all elements that are anisotropic in direction of the x-axis for ansiotropic refinement.

Whether an element is isotropic or not is decided using the is_anisotropic() functions from lib_grid's anisotropy_util and the given threshold ratio.

"Anisotropic in direction of the x-axis" means that the long edges (only the first one is checked) point more or less in x-direction, to be precise: the normalized vector connecting this edge's vertices has an x-entry of more than 0.9.

References ug::SurfaceView::ALL_BUT_SHADOW_COPY, ug::Grid::associated_elements(), ug::SurfaceView::begin(), ug::SurfaceView::end(), ISOTROPIC, long_edges_of_anisotropic_elem(), RM_CLOSURE, RM_FULL, s, ug::PointerConstArray< TPtr >::size(), UG_COND_THROW, VecNormalize(), VecSubtract(), and ug::EdgeVertices::vertex().

◆ MarkCorners() [1/2]

template<class TVertexIterator , class TAPosition >
UG_API void ug::MarkCorners ( Grid grid,
ISubsetHandler sh,
TVertexIterator  vrtsBegin,
TVertexIterator  vrtsEnd,
Grid::edge_traits::callback  cbPathEdge,
int  subsetIndex,
number  angle,
TAPosition &  aPos 
)

Assigns vertices between vrtsBegin and vrtsEnd to the specified subsetIndex if they are adjacent to more than 2 path edges or to exactly 1 path edge or. If a vertex is adjacent to exactly 2 path edges, it will be assigned if the angle between those edges is smaller than the given threshold-angle.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), deg_to_rad(), GetConnectedVertex(), ug::Grid::has_vertex_attachment(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSubtract().

◆ MarkCorners() [2/2]

template<class TVertexIterator , class TAPosition >
void ug::MarkCorners ( Grid grid,
ISubsetHandler sh,
TVertexIterator  vrtsBegin,
TVertexIterator  vrtsEnd,
Grid::edge_traits::callback  cbPathEdge,
int  subsetIndex,
number  angle,
TAPosition &  aPos 
)

Assigns vertices between vrtsBegin and vrtsEnd to the specified subsetIndex if they are adjacent to more than 2 path edges or to exactly 1 path edge or. If a vertex is adjacent to exactly 2 path edges, it will be assigned if the angle between those edges is smaller than the given threshold-angle.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), deg_to_rad(), GetConnectedVertex(), ug::Grid::has_vertex_attachment(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSubtract().

◆ MarkCreaseEdges() [1/2]

template<class TEdgeIterator >
void ug::MarkCreaseEdges ( Grid grid,
ISubsetHandler sh,
TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
int  subsetIndex,
number  angle,
APosition aPos = aPosition,
ANormal paFaceNormal = NULL 
)

paFaceNormal is ignored in the current implementation. In the moment normals are calculated on the fly and not stored. That means that the normal of each single face is calculated up to four times. This can be improved!

References ug::ISubsetHandler::assign_subset(), CalculateNormal(), GetAssociatedFaces(), ug::Grid::has_vertex_attachment(), and VecDot().

◆ MarkCreaseEdges() [2/2]

template<class TEdgeIterator >
UG_API void ug::MarkCreaseEdges ( Grid grid,
ISubsetHandler sh,
TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
int  subsetIndex,
number  angle,
APosition aPos = aPosition,
ANormal paFaceNormal = NULL 
)

paFaceNormal is ignored in the current implementation. In the moment normals are calculated on the fly and not stored. That means that the normal of each single face is calculated up to four times. This can be improved!

References ug::ISubsetHandler::assign_subset(), CalculateNormal(), GetAssociatedFaces(), ug::Grid::has_vertex_attachment(), and VecDot().

◆ MarkElements()

template<typename TElem >
void ug::MarkElements ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  TOL,
number  refineFrac,
number  coarseFrac,
int  maxLevel 
)

marks elements according to an attached error value field

This function marks elements for refinement and coarsening. The passed error attachment is used as a weight for the amount of the error an each element. All elements that have an indicated error with s* max <= err <= max are marked for refinement. Here, max is the maximum error measured, s is a scaling quantity chosen by the user. In addition, all elements with an error smaller than TOL (user defined) are not refined.

Parameters
[in,out]refinerRefiner, elements marked on exit
[in]dddof distribution
[in]TOLMinimum error, such that an element is marked
[in]scalescaling factor indicating lower bound for marking
[in]aaErrorError value attachment to elements ( \( \eta_i^2 \))

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::mark(), pcl::NumProcs(), PCL_RO_SUM, pcl::ProcRank(), RM_COARSEN, RM_REFINE, and UG_LOG.

◆ MarkElementsAbsolute()

template<typename TElem >
void ug::MarkElementsAbsolute ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  refTol,
number  coarsenTol,
int  minLevel,
int  maxLevel,
bool  refTopLvlOnly = false 
)

marks elements according to an attached error value field

This function marks elements for refinement. The passed error attachment is used as a weight for the amount of the error an each element. All elements that have an indicated error > refineTol are marked for refinement and elements with an error < coarsenTol are marked for coarsening

Parameters
[in,out]refinerRefiner, elements marked on exit
[in]dddof distribution
[in]refTolall elements with error > refTol are marked for refinement. If refTol is negative, no element will be marked for refinement.
[in]coarsenTolall elements with error < coarsenTol are marked for coarsening. If coarsenTol is negative, no element will be marked for coarsening.
[in]aaErrorError value attachment to elements

References pcl::ProcessCommunicator::allreduce(), ConstSmartPtr< T, FreePolicy >::get(), ug::MultiGrid::get_level(), ug::IRefiner::mark(), pcl::NumProcs(), PCL_RO_SUM, pcl::ProcRank(), RM_COARSEN, RM_REFINE, ug::MultiGrid::top_level(), and UG_LOG.

Referenced by MarkForAdaption_GradientAverage(), MarkForAdaption_GradientJump(), MarkForAdaption_L2ErrorExact(), MarkForAdaption_ResidualErrorP1Absolute(), and MarkForAdaption_ResidualErrorP1Relative().

◆ MarkElementsForCoarsening()

template<typename TElem >
void ug::MarkElementsForCoarsening ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  TOL,
number  safety,
int  minLevel = 0 
)

marks elements for coarsening according to an attached error value field

This function marks elements for coarsening. The passed error attachment is used as an indicator for the the error on each element. Elements one level below surface are marked if the average error of its children is lower than tol / #elems / 4 / safety. The safety factor is supposed to ensure that elements are not refined and coarsened back and forth in a dynamic adaptive simulation.

Parameters
[in]aaErrorerror value attachment to elements ( \( \eta_i^2 \))
[in,out]refinerrefiner, elements marked on exit
[in]dddof distribution
[in]toltolerated global error
[in]safetysafety factor

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::get_mark(), ug::IRefiner::mark(), pcl::NumProcs(), PCL_RO_SUM, RM_COARSEN, and UG_LOG.

◆ MarkElementsForRefinement()

template<typename TElem >
void ug::MarkElementsForRefinement ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  tol,
int  maxLevel 
)

marks elements according for refinement to an attached error value field

This function marks elements for refinement. The passed error attachment is used as an indicator for the the error on each element. Elements are refined if the error sum taken over all elements is greater than the tolerance value tol. In that case, elements with an indicated error of err >= tol / #elems are marked for refinement if and only if their multigrid level is below the tolerated maximum of maxLevel.

Parameters
[in]aaErrorerror value attachment to elements ( \( \eta_i^2 \))
[in,out]refinerrefiner, elements marked on exit
[in]dddof distribution
[in]toltolerated global error (no refinement if error below)
[in]maxLevelmaximal refinement level in multigrid

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::mark(), pcl::NumProcs(), PCL_RO_SUM, RM_REFINE, and UG_LOG.

◆ MarkForAdaption_AbsoluteGradientIndicator()

◆ MarkForAdaption_AbsoluteGradientJumpIndicator()

◆ MarkForAdaption_GradientAverage()

◆ MarkForAdaption_GradientIndicator()

◆ MarkForAdaption_GradientJump()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_GradientJump ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
const char *  cmp,
number  refFrac,
int  minLvl,
int  maxLvl,
std::string  jumpType 
)

This gradient jump error indicator runs in parallel environments and works with h-nodes.

Parameters
[in]refFracgiven minElemError and maxElemError, all elements with an error > minElemError+refFrac*(maxElemError-minElemError) will be refined.
[in]jumpTypedefines the type of jump that shall be evaluated:
  • norm: the difference between gradient norms on neighboring elements is regarded.
  • sideInt: The integral over the normal component of the gradient on each side is regarded.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::DoFDistributionInfoProvider::fct_id_by_name(), MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, PROFILE_FUNC, UG_COND_THROW, and UG_THROW.

◆ MarkForAdaption_GradientJumpIndicator()

◆ MarkForAdaption_L2ErrorExact()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_L2ErrorExact ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  spExactSol,
const char *  cmp,
number  minL2Error,
number  maxL2Error,
number  refFrac,
int  minLvl,
int  maxLvl,
number  time,
int  quadOrder 
)
Parameters
[in]maxL2Errorerrors below maxL2Error are considered fine.

References pcl::ProcessCommunicator::allreduce(), dim, MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, PCL_RO_SUM, PROFILE_FUNC, sq(), UG_COND_THROW, and UG_LOG.

◆ MarkForAdaption_ResidualErrorP1Absolute()

template<typename TDomain , typename TAlgebra >
number ug::MarkForAdaption_ResidualErrorP1Absolute ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  f,
const char *  cmp,
number  time,
number  refTol,
number  coarsenTol,
int  maxLvl,
int  quadOrder,
std::string  quadType,
bool  refTopLvlOnly = false 
)

A classical residual error for the poisson problem on linear shape functions works with h-nodes.

Evaluates the element residual error sqrt{hT^2 * ||RT||^2 + 0.5*sum(hS*||RS||^2)} where the sum contains all sides S of an element T. RT denotes the residuum and RS the gradient-jump over sides of T.

Parameters
[in]refTolThreshold value. Only elements with a higher residual error than refTol are refined.
Returns
the fraction of the residual error in marked elements compared to the total residual error.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::GridFunction< TDomain, TAlgebra >::domain(), EvaluateResidualErrorP1(), ug::IRefiner::get_mark(), MarkElementsAbsolute(), PCL_RO_SUM, PROFILE_FUNC, RM_ANISOTROPIC, RM_REFINE, and sq().

◆ MarkForAdaption_ResidualErrorP1Relative()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_ResidualErrorP1Relative ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  f,
const char *  cmp,
number  time,
number  refFrac,
int  minLvl,
int  maxLvl,
int  quadOrder,
std::string  quadType 
)

A classical residual error for the poisson problem on linear shape functions works with h-nodes.

Evaluates the element residual error sqrt{hT^2 * ||RT||^2 + 0.5*sum(hS*||RS||^2)} where the sum contains all sides S of an element T. RT denotes the residuum and RS the gradient-jump over sides of T.

Parameters
[in]refFracgiven minElemError and maxElemError, all elements with an error > minElemError+refFrac*(maxElemError-minElemError) will be refined.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::GridFunction< TDomain, TAlgebra >::domain(), EvaluateResidualErrorP1(), MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, and PROFILE_FUNC.

◆ MarkForAnisotropicRefinement()

template<class TRef , class TIter , class TAAPos >
void ug::MarkForAnisotropicRefinement ( Grid grid,
TRef &  ref,
number  minEdgeRatio,
TIter  elemsBegin,
TIter  elemsEnd,
TAAPos  aaPos 
)
Parameters
gridThe whose elements shall be marked.
refThe specified refiner has to feature methods 'mark(elem_t*, byte)' where elem_t = Vertex, Edge, Face, and Volume. Note that you may also pass a selector instead of a refiner.
minEdgeRatioIf the ratio between the shortest and the longest edge of an element is smaller than minEdgeRatio, the element is considered to be anisotropic. The element itself and all of its edges with a smaller ratio ar marked for refinement.
elemsBeginIterator to the first element in the sequence of elements that shall be checked.
elemsEndIterator to the (pseudo-) element directly behind the last element in the sequence of elements that shall be checked.
aaPosA VertexAttachmentAccessor to an APosition compatible type.

References ug::Grid::associated_elements(), EdgeLengthSq(), end_for, for_each_in_vec, RM_ANISOTROPIC, RM_CLOSURE, RM_REFINE, ug::PointerConstArray< TPtr >::size(), SMALL_SQ, and sq().

Referenced by MarkForRefinement_AnisotropicElements().

◆ MarkForCoarsenening_SurfaceLayer()

template<typename TDomain , typename TAlgebra >
void ug::MarkForCoarsenening_SurfaceLayer ( const GridFunction< TDomain, TAlgebra > &  u,
IRefiner refiner 
)

◆ MarkForRefinementByDirection()

template<class TRef , class TEdgeIter , class TAAPos >
void ug::MarkForRefinementByDirection ( TRef &  ref,
TAAPos  aaPos,
TEdgeIter  edgesBegin,
TEdgeIter  edgesEnd,
const typename TAAPos::ValueType &  dir,
number  minDeviationAngle,
number  maxDeviationAngle,
bool  selectFlipped 
)

◆ MarkGlobal()

template<typename TDomain >
void ug::MarkGlobal ( SmartPtr< IRefiner refiner,
SmartPtr< TDomain >  domain 
)

Mark all surface elements for refinement.

References ug::SurfaceView::ALL_BUT_SHADOW_COPY, ug::SurfaceView::begin(), ug::SurfaceView::end(), and RM_FULL.

◆ MarkOutOfRangeElems() [1/2]

template<typename TGridFunction , typename TBaseElem >
unsigned long ug::MarkOutOfRangeElems ( SmartPtr< IRefiner refiner,
ConstSmartPtr< TGridFunction >  u,
size_t  cmp,
number  lowerBnd,
number  upperBnd 
)

◆ MarkOutOfRangeElems() [2/2]

template<typename TGridFunction >
void ug::MarkOutOfRangeElems ( SmartPtr< IRefiner refiner,
ConstSmartPtr< TGridFunction >  u,
size_t  cmp,
number  lowerBnd,
number  upperBnd 
)

Marks for refinement all (full-dim) elements neighboring grid elements that contain a degree of freedom (Lagrangian) whose value is outside a given range.

This function can be used to adaptively refine geometries with Q1 shape functions, which can become negative, e.g., in diffusion problems.

Parameters
refinerrefiner for hanging node refinement
usolution grid function
cmpcomponent to check
lowerBndlower bound
upperBndupper bound

References pcl::ProcessCommunicator::allreduce(), pcl::NumProcs(), PCL_RO_SUM, and UG_LOGN.

◆ MarkSubsets()

template<typename TDomain >
void ug::MarkSubsets ( SmartPtr< IRefiner refiner,
SmartPtr< TDomain >  domain,
const std::vector< std::string > &  vSubset 
)

◆ MatAdd()

template<typename X , typename Y , typename M >
void ug::MatAdd ( MatrixOperator< M, X, Y > &  res,
number  alpha1,
MatrixOperator< M, X, Y > &  A1,
number  alpha2,
MatrixOperator< M, X, Y > &  A2 
)

◆ MatAdditiveToConsistentOnDiag()

template<typename TAlgebra >
void ug::MatAdditiveToConsistentOnDiag ( typename TAlgebra::matrix_type pMat,
const IndexLayout masterLayout,
const IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

changes parallel storage type from additive to consistent on diagonal of a matrix

This function changes the storage type of a matrix from additive to consistent on the diagonal. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[in,out]pVecParallel Vector
[in]masterLayoutMaster Layout
[in]slaveLayoutSlave Layout
[in]pComParallel Communicator

References AdditiveToConsistent(), MatExtractDiagOnLayout(), MatWriteDiagOnLayout(), and PROFILE_FUNC_GROUP.

◆ matDiagMax() [1/2]

template<typename T1 >
double ug::matDiagMax ( const DenseMatrix< T1 > &  mat)
inline

◆ matDiagMax() [2/2]

double ug::matDiagMax ( const double  d)
inline

◆ MatExtractDiagOnLayout()

template<typename TMatrix , typename TVector >
void ug::MatExtractDiagOnLayout ( TVector *  pDiagVector,
const TMatrix *  pMatrix,
const IndexLayout Layout 
)

extracts diagonal of a matrix for interface indices

This function extracts diagonal values of a matrix for all interface indices. No communication is performed.

Parameters
[out]pDiagVectorVector with diagonal entries
[in]pMatrixMatrix
[in]LayoutIndex Layout

References pcl::SingleLevelLayout< TInterface >::begin(), BlockRef(), pcl::SingleLevelLayout< TInterface >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_element(), GetCols(), and PROFILE_FUNC_GROUP.

Referenced by MatAdditiveToConsistentOnDiag().

◆ MatIdentity()

template<typename X , typename Y , typename M >
void ug::MatIdentity ( MatrixOperator< M, X, Y > &  opOut)

◆ MatlabString()

template<typename TStorage >
std::string ug::MatlabString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

◆ MatMult()

◆ MatMultAdd() [1/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number alpha2,
const vector_t &  v2,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + beta1 * A1 *w1;

References MatMultAdd().

◆ MatMultAdd() [2/4]

◆ MatMultAdd() [3/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAdd().

◆ MatMultAdd() [4/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAdd().

◆ MatMultAddDirect() [1/6]

template<typename matrix_type , typename vector_type >
bool ug::MatMultAddDirect ( ParallelVector< vector_type > &  dest,
const number alpha1,
const ParallelVector< vector_type > &  v1,
const number alpha2,
const ParallelVector< vector_type > &  v2,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

◆ MatMultAddDirect() [2/6]

template<typename matrix_type , typename vector_type >
bool ug::MatMultAddDirect ( ParallelVector< vector_type > &  dest,
const number alpha1,
const ParallelVector< vector_type > &  v1,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

◆ MatMultAddDirect() [3/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number alpha1,
const vector_t &  v1 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1;

References VecScaleAssign().

Referenced by ug::mat_operations_class< vector_t, matrix_t, MATRIX_USE_GLOBAL_FUNCTIONS >::MatMultAdd(), and MatMultAddDirect().

◆ MatMultAddDirect() [4/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number alpha1,
const vector_t &  v1,
const number alpha2,
const vector_t &  v2 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1 + alpha2*v2;

References MatMultDirect(), and VecScaleAdd().

◆ MatMultAddDirect() [5/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAddDirect(), and MatMultDirect().

◆ MatMultAddDirect() [6/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2,
const number alpha1,
const vector_t &  v1 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2 + alpha1*v1;

References MatMultAddDirect(), and VecScaleAdd().

◆ MatMultDirect()

◆ MatMultTransposed()

template<typename vector_t , typename matrix_t >
bool ug::MatMultTransposed ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

◆ MatMultTransposedAdd()

template<typename vector_t , typename matrix_t >
bool ug::MatMultTransposedAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

◆ MatMultTransposedDirect()

template<typename matrix_type , typename vector_type >
void ug::MatMultTransposedDirect ( ParallelVector< vector_type > &  dest,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

◆ MatScale()

template<typename X , typename Y , typename M >
void ug::MatScale ( MatrixOperator< M, X, Y > &  A,
number  alpha 
)

◆ matSum() [1/3]

void ug::matSum ( double &  erg,
double  alpha,
double  vec 
)
inline

References alpha.

Referenced by matSum().

◆ matSum() [2/3]

template<typename T1 , typename T2 >
T1 ug::matSum ( double  alpha,
T2 &  mat 
)
inline

References alpha, and matSum().

◆ matSum() [3/3]

template<typename T1 , typename T2 >
void ug::matSum ( T1 &  erg,
double  alpha,
T2 &  mat 
)
inline

References alpha.

◆ matTrace() [1/2]

template<typename T1 >
double ug::matTrace ( const DenseMatrix< T1 > &  mat)
inline

◆ matTrace() [2/2]

double ug::matTrace ( const double  d)
inline

◆ MatTranspose()

template<typename X , typename Y , typename M >
void ug::MatTranspose ( MatrixOperator< M, X, Y > &  AT,
MatrixOperator< M, X, Y > &  A 
)

◆ MatWriteDiagOnLayout()

template<typename TMatrix , typename TVector >
void ug::MatWriteDiagOnLayout ( TMatrix *  pMatrix,
const TVector *  pDiagVector,
const IndexLayout Layout 
)

writes diagonal of a matrix for interface indices

This function writes diagonal values of a matrix for all interface indices. No communication is performed.

Parameters
[out]pMatrixMatrix
[in]pDiagVectorVector with diagonal entries
[in]LayoutIndex Layout

References pcl::SingleLevelLayout< TInterface >::begin(), BlockRef(), pcl::SingleLevelLayout< TInterface >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_element(), GetCols(), and PROFILE_FUNC_GROUP.

Referenced by MatAdditiveToConsistentOnDiag().

◆ MaxAbsEigenvalue() [1/2]

template<typename T >
MathMatrix<1,1,T>::value_type ug::MaxAbsEigenvalue ( const MathMatrix< 1, 1, T > &  m)
inline

◆ MaxAbsEigenvalue() [2/2]

template<typename T >
MathMatrix<2,2,T>::value_type ug::MaxAbsEigenvalue ( const MathMatrix< 2, 2, T > &  m)
inline

References UG_ASSERT.

◆ MaxElementDiameter< Domain1d >()

template number ug::MaxElementDiameter< Domain1d > ( Domain1d domain,
int  level 
)

◆ MaxElementDiameter< Domain2d >()

template number ug::MaxElementDiameter< Domain2d > ( Domain2d domain,
int  level 
)

◆ MaxElementDiameter< Domain3d >()

template number ug::MaxElementDiameter< Domain3d > ( Domain3d domain,
int  level 
)

◆ MaxError() [1/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References MaxError().

◆ MaxError() [2/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References MaxError().

◆ MaxError() [3/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, make_sp(), and MaxError().

◆ MaxError() [4/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References MaxError().

◆ MaxError() [5/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References MaxError().

◆ MaxError() [6/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References MaxError().

◆ MaxError() [7/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

computes maximum error of a grid function on a subset

This function computes the maximum error of a GridFunction. To evaluate the exact solution on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets (NULL = everywhere)
[in]timetime point
Returns
globalMaxError maximum norm of difference

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), ug::LFEID::LAGRANGE, PST_CONSISTENT, RemoveLowerDimSubsets(), SameDimensionsInAllSubsets(), TokenizeString(), and UG_THROW.

Referenced by MaxError().

◆ MaxError() [8/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References MaxError().

◆ MaxErrorOnElements() [1/2]

template<typename TElem , typename TGridFunction >
void ug::MaxErrorOnElements ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function computes maximum error of a grid function on an element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset
[in]timetime point

References CollectCornerCoordinates(), dim, DoFRef(), ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), ug::LocalDoFSet::num_sh(), ug::DimLocalDoFSet< TDim >::position(), UG_THROW, and ug::ReferenceMapping< TRefElem, TWorldDim >::update().

◆ MaxErrorOnElements() [2/2]

template<typename TGridFunction >
void ug::MaxErrorOnElements ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function computes maximum error of grid function on an element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctgrid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.

◆ MaxErrorOnVertices()

template<typename TGridFunction >
void ug::MaxErrorOnVertices ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function computes max error of a grid function on a vertex loop. Thus, it can only be used if all degrees of freedom are located in the vertices only (e.g. P1 finite elements). In those cases it is faster than the element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctgrid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to compute max error
[in]timetime point

References DoFRef(), and ug::SubsetGroup::size().

◆ MemSwap()

template<typename T >
void ug::MemSwap ( T &  a,
T &  b 
)

◆ MergeGlobalLayout()

void ug::MergeGlobalLayout ( GlobalLayout globalLayout,
const std::map< int, int > &  merge 
)

◆ MergeGrids() [1/4]

template void ug::MergeGrids ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition1  ,
bool   
)

◆ MergeGrids() [2/4]

template void ug::MergeGrids ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition2  ,
bool   
)

◆ MergeGrids() [3/4]

template void ug::MergeGrids ( Grid ,
Grid ,
ISubsetHandler ,
ISubsetHandler ,
APosition3  ,
bool   
)

◆ MergeGrids() [4/4]

template<typename TAPos >
void ug::MergeGrids ( Grid mrgGrid,
Grid grid,
ISubsetHandler mrgSh,
ISubsetHandler sh,
TAPos  aPos,
bool  joinSubsets 
)

◆ MergeInterfaces() [1/2]

template<typename TLayout >
void ug::MergeInterfaces ( TLayout &  layout,
const std::map< int, int >  merge 
)

◆ MergeInterfaces() [2/2]

template<typename TLayout >
void ug::MergeInterfaces ( TLayout &  layout,
const std::vector< int >  pidSources,
int  pidAppendTo 
)

◆ MeshLayerBoundaries()

◆ MeshLayers()

◆ MightContainGhosts()

template<typename TElem >
bool ug::MightContainGhosts ( const GridLayoutMap layoutMap,
int  lvl 
)

◆ MinAbsEigenvalue()

template<typename matrix_t >
matrix_t::value_type ug::MinAbsEigenvalue ( matrix_t &  m)
inline

References Inverse(), and MaxAbsEigenvalue().

◆ MinElementDiameter< Domain1d >()

template number ug::MinElementDiameter< Domain1d > ( Domain1d domain,
int  level 
)

◆ MinElementDiameter< Domain2d >()

template number ug::MinElementDiameter< Domain2d > ( Domain2d domain,
int  level 
)

◆ MinElementDiameter< Domain3d >()

template number ug::MinElementDiameter< Domain3d > ( Domain3d domain,
int  level 
)

◆ Minimum()

template<typename TGridFunction >
number ug::Minimum ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References GetMinimum().

◆ MultiEdgeSplit()

template<class TVrtIter , class TAAPos >
void ug::MultiEdgeSplit ( Grid grid,
Edge edge,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos  aaPos 
)

Inserts the specified vertices on the given edge.

The method assumes that the specified vertices do lie on the specified edge. The specified vertices do not have to be sorted in any specific order, since the method will sort them automatically.

References CollectFaces(), ug::Grid::create(), EdgeOrientationMatches(), ElementDebugInfo(), ug::Grid::erase(), ug::Grid::get_element(), GetConnectedVertex(), boost::num_vertices(), ug::FaceDescriptor::set_vertex(), SpacialVertexSort(), Triangulate(), UG_COND_THROW, VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceDescriptor::vertex().

Referenced by ProjectVerticesToCloseEdges().

◆ MultiEnergyProd()

template<typename matrix_type , typename vector_type , typename densematrix_type >
void ug::MultiEnergyProd ( matrix_type A,
SmartPtrVector< vector_type > &  px,
DenseMatrix< densematrix_type > &  rA,
size_t  n 
)

◆ MultiScalProd()

template<typename vector_type , typename densematrix_type >
void ug::MultiScalProd ( vector_type px,
DenseMatrix< densematrix_type > &  rA,
size_t  n 
)

References PINVIT_PROFILE_FUNC, and UG_ASSERT.

◆ MyCudaAlloc()

template<typename T >
T* ug::MyCudaAlloc ( size_t  N)

References CUDAError(), DID_CUDA, p, UG_DLOG, and UG_THROW.

◆ NbrIsInSubset()

template<class TElem >
static bool ug::NbrIsInSubset ( ISubsetHandler sh,
typename Grid::traits< TElem >::secure_container &  nbrs,
int  si 
)
static

◆ newton_for_bp_projection()

static void ug::newton_for_bp_projection ( vector3 posOut,
const std::vector< NeuriteProjector::BPProjectionHelper > &  vProjHelp,
float  rad,
const vector3 constAngleSurfNormal,
const NeuriteProjector np 
)
static

◆ NextValid2DFLine()

static std::string ug::NextValid2DFLine ( ifstream &  in)
inlinestatic

References TrimString().

Referenced by LoadGridFrom2DF().

◆ NonzeroString()

template<typename TStorage >
std::string ug::NonzeroString ( const DenseMatrix< TStorage > &  A,
const char *  brackets,
const char *  seperator,
int  base,
const char *  name 
)

References name.

Referenced by CPPString(), JuliaString(), and MatlabString().

◆ NormalizedChebyshev1Poly()

number ug::NormalizedChebyshev1Poly ( size_t  k,
number  x 
)

returns the values the normalized Chebyshev polynomials of the first kind

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \frac{1}{\sqrt {1 - x^2}} \, dx \) They satisfy the recursion \(T_0 (x) = 1\), \(T_1 (1) = x\), \(T_k (x) = 2 x T_{k-1} (x) - T_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\) for \(k > 0\) and \(\pi\) for \(k = 0\).

This function returns \(T_k (x)\) divided by its norm.

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

References Chebyshev1Poly(), and PI.

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ NormalizedChebyshev2Poly()

number ug::NormalizedChebyshev2Poly ( size_t  k,
number  x 
)

returns the values the normalized Chebyshev polynomials of the second kind

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \sqrt {1 - x^2} \, dx \) They satisfy the recursion \(U_0 (x) = 1\), \(U_1 (1) = 2 x\), \(U_k (x) = 2 x U_{k-1} (x) - U_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\).

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

References Chebyshev2Poly(), and PI.

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ NormalizedLegendrePoly()

number ug::NormalizedLegendrePoly ( size_t  k,
number  x 
)

returns the values of the normalized Legendre polynomials

The Legendre polynomials are \(L_2\)-orthogonal on \([-1, 1]\). They satisfy the recursion \(P_0 (x) = 1\), \(P_1 (1) = x\), \((n+1) P_k (x) = (2 k - 1) x P_{k-1} (x) - (k - 1) P_{n-2} (x)\). The \(L_2\)-norm of \(P_k\) is \(\sqrt {2 / (2 k + 1)}\). This function returns \(\sqrt {(2 k + 1) / 2} P_k (x)\).

Parameters
kindex of the polynomial, \(k \ge 0\)
xargument of the polynomial

References LegendrePoly().

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ NotVertical() [1/3]

static bool ug::NotVertical ( const vector1 ,
const vector1  
)
inlinestatic

◆ NotVertical() [2/3]

static bool ug::NotVertical ( const vector2 from,
const vector2 to 
)
inlinestatic

References SMALL.

◆ NotVertical() [3/3]

static bool ug::NotVertical ( const vector3 from,
const vector3 to 
)
inlinestatic

References SMALL.

◆ NumeriereKnoten()

void ug::NumeriereKnoten ( const std::vector< std::vector< size_t > > &  vvConnections,
std::vector< bool > &  vVisited,
std::vector< size_t > &  vAncestorsCount,
std::vector< size_t > &  vNewIndex,
size_t &  N,
size_t  v 
)

Numbers vertices based on a adjacency matrix. Depth first traversal approach. based on "NumeriereKnoten in chapter Downwind-Numbering in <<Finite Volumen- und Mehrgitterverfahren für elliptische Randwertprobleme>> by Jürgen Bey

Parameters
[in]vvConnectionsan adjacency vector of vectors of vertex indices
[in/out]vVisited a vector of booleans. vVisited[vertex] = true only if vertex was visited by NumeriereKnoten
[in]vAncestorsCounta vector of count of ancestor vertices per vertex.
[out]vNewIndexa vector of new indices per vector, usable for reordering
[in/out]N the highest Index up until now.
[in]vthe vertex to inspect.

Referenced by OrderDownwindForDofDist().

◆ NumIndices()

◆ ObtainSimpleGrid()

template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ug::ObtainSimpleGrid ( SimpleGrid sgOut,
Grid grid,
Vertex vrt1,
Vertex vrt2,
size_t  size,
TPosAcc &  aaPos,
TNormAcc &  aaNorm,
TIntAcc &  aaInt 
)

returns a neighbourhood of the edge defined by vrt1 and vrt2 in a SimpleGrid.

Uses Grid::mark(). Make sure that the queried sub-grid only contains triangles. vrt1 and vrt2 will be the first two vertices in the returned vertex-list. The triangles that contain both vrt1 and vrt2 are the first triangles in the triangle list. The vertices that are contained in those triangles are the next vertices in the vertex list (excluding vrt1 and vrt2).

You have to pass an accessor to the positions of the grids vertices (aaPos). Additionally you have to pass an accessor to an integer-attachment at the vertices. This attachment is only intended as a helper during the algorithm. You don't have to initialise it with any special values, nor are the values of this attachment cruical in any consecutive calls.

size determines the size of the neighbourhood. If size == 0 then only the triangles that contain the edge (vrt1, vrt2) are copied to sgOut. If size > 0 then each triangle that contains a vertex of the neighbourhood N(size - 1) is contained in N(size).

References ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::begin_marking(), CalculateTriangleNormals(), ug::SimpleGrid::clear(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::size(), ug::SimpleGrid::triangles, ug::FaceVertices::vertex(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

Referenced by TryCollapse(), and TrySwap().

◆ ObtainSimpleGrid_CollapseEdge()

template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ug::ObtainSimpleGrid_CollapseEdge ( SimpleGrid sgOut,
Grid grid,
Edge e,
size_t  size,
TPosAcc &  aaPos,
TNormAcc &  aaNorm,
TIntAcc &  aaInt 
)

returns a neighbourhood of the edge e after e has been collapsed.

This algorithm uses Grid::mark.

The new vertex which corresponds to the collapsed edge can be found at sgOut.vertices[0].

Please note that this method is capable of treating non-surface grids (i.e. grids where edges have more than two adjacent triangles).

Make sure that the neighbourhood of e only contains triangles.

Please note that the resulting grid is not suited for swap, split or collapse operations.

References ug::Grid::begin_marking(), CalculateCenter(), CalculateTriangleNormals(), ug::SimpleGrid::clear(), CollectNeighborhood(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::num_vertices(), ug::SimpleGrid::triangles, VecAdd(), VecNormalize(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

Referenced by TryCollapse().

◆ OctReferenceMappingTest()

void ug::OctReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vCornerCoord2,
std::vector< number vCornerCoord3,
std::vector< number vCornerCoord4,
std::vector< number vCornerCoord5,
std::vector< number vGlobPos 
)

◆ OnOffString()

const char* ug::OnOffString ( bool  b)
inline

◆ operator&()

ParallelStorageType ug::operator& ( const ParallelStorageType a,
const ParallelStorageType b 
)
inline

◆ operator*() [1/8]

◆ operator*() [2/8]

template<typename T >
TE_AlphaVec<typename T::vector_type> ug::operator* ( const TE_AlphaVec< T > &  l,
double  alpha 
)

◆ operator*() [3/8]

template<typename T >
TE_VecAdd2<T> ug::operator* ( const TE_VecAdd2< T > &  t,
double  alpha 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

◆ operator*() [4/8]

template<typename T >
TE_VecAdd3<T> ug::operator* ( const TE_VecAdd3< T > &  t,
double  alpha 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd3< T >::a1, ug::TE_VecAdd3< T >::a2, ug::TE_VecAdd3< T >::a3, alpha, ug::TE_VecAdd3< T >::v1, ug::TE_VecAdd3< T >::v2, and ug::TE_VecAdd3< T >::v3.

◆ operator*() [5/8]

template<typename value_type >
double ug::operator* ( const TRANSPOSED< Vector< value_type > > &  x,
const Vector< value_type > &  y 
)

◆ operator*() [6/8]

template<typename T >
TE_VecScale<typename T::vector_type> ug::operator* ( double  alpha,
const TE_AlphaVec< T > &  r 
)

◆ operator*() [7/8]

template<typename T >
TE_VecAdd2<T> ug::operator* ( double  alpha,
const TE_VecAdd2< T > &  t 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

◆ operator*() [8/8]

template<typename T >
TE_VecAdd3<T> ug::operator* ( double  alpha,
const TE_VecAdd2< T > &  t 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

◆ operator+() [1/4]

template<typename L , typename R >
TE_VecAdd2<typename L::vector_type> ug::operator+ ( const TE_AlphaVec< L > &  l,
const TE_AlphaVec< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AlphaVec< T >::cast(), and ug::TE_AlphaVec< T >::scaling().

◆ operator+() [2/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator+ ( const TE_AlphaVec< R > &  r,
const TE_VecAdd2< L > &  l 
)

◆ operator+() [3/4]

template<typename L , typename R >
AlphaMatVec_X_Expression<L, operation_add, R> ug::operator+ ( const TE_AMV_X< L > &  l,
const TE_AMV_X< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AMV_X< A >::cast().

◆ operator+() [4/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator+ ( const TE_VecAdd2< L > &  l,
const TE_AlphaVec< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, ug::TE_AlphaVec< T >::cast(), ug::TE_AlphaVec< T >::scaling(), ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

◆ operator++()

ReferenceObjectID ug::operator++ ( ReferenceObjectID roid,
int   
)
inline

◆ operator-() [1/4]

template<typename L , typename R >
TE_VecAdd2<typename L::vector_type> ug::operator- ( const TE_AlphaVec< L > &  l,
const TE_AlphaVec< R > &  r 
)

◆ operator-() [2/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator- ( const TE_AlphaVec< R > &  r,
const TE_VecAdd2< L > &  l 
)

◆ operator-() [3/4]

template<typename L , typename R >
AlphaMatVec_X_Expression<L, operation_sub, R> ug::operator- ( const TE_AMV_X< L > &  l,
const TE_AMV_X< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_minus, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AMV_X< A >::cast().

◆ operator-() [4/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator- ( const TE_VecAdd2< L > &  l,
const TE_AlphaVec< R > &  r 
)

◆ operator<<() [1/38]

std::ostream & ug::operator<< ( std::ostream &  os,
const NeuriteProjector::Mapping mapping 
)

Standard precision for UGX coord export is 18. Is this even correct to use? Shouldn't one use std::numeric_limits<number>::digits10+1?

References ug::NeuriteProjector::Mapping::lambda, ug::MathVector< N, T >::size(), ug::NeuriteProjector::Mapping::v1, and ug::NeuriteProjector::Mapping::v2.

◆ operator<<() [2/38]

◆ operator<<() [3/38]

template<class vector_t >
std::ostream& ug::operator<< ( std::ostream &  out,
const AABox< vector_t > &  box 
)

◆ operator<<() [4/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const AlgebraID ID 
)

◆ operator<<() [5/38]

◆ operator<<() [6/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const CommonLocalDoFSet v 
)

◆ operator<<() [7/38]

template<typename TStorage >
std::ostream& ug::operator<< ( std::ostream &  out,
const DenseMatrix< TStorage > &  mat 
)

◆ operator<<() [8/38]

template<typename T >
std::ostream & ug::operator<< ( std::ostream &  out,
const DenseMatrixInverse< T > &  mat 
)

◆ operator<<() [9/38]

template<typename TStorage >
std::ostream& ug::operator<< ( std::ostream &  out,
const DenseVector< TStorage > &  vec 
)

◆ operator<<() [10/38]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 0 > &  v 
)

◆ operator<<() [11/38]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 1 > &  v 
)

◆ operator<<() [12/38]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 2 > &  v 
)

◆ operator<<() [13/38]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 3 > &  v 
)

◆ operator<<() [14/38]

template<int dim>
std::ostream & ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< dim > &  v 
)

◆ operator<<() [15/38]

template<typename T , size_t n>
std::ostream& ug::operator<< ( std::ostream &  out,
const FixedArray1< T, n > &  arr 
)

◆ operator<<() [16/38]

template<typename T , size_t rowsT, size_t colsT, eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const FixedArray2< T, rowsT, colsT, T_ordering > &  arr 
)

◆ operator<<() [17/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const GridLevel v 
)

◆ operator<<() [18/38]

◆ operator<<() [19/38]

◆ operator<<() [20/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const LFEID v 
)

writes the Identifier to the output stream

◆ operator<<() [21/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const LocalDoF v 
)

writes to the output stream

References ug::LocalDoF::dim(), ug::LocalDoF::id(), and ug::LocalDoF::offset().

◆ operator<<() [22/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const LocalDoFSet v 
)

writes to the output stream

References ug::LocalDoFSet::num_dof(), and NUM_REFERENCE_OBJECTS.

◆ operator<<() [23/38]

std::ostream & ug::operator<< ( std::ostream &  out,
const QuadType v 
)

writes the Identifier to the output stream

References BEST, GAUSS, GAUSS_LEGENDRE, and NEWTON_COTES.

◆ operator<<() [24/38]

template<typename T , eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const ReservableArray2< T, T_ordering > &  arr 
)

◆ operator<<() [25/38]

template<typename T >
std::ostream& ug::operator<< ( std::ostream &  out,
const VariableArray1< T > &  arr 
)

◆ operator<<() [26/38]

template<typename T , eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const VariableArray2< T, T_ordering > &  arr 
)

◆ operator<<() [27/38]

template<typename TDomain , typename TAlgebra >
std::ostream& ug::operator<< ( std::ostream &  outStream,
const GridFunction< TDomain, TAlgebra > &  v 
)
inline

◆ operator<<() [28/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ParallelStorageType type 
)
inline

◆ operator<<() [29/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::FunctionGroup grp 
)
inline

◆ operator<<() [30/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::FunctionIndexMapping map 
)
inline

◆ operator<<() [31/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::LocalMatrix mat 
)
inline

◆ operator<<() [32/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::LocalVector vec 
)
inline

◆ operator<<() [33/38]

template<int N>
std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::MultiIndex< N > &  v 
)

◆ operator<<() [34/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
DiscPart  part 
)
inline

References EXPL, MASS, NONE, RHS, STIFF, and UG_THROW.

◆ operator<<() [35/38]

std::ostream& ug::operator<< ( std::ostream &  outStream,
ReferenceObjectID  type 
)
inline

◆ operator<<() [36/38]

template<>
std::string ug::operator<< ( std::string  a,
const char *  s 
)
inline

References s.

◆ operator<<() [37/38]

template<>
std::string ug::operator<< ( std::string  a,
std::string  b 
)
inline

◆ operator<<() [38/38]

template<typename T >
std::string ug::operator<< ( std::string  a,
t 
)
inline

References ToString().

◆ operator>>() [1/2]

◆ operator>>() [2/2]

◆ OrderCuthillMcKee() [1/2]

template<typename TDomain >
void ug::OrderCuthillMcKee ( ApproximationSpace< TDomain > &  approxSpace,
bool  bReverse 
)

orders the all DofDistributions of the ApproximationSpace using Cuthill-McKee

References ug::IApproximationSpace::dof_distributions(), OrderCuthillMcKee(), and UG_LOG.

◆ OrderCuthillMcKee() [2/2]

void ug::OrderCuthillMcKee ( DoFDistribution dofDistr,
bool  bReverse 
)
inline

◆ OrderDirectionYForDofDist()

template<typename TDomain >
void ug::OrderDirectionYForDofDist ( SmartPtr< DoFDistribution dd,
ConstSmartPtr< TDomain >  domain,
std::vector< size_t > &  indY 
)

◆ OrderDirectionZForDofDist()

template<typename TDomain >
void ug::OrderDirectionZForDofDist ( SmartPtr< DoFDistribution dd,
ConstSmartPtr< TDomain >  domain,
std::vector< size_t > &  indZ 
)

◆ OrderDownwind() [1/4]

template<typename TDomain >
void ug::OrderDownwind ( ApproximationSpace< TDomain > &  approxSpace,
const std::vector< number > &  vVel 
)

Calculates Downwind Numbering for all DofDistributions of one Domain.

Parameters
approxSpacethe domain.
vVela fixed velocity vector for a homogeneous velocity field.

References dim, and UG_THROW.

◆ OrderDownwind() [2/4]

template<typename TDomain >
void ug::OrderDownwind ( ApproximationSpace< TDomain > &  approxSpace,
const std::vector< number > &  vVel,
number  threshold 
)

Calculates Downwind Numbering for all DofDistributions of one Domain.

Parameters
approxSpacethe domain.
vVela fixed velocity vector for a homogeneous velocity field.
thresholdthreshold Threshold for the angle between a connection and the Velocity field in radians.

References dim, and UG_THROW.

◆ OrderDownwind() [3/4]

template<typename TDomain >
void ug::OrderDownwind ( ApproximationSpace< TDomain > &  approxSpace,
SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > >  spVelocity 
)

Calculates Downwind Numbering for all DofDistributions of one Domain.

Parameters
[in]approxSpacethe domain.
[in]spVelocitythe velocity field.

References PI.

◆ OrderDownwind() [4/4]

template<typename TDomain >
void ug::OrderDownwind ( ApproximationSpace< TDomain > &  approxSpace,
SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > >  spVelocity,
number  threshold 
)

Calculates Downwind Numbering for all DofDistributions of one Domain.

Parameters
[in]approxSpacethe domain.
[in]spVelocitythe velocity field.
thresholdthreshold Threshold for the angle between a connection and the Velocity field in radians.

References ug::IApproximationSpace::dof_distributions(), ug::ApproximationSpace< TDomain >::domain(), LIB_DISC_ORDER, UG_DLOG, and UG_LOG.

◆ OrderDownwindForDofDist() [1/2]

template<typename TDomain >
void ug::OrderDownwindForDofDist ( SmartPtr< DoFDistribution dd,
ConstSmartPtr< TDomain >  domain,
SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > >  spVelocity,
number  time,
int  si,
number  threshold 
)

◆ OrderDownwindForDofDist() [2/2]

template<typename TDomain >
void ug::OrderDownwindForDofDist ( SmartPtr< DoFDistribution spDd,
ConstSmartPtr< TDomain >  spDomain,
SmartPtr< UserData< MathVector< TDomain::dim >, TDomain::dim > >  spVelocity,
number  threshold 
)

Calculates Downwind-Numbering for one DofDistribution only. uses NumeriereKnoten based on ideas of Jürgen Bey.

Parameters
[in]spDdDofDistribution to apply Downwind-Numbering on.
[in]spDomainDomain of the problem
[in]spVelocityVelocity field
[in]thresholdThreshold for the angle between a connection and the Velocity field in radians.

◆ OrderLex()

template<typename TDomain >
void ug::OrderLex ( ApproximationSpace< TDomain > &  approxSpace,
const char *  order 
)

orders the all DofDistributions of the ApproximationSpace using lexicographic order

References ug::IApproximationSpace::dof_distributions(), ug::ApproximationSpace< TDomain >::domain(), UG_LOG, and UG_THROW.

◆ OrderLexForDofDist()

template<typename TDomain >
void ug::OrderLexForDofDist ( SmartPtr< DoFDistribution dd,
ConstSmartPtr< TDomain >  domain,
size_t  orderDim,
bool  increasing 
)

orders the dof distribution using Cuthill-McKee

orders the dof distribution using lexicographic order

References ExtractPositions(), ug::LocalFiniteElementProvider::get_dofs(), ug::CommonLocalDoFSet::num_dof(), NUM_REFERENCE_OBJECTS, and UG_LOG.

◆ OrientationMatches() [1/3]

bool ug::OrientationMatches ( const EdgeVertices e1,
const EdgeVertices e2 
)

◆ OrientationMatches() [2/3]

UG_API bool ug::OrientationMatches ( EdgeVertices ev,
Face f 
)

checks if the edge-orientation of the edge and the face matches.

the match is positive if the face contains the vertices of 'ev' in the same order as ev. please note: if the edge is contained by two faces and both faces have the same edge-orientation as ed, then the face-orientation of the faces differ.

References ug::FaceVertices::num_vertices(), boost::num_vertices(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

◆ OrientationMatches() [3/3]

◆ OstreamShift()

template<typename T >
std::string ug::OstreamShift ( const T &  t)
inline

References ConfigShift().

Referenced by operator<<().

◆ ParallelLayoutDebugSave()

static void ug::ParallelLayoutDebugSave ( MultiGrid mg)
static

temporary method, which will be removed when debugging is done.

References ug::MultiGrid::num(), pcl::ProcRank(), SaveParallelGridLayout(), and UG_LOG.

Referenced by ug::HangingNodeRefiner_MultiGrid::perform_coarsening().

◆ ParallelSubspaceCorrectionLoop()

template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ug::ParallelSubspaceCorrectionLoop ( const typename TAlgebra::matrix_type A,
GridFunction< TDomain, TAlgebra > &  c,
const typename TAlgebra::vector_type d,
number  omega_relax,
ILocalSubspace< TDomain, TAlgebra, TGroupObj > &  subspace,
typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator  objIterBegin,
typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator  objIterEnd 
)

◆ PartitionDistributedDomain_LevelBased()

template<typename TDomain >
static bool ug::PartitionDistributedDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

◆ PartitionDomain_Bisection()

template<typename TDomain >
static bool ug::PartitionDomain_Bisection ( TDomain &  domain,
PartitionMap partitionMap,
int  firstAxisToCut 
)
static

partitions a domain by repeatedly cutting it along the different axis

◆ PartitionDomain_LevelBased() [1/2]

template<typename TDomain >
static bool ug::PartitionDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

Partitions a domain based on the elements of one level.

The elements are thereby weighted by the number of children they have. Partitioning is done using the metis graph library.

◆ PartitionDomain_LevelBased() [2/2]

template<typename TDomain >
static bool ug::PartitionDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

◆ PartitionDomain_MetisKWay() [1/4]

◆ PartitionDomain_MetisKWay() [2/4]

template<typename TDomain >
static bool ug::PartitionDomain_MetisKWay ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  baseLevel,
SmartPtr< PartitionWeighting weightFct 
)
static

partitions a domain by using graph-based partitioning by METIS

Weights can be chosen for borders between subsets in order to prevent them from being part of the border of the geometry distribution onto the available processors.

◆ PartitionDomain_MetisKWay() [3/4]

◆ PartitionDomain_MetisKWay() [4/4]

template<typename TDomain >
static bool ug::PartitionDomain_MetisKWay ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1 
)
static

partitions a domain by using graph-based partitioning by METIS

◆ PartitionDomain_RegularGrid() [1/2]

template<typename TDomain >
static bool ug::PartitionDomain_RegularGrid ( TDomain &  domain,
PartitionMap partitionMap,
int  numCellsX,
int  numCellsY,
int  numCellsZ,
bool  surfaceOnly 
)
static

partitions a domain by sorting all elements into a regular grid

◆ PartitionDomain_RegularGrid() [2/2]

template<typename TDomain >
static bool ug::PartitionDomain_RegularGrid ( TDomain &  domain,
PartitionMap partitionMap,
int  numCellsX,
int  numCellsY,
int  numCellsZ,
bool  surfaceOnly 
)
static

◆ PartitionGrid_MetisKway()

template<class TGeomBaseObj >
bool ug::PartitionGrid_MetisKway ( SubsetHandler shPartitionOut,
Grid grid,
int  numParts 
)

Partitions the elements in the grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), ug::Grid::end(), LIB_GRID, UG_DLOG, and UG_THROW.

◆ PartitionGrid_MetisKway< Edge >()

template bool ug::PartitionGrid_MetisKway< Edge > ( SubsetHandler ,
Grid ,
int   
)

◆ PartitionGrid_MetisKway< Face >()

template bool ug::PartitionGrid_MetisKway< Face > ( SubsetHandler ,
Grid ,
int   
)

◆ PartitionGrid_MetisKway< Volume >()

template bool ug::PartitionGrid_MetisKway< Volume > ( SubsetHandler ,
Grid ,
int   
)

◆ PartitionMultiGrid_MetisKway() [1/2]

template<class TGeomBaseObj >
bool ug::PartitionMultiGrid_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid grid,
int  numParts,
size_t  baseLevel,
boost::function< int(TGeomBaseObj *, TGeomBaseObj *)> &  weightFct 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

All elements in baseLevel and higher levels will be partitioned. elements below baseLevel will stay where they are and are completely ignored during load balancing.

weightFct specifies a function that attributes special weights to edges on the dual graph.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::MultiGrid::begin(), ug::MultiGrid::end(), ug::Grid::front(), LIB_GRID, ug::MultiGrid::num(), ug::MultiGrid::num_levels(), UG_ASSERT, UG_DLOG, and UG_THROW.

◆ PartitionMultiGrid_MetisKway() [2/2]

template<class TGeomBaseObj >
bool ug::PartitionMultiGrid_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid grid,
int  numParts,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

All elements in baseLevel and higher levels will be partitioned. elements below baseLevel will stay where they are and are completely ignored during load balancing.

hWeight and vWeight determine, how important it is to keep horizontal and vertical neighbors on the same process as the element itself. The bigger hWeight, the more attention is spend to keep neighbors together. Both parameters have to be > 0. Default is 1.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::MultiGrid::begin(), ug::MultiGrid::end(), LIB_GRID, ug::MultiGrid::num_levels(), UG_DLOG, and UG_THROW.

◆ PartitionMultiGrid_MetisKway< Edge >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Edge *, Edge *)> &   
)

◆ PartitionMultiGrid_MetisKway< Edge >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

◆ PartitionMultiGrid_MetisKway< Face >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Face *, Face *)> &   
)

◆ PartitionMultiGrid_MetisKway< Face >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

◆ PartitionMultiGrid_MetisKway< Volume >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Volume *, Volume *)> &   
)

◆ PartitionMultiGrid_MetisKway< Volume >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

◆ PartitionMultiGridLevel_MetisKway()

template<class TGeomBaseObj >
bool ug::PartitionMultiGridLevel_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid mg,
int  numParts,
size_t  level 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

The method performs load balancing for the elements in the given level. The elements are weighted according to the number of children each has. Child elements will then be recursively assigned to the partitions into which their parents have been assigned, starting from level+1. Elements below the specified level will be assigned to the local process id.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to(), ug::MultiGrid::begin(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::Grid::front(), ug::MultiGrid::get_child(), ug::MultiGrid::get_parent(), ug::ISubsetHandler::get_subset_index(), LIB_GRID, ug::MultiGrid::num(), ug::MultiGrid::num_children(), ug::MultiGrid::num_children_total(), ug::MultiGrid::num_levels(), pcl::ProcRank(), ug::MultiGrid::top_level(), UG_DLOG, UG_LOG, and UG_THROW.

◆ PartitionMultiGridLevel_MetisKway< Edge >()

template bool ug::PartitionMultiGridLevel_MetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PartitionMultiGridLevel_MetisKway< Face >()

template bool ug::PartitionMultiGridLevel_MetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PartitionMultiGridLevel_MetisKway< Volume >()

template bool ug::PartitionMultiGridLevel_MetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PartitionMultiGridLevel_ParmetisKway()

template<class TGeomBaseObj >
bool ug::PartitionMultiGridLevel_ParmetisKway ( SubsetHandler shPartitionOut,
MultiGrid mg,
int  numParts,
size_t  level 
)

Partitions the elements in the multi-grid using the PARMETIS library.

This method calls METIS_PartGraphKway. Note that PARMETIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

The method performs parallel load balancing for the elements in the given level. The elements are weighted according to the number of children each has. Child elements will then be recursively assigned to the partitions into which their parents have been assigned, starting from level+1. Elements below the specified level will be assigned to the local process id.

References ug::GridSubsetHandler::assign_subset(), ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::ProcessCommunicator::create_sub_communicator(), ug::Grid::distributed_grid_manager(), pcl::ProcessCommunicator::empty(), ug::MultiGrid::end(), ug::MultiGrid::get_child(), ug::GridLayoutMap::get_layout(), pcl::ProcessCommunicator::get_mpi_communicator(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), ug::GridLayoutMap::has_layout(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::Grid::is_parallel(), LIB_GRID, ug::MultiGrid::num_children(), ug::MultiGrid::num_children_total(), ug::MultiGrid::num_levels(), pcl::ProcRank(), pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), pcl::ProcessCommunicator::size(), ug::MultiGrid::top_level(), UG_DLOG, and UG_THROW.

◆ PartitionMultiGridLevel_ParmetisKway< Edge >()

template bool ug::PartitionMultiGridLevel_ParmetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PartitionMultiGridLevel_ParmetisKway< Face >()

template bool ug::PartitionMultiGridLevel_ParmetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PartitionMultiGridLevel_ParmetisKway< Volume >()

template bool ug::PartitionMultiGridLevel_ParmetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t   
)

◆ PathFromFilename()

string ug::PathFromFilename ( const string &  str)

◆ PerformCollapses() [1/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static bool ug::PerformCollapses ( const AdjustEdgeLengthDesc desc,
Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt 
)
static

◆ PerformCollapses() [2/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::PerformCollapses ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
number  minEdgeLen,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
bool  adaptive = true 
)

◆ PerformRetetrahedralization()

◆ PerformSplits() [1/2]

template<class TAAPosVRT , class TAANormVRT >
static bool ug::PerformSplits ( const AdjustEdgeLengthDesc desc,
Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm 
)
static

◆ PerformSplits() [2/2]

template<class TAAPosVRT , class TAANormVRT >
bool ug::PerformSplits ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
number  maxEdgeLen,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
bool  adaptive = true 
)

◆ PerformSwaps()

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::PerformSwaps ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt 
)

◆ PerformTetrahedralization()

◆ PermuteIndicesInIndexLayout()

void ug::PermuteIndicesInIndexLayout ( IndexLayout layout,
const std::vector< size_t > &  vIndNew 
)

permutes an IndexLayout for the permutation of indices

This Function changes the indices in the layout according to a given permutation of the indices. (The order of the DoFs in the interfaces remains the same, but the DoFs are "renamed") The vector vIndNew must return the new index for each old index, i.e. newIndex = vIndNew[oldIndex].

Parameters
[in]vIndNewmapping for each index
Returns
success flag

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_element(), and UG_ASSERT.

◆ PluginLoaded()

bool ug::PluginLoaded ( const string &  name)

References find(), and name.

◆ PointIsInsideQuadrilateral()

template<>
bool ug::PointIsInsideQuadrilateral ( const MathVector< 3 > &  v,
const MathVector< 3 > &  v0,
const MathVector< 3 > &  v1,
const MathVector< 3 > &  v2,
const MathVector< 3 > &  v3 
)
inline

References UG_THROW.

◆ PointIsInsideTriangle()

template<>
bool ug::PointIsInsideTriangle ( const MathVector< 3 > &  v,
const MathVector< 3 > &  v0,
const MathVector< 3 > &  v1,
const MathVector< 3 > &  v2 
)
inline

References UG_THROW.

◆ PointTriangleIntersection()

static int ug::PointTriangleIntersection ( const vector3 p,
const TRI t 
)
static

References CROSS, INSIDE, ug::TRI::m_P, MAX3, MIN3, OUTSIDE, p, SIGN3, and SUB.

Referenced by TriCubeIntersection().

◆ pos_in_bp()

◆ pos_in_neurite()

static void ug::pos_in_neurite ( vector3 posOut,
const NeuriteProjector::Neurite neurite,
size_t  neuriteID,
float  t,
float  angle,
float  rad 
)
static

◆ pos_on_surface_tip()

◆ post_assemble_loop()

◆ PostProcessDistInfos()

template<class TElem >
static void ug::PostProcessDistInfos ( MultiGrid mg,
DistInfoSupplier distInfos 
)
static

DistInfos are post-processed and some values are adjusted (primarily missing vslaves-marks are added)

In some situations a copy of an element may be marked as vmaster but some associated copies are neither marked as vmaster or vslave. This would be invalid and we have to mark those copies as vslaves in those situations.

This occurs in situations where a low-dim element with copies on p1 and p2 (no v-interface) is distributed from p1 to a third process.

This method should be called after the distribution infos have been synchronized. Since it performs the exactly same actions on all processes for synchronized dist-infos, no further communication is required afterwards.

References ug::MultiGrid::begin(), ElementDebugInfo(), ug::MultiGrid::end(), ug::DistInfoSupplier::get(), ug::DistInfoSupplier::get_debug_info(), ug::TargetProcInfo::interfaceState, IS_DUMMY, IS_NORMAL, IS_VMASTER, IS_VSLAVE, UG_LOG, and UG_THROW.

◆ prep_assemble_loop()

◆ print_mark() [1/2]

static void ug::print_mark ( int &  posNow,
int  length 
)
inlinestatic

◆ print_mark() [2/2]

static void ug::print_mark ( int &  posNow,
int  length 
)
inlinestatic

◆ PrintCondUserDataValue()

template<class TData , int dim>
void ug::PrintCondUserDataValue ( const UserData< TData, dim, bool > &  ud,
const MathVector< dim > &  globIP,
number  time,
int  si 
)

References UG_LOG.

◆ PrintDebugInfos()

void ug::PrintDebugInfos ( const vector< SweepLineVertex > &  vrts,
const list< SweepLineEdge > &  edges 
)

◆ PrintDoFCount()

◆ PrintElementEdgeRatios()

template<class TIterator , class TAAPos >
void ug::PrintElementEdgeRatios ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPos  aaPos 
)

◆ PrintGlobalLayout()

void ug::PrintGlobalLayout ( const GlobalLayout globalLayout,
const char *  name 
)

◆ PrintLayouts()

◆ PrintLUA()

void ug::PrintLUA ( )

References UG_LOG.

Referenced by ug::bridge::RegisterBridge_Misc().

◆ PrintMaple()

template<typename matrix_type >
void ug::PrintMaple ( const matrix_type mat,
const char *  name 
)

References name, and UG_LOG.

◆ PrintMatrix()

template<typename matrix_type >
void ug::PrintMatrix ( const matrix_type mat,
const char *  name 
)

◆ PrintQuadRule()

◆ PrintSimpleGrid()

◆ PrintStorageType()

template<typename tvector >
void ug::PrintStorageType ( const tvector &  v)

◆ PrintSubdivisionVolumesRefinementMask()

void ug::PrintSubdivisionVolumesRefinementMask ( )

Function for printing the subdivision volumes tet-oct refinement mask.

This function prints the subdivision volumes tet-oct refinement mask.

References UG_LOG.

◆ PrintUserDataValue()

template<class TData , int dim>
void ug::PrintUserDataValue ( const UserData< TData, dim > &  ud,
const MathVector< dim > &  globIP,
number  time,
int  si 
)

References UG_LOG.

◆ PrintVector()

template<typename T >
void ug::PrintVector ( const T &  v,
std::string  desc = "" 
)

References UG_LOG.

◆ ProjectHierarchyToSubdivisionLimit() [1/4]

template void ug::ProjectHierarchyToSubdivisionLimit ( MultiGrid mg,
APosition aPos 
)

◆ ProjectHierarchyToSubdivisionLimit() [2/4]

template void ug::ProjectHierarchyToSubdivisionLimit ( MultiGrid mg,
APosition1 aPos 
)

◆ ProjectHierarchyToSubdivisionLimit() [3/4]

template void ug::ProjectHierarchyToSubdivisionLimit ( MultiGrid mg,
APosition2 aPos 
)

◆ ProjectHierarchyToSubdivisionLimit() [4/4]

template<class TAPosition >
void ug::ProjectHierarchyToSubdivisionLimit ( MultiGrid mg,
TAPosition &  aPos 
)

Projection function for smooth subdivision (volumes+surface) refinement.

This function projects the vertices of all levels to their smooth limit positions determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid
aPosreference to position attachment

References pcl::ProcessCommunicator::allreduce(), ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::MultiGrid::get_parent(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::num_levels(), pcl::NumProcs(), PCL_RO_MAX, PROFILE_FUNC_GROUP, ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::nest_hierarchy().

◆ ProjectToLayer()

void ug::ProjectToLayer ( Grid grid,
const RasterLayers layers,
int  layerIndex,
Grid::VertexAttachmentAccessor< AVector3 aaPos 
)

◆ ProjectVerticesToCloseEdges() [1/2]

template<class TAAPosVRT >
bool ug::ProjectVerticesToCloseEdges ( Grid grid,
GridObjectCollection  elems,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

Projects vertices in elems onto close edges in elems. Though this method can be used to remove degenerated triangles, it is not guaranteed, that no degenerated triangles will remain (indeed, new degenerated triangles may be introduced).

Referenced by ResolveTriangleIntersections().

◆ ProjectVerticesToCloseEdges() [2/2]

◆ ProjectVerticesToCloseFaces()

template<class TObjectCollection , class TAPos >
bool ug::ProjectVerticesToCloseFaces ( Grid grid,
TObjectCollection &  elems,
TAPos &  aPos,
number  snapThreshold 
)

Projects vertices in elems onto close faces in elems.

Projects vertices in elems onto close faces in elems. TObjectCollection has to fulfill the interface of a GridObjectCollection.

Note
: It is recommended to use a Grid ore a Selector as TObjectCollection, since a GridObjectCollection is static and it would thus not be possible to resolve all intersections.

References FaceContains(), FindElementsInIntersectingNodes(), ug::FaceVertices::num_vertices(), ResolveVertexFaceIntersection(), sq(), VecDistanceSq(), VecSet(), and ug::FaceVertices::vertex().

◆ Prolongate()

◆ ProlongateElemwise()

◆ ProlongateP1()

◆ QuadDiagonalIsValid()

bool ug::QuadDiagonalIsValid ( const vector3 c0,
const vector3 c1,
const vector3 c2,
const vector3 c3 
)
inline

returns true if the normals of the resulting triangles point into the same direction

the quad is always assumed to be split along the diagonal c0, c2

References CalculateTriangleNormalNoNormalize(), SMALL, and VecDot().

Referenced by ReplaceLowValenceVertices().

◆ QuadrilateralAspectRatio()

template<class TAAPos >
number ug::QuadrilateralAspectRatio ( FaceVertices f,
TAAPos &  aaPos 
)

Returns the aspect ratio of a quadrilateral.

The aspect ratio is calculated using the formula

q = aMax * (a0 + a1 + a2 + a3) / (4*A)

References QuadrilateralArea(), VecDistance(), and ug::FaceVertices::vertices().

Referenced by AspectRatio().

◆ QualityGridGeneration() [1/3]

template bool ug::QualityGridGeneration ( Grid ,
DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &  ,
number  ,
int   
)

◆ QualityGridGeneration() [2/3]

template<class TAAPos >
bool ug::QualityGridGeneration ( Grid grid,
DelaunayInfo< TAAPos > &  info,
number  minAngle = 0,
int  maxSteps = -1 
)

Transforms the given triangle-set into a delaunay set.

Creates a delaunay triangulation. If a minAngle greater than 0 is specified, then additional vertices are introduced, if required to generate fulfill the min-angle-condition.

Make sure that init_marks was performed on the specified deaunay-info object. If the triangulation is not already delaunay, all interior edges should also be pushed to the candidates pool (can be done automatically in DelaunayInfo::init_marks)

References ug::Grid::begin(), ug::Grid::begin_marking(), CalculateCenter(), CalculateNormal(), ug::DelaunayInfo< TAAPos >::classified_faces_left(), CollectAssociated(), ug::Grid::create(), CreatePolyChain(), deg_to_rad(), DelaunayDebugSave(), DelaunayLineLineIntersection(), DistancePointToLine(), EdgeContains(), EdgeLengthSq(), ug::DelaunayInfo< TAAPos >::enable_face_classification(), EnableDelaunayDebugSave(), ug::Grid::end_marking(), ug::Grid::erase(), ug::Grid::get_edge(), GetAssociatedFaces(), GetConnectedVertex(), ug::DelaunayInfo< TAAPos >::is_candidate(), ug::DelaunayInfo< TAAPos >::is_inner(), ug::Grid::is_marked(), ug::DelaunayInfo< TAAPos >::is_segment(), MakeDelaunay(), ug::Grid::mark(), ug::DelaunayInfo< TAAPos >::mark(), ug::Face::num_edges(), ug::FaceVertices::num_vertices(), ug::DelaunayInfo< TAAPos >::pop_classified_face(), ug::DelaunayInfo< TAAPos >::position_accessor(), ug::DelaunayInfo< TAAPos >::push_candidate(), rad_to_deg(), ug::DelaunayInfo< TAAPos >::set_mark(), SMALL, SMALL_SQ, ug::vrl::split(), ug::DelaunayInfo< TAAPos >::start_candidate_recording(), ug::DelaunayInfo< TAAPos >::stop_candidate_recording(), TriangleCircumcenter(), TriangleFill_SweepLine(), UG_LOG, VecAdd(), VecAngle(), VecDistance(), VecDistanceSq(), VecLengthSq(), VecNormalize(), VecScale(), VecScaleAdd(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

Referenced by QualityGridGeneration().

◆ QualityGridGeneration() [3/3]

template<class TriIter , class TAAPos >
bool ug::QualityGridGeneration ( Grid grid,
TriIter  trisBegin,
TriIter  trisEnd,
TAAPos &  aaPos,
number  minAngle = 0,
Grid::edge_traits::callback  cbConstrainedEdge = ConsiderNone(),
int  maxSteps = -1 
)

◆ RangeStringToIndexList()

template<class ind_t >
void ug::RangeStringToIndexList ( std::vector< ind_t > &  indsOut,
const char *  rangeString 
)

Range strings are comma separated values and ranges, e.g.: "0,1,2-4,8,9-11"

◆ RayElementIntersection() [1/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector2 from,
const vector2 dir,
Edge e,
Grid g,
Grid::VertexAttachmentAccessor< AVector2 aaPos,
number  sml = SMALL 
)

2d ray-element intersection for edges

sminOut and smaxOut return the relative coordinates of the intersection with the edge regarding the ray-parameter form. sminOut and smaxOut usually return the same result. They should only be different if the ray lies in the same hyperplane as the given edge. Then they would ontain the point where the ray enters (sminOut) and leaves (smaxOut) the edge. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 2d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.
Note
The case in which the ray lies in the plane of an edge is not yet implemented correctly.
Todo:
if a ray lies in the plane of an edge, sminOut and smaxOut are currently not correctly computed (see note).

References RayLineIntersection2d(), and ug::EdgeVertices::vertex().

Referenced by ug::FVLineSourceOrSink< dim, TData >::corresponds_to(), and ug::lg_ntree_traits_base< tree_dim, world_dim, elem_t_, common_data_t_ >::intersects_ray().

◆ RayElementIntersection() [2/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector2 from,
const vector2 dir,
Face f,
Grid g,
Grid::VertexAttachmentAccessor< AVector2 aaPos,
number  sml = SMALL 
)

2d ray-element intersection for faces

If the method returns true, the point where the ray enters and leaves the face are returned in sminOut and smaxOut respectively. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 2d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.

References RayElementIntersectionImpl().

◆ RayElementIntersection() [3/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Edge e,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for edges

Not implemented yet, always returns false

Referenced by RayElementIntersectionImpl().

◆ RayElementIntersection() [4/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Face f,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for faces

sminOut and smaxOut return the relative coordinates of the intersection with the face regarding the ray-parameter form. sminOut and smaxOut usually return the same result. They should only be different if the ray lies in the plane of the given face. Then they would contain the point where the ray enters (sminOut) and leaves (smaxOut) the face. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 3d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.
Note
The case in which the ray lies in the plane of a face is not yet implemented correctly.
Todo:
if a ray lies in the plane of a face, sminOut and smaxOut are currently not correctly computed (see note).

References ug::FaceVertices::num_vertices(), RayTriangleIntersection(), and ug::FaceVertices::vertex().

◆ RayElementIntersection() [5/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Volume v,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for volumes

If the method returns true, the point where the ray enters and leaves the volume are returned in sminOut and smaxOut respectively. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 3d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.

References RayElementIntersectionImpl().

◆ RayElementIntersectionImpl()

template<class TElem , class vector_t >
static bool ug::RayElementIntersectionImpl ( number sminOut,
number smaxOut,
const vector_t &  from,
const vector_t &  dir,
TElem *  e,
Grid g,
Grid::VertexAttachmentAccessor< Attachment< vector_t > >  aaPos,
number  sml 
)
static

utility method for the full-dimensional RayElementIntersection implementation

References ug::Grid::associated_elements(), end_for, for_each_in_vec, RayElementIntersection(), and s.

Referenced by RayElementIntersection().

◆ RayElementIntersections()

template<class tree_t >
bool ug::RayElementIntersections ( std::vector< RayElemIntersectionRecord< typename tree_t::elem_t > > &  intersectionsOut,
const tree_t &  tree,
const typename tree_t::vector_t &  rayFrom,
const typename tree_t::vector_t &  rayDir,
const number  small = 1.e-12 
)

◆ ReadFromFile()

template<typename T >
void ug::ReadFromFile ( T &  v,
std::string  filename 
)

◆ ReadGridHeader()

◆ ReadIndices()

static void ug::ReadIndices ( vector< int > &  vIndsOut,
char *  buffer,
const char *  delim,
bool  newTokBuff = true 
)
static

If you havn't already used strtok on the given buffer, pass true to newTokBuff (default == true).

Make sure that the buffer only contains index values!

Referenced by LoadGridFromART().

◆ ReadSelectionStatesFromStream()

template<class TElemIter >
static void ug::ReadSelectionStatesFromStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISelector sel,
BinaryBuffer in 
)
static

◆ ReadSubsetIndicesFromStream()

template<class TElemIter >
static void ug::ReadSubsetIndicesFromStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISubsetHandler sh,
BinaryBuffer in 
)
static

◆ ReadTetrahedrons()

static bool ug::ReadTetrahedrons ( Grid grid,
ifstream &  in,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
int &  lineCount 
)
static

References ug::Grid::create(), and split_parameters().

Referenced by LoadGridFromDUMP().

◆ ReadTriangles()

static bool ug::ReadTriangles ( Grid grid,
ifstream &  in,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
int &  lineCount 
)
static

References ug::Grid::create(), and split_parameters().

Referenced by LoadGridFromDUMP().

◆ ReadVector()

template<typename vector_type >
bool ug::ReadVector ( std::string  filename,
vector_type vec,
int  dim 
)

References dim, p, PROGRESS_START, and PROGRESS_UPDATE.

Referenced by LoadVector().

◆ ReceiveGlobalLayout()

◆ ReceiveMatrix()

◆ ReferenceElementCenter()

template<int dim>
MathVector<dim> ug::ReferenceElementCenter ( ReferenceObjectID  roid)
inline

returns the Center of a reference element at run-time

◆ ReferenceElementCenter< 1 >()

template<>
MathVector<1> ug::ReferenceElementCenter< 1 > ( ReferenceObjectID  roid)
inline

◆ ReferenceElementCenter< 2 >()

template<>
MathVector<2> ug::ReferenceElementCenter< 2 > ( ReferenceObjectID  roid)
inline

◆ ReferenceElementCenter< 3 >()

template<>
MathVector<3> ug::ReferenceElementCenter< 3 > ( ReferenceObjectID  roid)
inline

◆ ReferenceElementDimension()

◆ Refine()

template<class TElemClass >
static bool ug::Refine ( std::vector< Volume * > &  vNewVolumesOut,
Vertex **  ppNewVertexOut,
Vertex **  newEdgeVertices,
Vertex **  newFaceVertices,
Vertex newVolumeVertex,
const Vertex prototypeVertex,
Vertex **  vrts,
int(*)(int *, int *, bool &, vector3 *, bool *)  funcRefine,
vector3 corners = NULL,
bool *  isSnapPoint = NULL 
)
static

◆ release_mem()

void ug::release_mem ( void *  p)

References bMemTracker, memTracker, and p.

Referenced by operator delete(), and operator delete[]().

◆ RemoveDuplicates()

template<class TElemIter >
void ug::RemoveDuplicates ( Grid grid,
TElemIter  elemsBegin,
TElemIter  elemsEnd 
)

◆ RemoveEmptyInterfaces()

template<class TGeomObj >
static void ug::RemoveEmptyInterfaces ( typename GridLayoutMap::Types< TGeomObj >::Map &  map)
static

◆ RemoveInterface()

template<typename TLayout >
bool ug::RemoveInterface ( TLayout &  layout,
int  pid 
)

References find().

Referenced by MergeInterfaces(), and RemoveInterfaces().

◆ RemoveInterfaces()

template<typename TLayout >
void ug::RemoveInterfaces ( TLayout &  layout,
std::vector< int >  group 
)

References RemoveInterface().

◆ RemoveLowerDimSubsets()

void ug::RemoveLowerDimSubsets ( SubsetGroup subsetGroup)

Removes all subsets from the subset group that have a lower dimension than the highest dimension contained in the subset group.

Parameters
subsetGroupsubset group that is modified

References ug::SubsetGroup::dim(), ug::SubsetGroup::remove(), s, and ug::SubsetGroup::size().

Referenced by AddFunctionValuesToGridCoordinatesP1(), Integral(), IntegralNormalComponentOnManifoldSubsets(), IntegrateDiscFlux(), IntegrateSubsets(), Interpolate(), and MaxError().

◆ ReorderCornersCCW()

static bool ug::ReorderCornersCCW ( Vertex **  cornersOut,
Vertex **const  cornersIn,
int  numCorners,
int  firstCorner 
)
inlinestatic

helpful if a local vertex-order is required

cornersOut and cornersIn both have to be of size numCorners. After termination cornersOut will contain the vertices of cornersIn, starting from firstCorner, taking vertices modulo numCorners. If cornersOut == cornersIn, the method will fail! This is ok since the method is used locally and has been created for a special case.

Referenced by ug::CustomQuadrilateral< ConcreteQuadrilateralType, BaseClass, RefTriType, RefQuadType >::refine().

◆ RepeatedEdgeExtrusion()

template<class TIterator >
bool ug::RepeatedEdgeExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

◆ RepeatedFaceExtrusion()

template<class TIterator >
bool ug::RepeatedFaceExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

◆ RepeatedVertexExtrusion()

template<class TIterator >
bool ug::RepeatedVertexExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

◆ replace_chars()

string ug::replace_chars ( string &  str,
char  cToR,
char  cNew 
)

◆ ReplaceAll()

string ug::ReplaceAll ( string  target,
const string &  oldstr,
const string &  newstr 
)

◆ ReplaceByConstrained() [1/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Edge e 
)
static

◆ ReplaceByConstrained() [2/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Face f 
)
static

◆ ReplaceByConstrained() [3/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Vertex v 
)
static

◆ ReplaceByConstraining() [1/3]

static void ug::ReplaceByConstraining ( MultiGrid ,
Vertex  
)
static

◆ ReplaceByConstraining() [2/3]

static void ug::ReplaceByConstraining ( MultiGrid mg,
Edge e 
)
static

◆ ReplaceByConstraining() [3/3]

static void ug::ReplaceByConstraining ( MultiGrid mg,
Face f 
)
static

◆ ReplaceByNormal() [1/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Edge e 
)
static

◆ ReplaceByNormal() [2/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Face f 
)
static

◆ ReplaceByNormal() [3/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Vertex v 
)
static

◆ ReplaceByQuadrilateral()

UG_API Quadrilateral * ug::ReplaceByQuadrilateral ( Grid g,
Face tri1,
Face tri2 
)

Replaces the specified triangles by one quadrilateral.

The two triangles have to share exactly 2 vertices.

References CreateQuadrilateral_NoRegistration(), ug::Grid::erase(), GetConnectingEdge(), and ug::Grid::register_element().

Referenced by ReplaceByQuadrilaterals_EdgeBasedNoSort().

◆ ReplaceByQuadrilaterals_EdgeBased()

template<class edge_iter_t , class TAAPos >
void ug::ReplaceByQuadrilaterals_EdgeBased ( Grid g,
edge_iter_t  edgesBegin,
edge_iter_t  edgesEnd,
TAAPos  aaPos 
)

Attempts to replace triangles associated with the given set of edges by a set of quadrilaterals.

Quadrilaterals are generated in the order from good quads to bad quads.

References ug::Grid::associated_elements(), FaceQuality(), GetConnectedVertex(), GetConnectedVertexIndex(), ReplaceByQuadrilaterals_EdgeBasedNoSort(), ug::FaceDescriptor::set_vertex(), and ug::PointerConstArray< TPtr >::size().

Referenced by ReplaceByQuadrilaterals_FaceBased().

◆ ReplaceByQuadrilaterals_EdgeBasedNoSort()

template<class edge_iter_t >
void ug::ReplaceByQuadrilaterals_EdgeBasedNoSort ( Grid g,
edge_iter_t  edgesBegin,
edge_iter_t  edgesEnd 
)

Attempts to replace triangles associated with the given set of edges by a set of quadrilaterals.

The method tries for each edge in the specified order to replace associated triangles by one quadrilateral. The replace is only performed if exactly two different triangles are connected with the edge. Otherwise the edge is simply ignored.

Warning
Each edge may only be contained once in the given sequence.

References ug::Grid::associated_elements(), ReplaceByQuadrilateral(), and ug::PointerConstArray< TPtr >::size().

Referenced by ReplaceByQuadrilaterals_EdgeBased(), and ReplaceByQuadrilaterals_FaceBasedNoSort().

◆ ReplaceByQuadrilaterals_FaceBased()

template<class face_iter_t , class TAAPos >
void ug::ReplaceByQuadrilaterals_FaceBased ( Grid g,
face_iter_t  facesBegin,
face_iter_t  facesEnd,
TAAPos  aaPos 
)

Attempts to replace the given set of triangles by a set of quadrilaterals.

References ug::Grid::begin(), GetInnerEdgesOfFaceSoup(), and ReplaceByQuadrilaterals_EdgeBased().

◆ ReplaceByQuadrilaterals_FaceBasedNoSort()

template<class face_iter_t >
void ug::ReplaceByQuadrilaterals_FaceBasedNoSort ( Grid g,
face_iter_t  facesBegin,
face_iter_t  facesEnd 
)

Attempts to replace the given set of faces by a set of quadrilaterals.

The method finds edges which connect two triangles in the specified sequence and will pass those to 'ReplaceByQuadrilaterals_EdgeBasedNoSort' Quadrilaterals are generated in the order from good quads to bad quads.

References ug::Grid::begin(), GetInnerEdgesOfFaceSoup(), and ReplaceByQuadrilaterals_EdgeBasedNoSort().

◆ ReplaceIndicesInLayout()

void ug::ReplaceIndicesInLayout ( IndexLayout layout,
const std::vector< int > &  vMap 
)

replaces the indices in the layout based on a passed mapping

This function replaces the indices in the layout by new indices. The mapping between old and new indices is passed as newIndex = vMap[oldIndex]. The size of the new index set must be smaller or equal to the old index set. If the entry in the map is negative, the old index is removed from the layout.

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), and PROFILE_FUNC_GROUP.

◆ ReplaceLowValenceVertices()

◆ ReplaceValence3Vertices()

template<class TVrtIter , class TAAPos >
void ug::ReplaceValence3Vertices ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  maxSquaredHeightToBaseAreaRatio,
TAAPos  aaPos 
)

◆ ResetSubsetIndices()

template<class TElem , class TAAInd >
static void ug::ResetSubsetIndices ( Grid pGrid,
TAAInd &  aaInd 
)
static

◆ ResolveEdgeEdgeIntersection()

template<class TAAPosVRT >
Vertex * ug::ResolveEdgeEdgeIntersection ( Grid grid,
Edge e1,
Edge e2,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

This method does not resolve intersections between close, parallel edges or between degenerate edges. You can treat such cases with ReolveVertexEdgeIntersection.

References EdgeContains(), LineLineProjection(), MergeVertices(), p, VecDistanceSq(), VecScaleAdd(), and ug::EdgeVertices::vertex().

Referenced by IntersectCloseEdges().

◆ ResolveEdgeFaceIntersection()

template<class TAAPosVRT >
bool ug::ResolveEdgeFaceIntersection ( Grid grid,
Edge e,
Face f,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volume, too.

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volume, too.

References ug::Grid::create(), ug::Grid::erase(), FaceContains(), MergeVertices(), ug::FaceVertices::num_vertices(), p, RayTriangleIntersection(), ug::Face::refine(), ug::Grid::register_element(), s, VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

◆ ResolveTriangleIntersections()

template<class TAPos >
bool ug::ResolveTriangleIntersections ( Grid grid,
TriangleIterator  trisBegin,
TriangleIterator  trisEnd,
number  snapThreshold,
TAPos &  aPos 
)

◆ ResolveVertexEdgeIntersection()

template<class TAAPosVRT >
Vertex * ug::ResolveVertexEdgeIntersection ( Grid grid,
Vertex v,
Edge e,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

◆ ResolveVertexFaceIntersection()

template<class TAAPosVRT >
bool ug::ResolveVertexFaceIntersection ( Grid grid,
Vertex v,
Face f,
TAAPosVRT &  aaPos,
number  snapThreshold,
std::vector< Face * > *  pNewFacesOut 
)

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volumes, too.

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volumes, too.

References CalculateNormal(), ug::Grid::create(), ug::Face::edge_desc(), ug::Grid::erase(), FaceContains(), ug::Grid::get_edge(), ug::Grid::get_element(), ug::Grid::get_face(), ug::Face::num_edges(), ug::FaceVertices::num_vertices(), NumAssociatedFaces(), p, ProjectPointToLine(), ProjectPointToPlane(), RayTriangleIntersection(), ug::Face::refine(), ug::Grid::register_element(), ug::FaceDescriptor::set_vertex(), VecDistanceSq(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), and ug::FaceDescriptor::vertex().

Referenced by ProjectVerticesToCloseFaces().

◆ Restrict()

◆ RestrictElemwise()

◆ RestrictP1()

◆ ReturnValueToBool()

number ug::ReturnValueToBool ( lua_State L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a boolean, an error is thrown

References UG_THROW.

Referenced by ug::lua_traits< bool >::read().

◆ ReturnValueToInteger()

int ug::ReturnValueToInteger ( lua_State L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a integer, an error is thrown

References UG_THROW.

Referenced by ug::lua_traits< int >::read().

◆ ReturnValueToNumber()

number ug::ReturnValueToNumber ( lua_State L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a number, an error is thrown

References IsFiniteAndNotTooBig(), UG_COND_THROW, and UG_THROW.

Referenced by ug::LuaUserNumberNumberFunction::operator()(), ug::lua_traits< MathMatrix< dim, dim > >::read(), ug::lua_traits< ug::MathVector< dim > >::read(), and ug::lua_traits< number >::read().

◆ rot()

static void ug::rot ( number  A[3][3],
const number  s,
const number  tau,
const int  i,
const int  j,
const int  k,
const int  l 
)
static

◆ SameDimensionsInAllSubsets()

bool ug::SameDimensionsInAllSubsets ( const SubsetGroup subsetGroup)

Returns if dimension is the same in all subsets of the subset group

Parameters
subsetGroupsubset group that is checked
Returns
true if dimension is the same in all subsets, else false

References ug::SubsetGroup::dim(), s, and ug::SubsetGroup::size().

Referenced by Integral(), IntegralNormalComponentOnManifoldSubsets(), IntegrateDiscFlux(), IntegrateSubsets(), Interpolate(), and MaxError().

◆ SaveCoarsenMarksToFile()

◆ SaveDomain< Domain1d >()

template void ug::SaveDomain< Domain1d > ( Domain1d domain,
const char *  filename 
)

◆ SaveDomain< Domain2d >()

template void ug::SaveDomain< Domain2d > ( Domain2d domain,
const char *  filename 
)

◆ SaveDomain< Domain3d >()

template void ug::SaveDomain< Domain3d > ( Domain3d domain,
const char *  filename 
)

◆ SaveGrid()

template<class TAPos >
static bool ug::SaveGrid ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPos &  aPos 
)
static

◆ SaveGrid3d() [1/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition1 aPos 
)
static

◆ SaveGrid3d() [2/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition2 aPos 
)
static

◆ SaveGrid3d() [3/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition3 aPos 
)
static

References SaveGrid3d_IMPL().

Referenced by SaveGrid().

◆ SaveGrid3d_IMPL()

static bool ug::SaveGrid3d_IMPL ( Grid grid,
ISubsetHandler pSH,
const char *  filename,
AVector3 aPos 
)
static

◆ SaveGridHierarchyTransformed() [1/2]

bool ug::SaveGridHierarchyTransformed ( MultiGrid mg,
const char *  filename,
number  offset 
)

◆ SaveGridHierarchyTransformed() [2/2]

bool ug::SaveGridHierarchyTransformed ( MultiGrid mg,
ISubsetHandler sh,
const char *  filename,
number  offset 
)

◆ SaveGridLevel()

template<class TAPos >
bool ug::SaveGridLevel ( MultiGrid srcMG,
ISubsetHandler srcSH,
int  lvl,
const char *  filename,
TAPos  aPos 
)

Saves a grid level to a file.

Extracts a specified level from a given MultiGrid with a given SubsetHandler and saves it to a file. Position data is read from aPos.

References ug::Grid::attach_to_vertices(), CopyGridLevel(), and SaveGridToFile().

Referenced by SaveGridLevelToFile().

◆ SaveGridLevelToFile()

bool ug::SaveGridLevelToFile ( MultiGrid srcMG,
ISubsetHandler srcSH,
int  lvl,
const char *  filename 
)

Saves a grid level to a file.

Extracts a specified level from a given MultiGrid with a given SubsetHandler and saves it to a file. Position data is read from MultiGrid.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and SaveGridLevel().

Referenced by ug::bridge::RegisterGridBridge_FileIO().

◆ SaveGridTo2DF()

◆ SaveGridToART()

◆ SaveGridToELE()

◆ SaveGridToFile() [1/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector1  
)

◆ SaveGridToFile() [2/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector2  
)

◆ SaveGridToFile() [3/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector3  
)

◆ SaveGridToFile() [4/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector1  
)

◆ SaveGridToFile() [5/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector2  
)

◆ SaveGridToFile() [6/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector3  
)

◆ SaveGridToFile() [7/12]

UG_API bool ug::SaveGridToFile ( Grid grid,
const char *  filename 
)

Saves a grid to a file. Position data is read from aPosition.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and SaveGrid().

◆ SaveGridToFile() [8/12]

template<class TAPos >
bool ug::SaveGridToFile ( Grid grid,
const char *  filename,
TAPos &  aPos 
)

References SaveGrid().

◆ SaveGridToFile() [9/12]

template<class TAPos >
UG_API bool ug::SaveGridToFile ( Grid grid,
const char *  filename,
TAPos &  aPos 
)

Saves a grid to a file. Position data is read from the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

References SaveGrid().

◆ SaveGridToFile() [10/12]

UG_API bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Saves a grid to a file. Position data is read from aPosition.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and SaveGrid().

◆ SaveGridToFile() [11/12]

template<class TAPos >
bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos 
)

◆ SaveGridToFile() [12/12]

template<class TAPos >
UG_API bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos 
)

◆ SaveGridToLGB() [1/2]

bool ug::SaveGridToLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
ISelector **  ppSel,
int  numSels,
ProjectionHandler pPH = NULL,
APosition  aPos = aPosition 
)

◆ SaveGridToLGB() [2/2]

bool ug::SaveGridToLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
ProjectionHandler pPH,
APosition  aPos 
)

References SaveGridToLGB().

Referenced by SaveGrid3d_IMPL().

◆ SaveGridToNCDF()

◆ SaveGridToOBJ()

◆ SaveGridToSTL()

◆ SaveGridToTXT()

◆ SaveGridToUGX() [1/2]

bool ug::SaveGridToUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Writes a grid to a ugx file.

Before writing a grid to file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of SaveGridToUGX.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and UG_LOG.

Referenced by SaveGrid().

◆ SaveGridToUGX() [2/2]

template<class TAPosition >
bool ug::SaveGridToUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

Writes a grid to an ugx file. internally uses GridWriterUGX.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

References ug::GridWriterUGX::add_grid(), ug::GridWriterUGX::add_subset_handler(), and ug::GridWriterUGX::write_to_file().

◆ SaveGridToVTU()

template<class TAPosition >
bool ug::SaveGridToVTU ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPosition &  aPos 
)

Writes a grid to a vtu (vtk unstructured mesh) file.

References ug::GridWriterVTU::finish(), ug::GridWriterVTU::new_piece(), and ug::GridWriterVTU::set_stream().

Referenced by SaveGrid().

◆ SaveMatrixForConnectionViewer()

template<typename TGridFunction >
void ug::SaveMatrixForConnectionViewer ( TGridFunction &  u,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

◆ SaveMatrixToMTX()

void ug::SaveMatrixToMTX ( const char *  filename,
MatrixOperator< CPUAlgebra::matrix_type, CPUAlgebra::vector_type > &  A,
std::string  comment = "%Generated with ug4." 
)
inline

Save the assembled matrix of a matrix operator to MatrixMarket format.

Parameters
[in]filenamename of the file; must end on '.mtx'
[in]Amatrix operator of with CPUAlgebra matrix
[in]commentoptional comment for the header of the MTX file
Note
Until now only CPUAlgebra matrices are supported.

References ug::MatrixIO::EXISTING, FileExists(), FileTypeIs(), ug::MatrixOperator< M, X, Y >::get_matrix(), ug::MatrixIO::NEW, PROFILE_FUNC_GROUP, UG_THROW, and ug::MatrixIOMtx::write_from().

Referenced by ug::bridge::Output::Functionality::Common().

◆ SaveParallelGridLayout()

◆ SavePartitionMapToFile()

template<class TAPos >
bool ug::SavePartitionMapToFile ( PartitionMap pm,
const char *  filename,
TAPos &  aPos 
)

Save the partition map to a file.

The resulting file will contain the grid on which the partition-map operates, together with subsets, each representing the process on which the subset will be sent.

Todo:
currently only the .ugx format is supported.

References ug::GridSubsetHandler::assign_subset(), ug::GridSubsetHandler::begin(), ug::GridSubsetHandler::end(), ug::PartitionMap::get_partition_handler(), ug::PartitionMap::get_target_proc(), ug::ISubsetHandler::grid(), ug::ISubsetHandler::num_subsets(), SaveGridToFile(), and UG_LOG.

Referenced by SavePartitionMap().

◆ SaveSurfaceViewTransformed()

bool ug::SaveSurfaceViewTransformed ( MultiGrid mg,
const SurfaceView sv,
const char *  filename,
number  offset = 0.1 
)

◆ SaveToFile()

template<typename T >
void ug::SaveToFile ( const T &  v,
std::string  filename 
)

◆ SaveVectorCSV()

template<typename TGridFunction >
void ug::SaveVectorCSV ( TGridFunction &  b,
const char *  filename 
)

References PROFILE_FUNC, and WriteVectorCSV().

◆ SaveVectorDiffForConnectionViewer() [1/2]

template<typename TGridFunction >
void ug::SaveVectorDiffForConnectionViewer ( TGridFunction &  b,
TGridFunction &  bCompare,
const char *  filename 
)

◆ SaveVectorDiffForConnectionViewer() [2/2]

template<typename TGridFunction >
void ug::SaveVectorDiffForConnectionViewer ( TGridFunction &  u,
TGridFunction &  compareVec,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

◆ SaveVectorForConnectionViewer() [1/2]

template<typename TGridFunction >
void ug::SaveVectorForConnectionViewer ( TGridFunction &  b,
const char *  filename 
)

◆ SaveVectorForConnectionViewer() [2/2]

template<typename TGridFunction >
void ug::SaveVectorForConnectionViewer ( TGridFunction &  u,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

◆ ScaleGF()

template<typename TGridFunction >
void ug::ScaleGF ( SmartPtr< TGridFunction >  scaledVecOut,
ConstSmartPtr< TGridFunction >  vecIn,
const std::vector< number > &  scalingFactors 
)

Scales all functions contained in a grid function.

Each function has a separate scaling factor.

Parameters
scaledVecOutthe scaled grid function (output)
vecInthe original grid function (input)
scalingFactorsvector of scales for each of the composite functions

References EDGE, FACE, UG_COND_THROW, VERTEX, and VOLUME.

◆ ScaleGFOnElems()

template<typename TBaseElem , typename TGridFunction >
static void ug::ScaleGFOnElems ( ConstSmartPtr< DoFDistribution dd,
SmartPtr< TGridFunction >  vecOut,
ConstSmartPtr< TGridFunction >  vecIn,
const std::vector< number > &  vScale 
)
static

◆ SchurDebug()

DebugID ug::SchurDebug ( "SchurComplementDebug"  )

◆ scientificStr()

std::string ug::scientificStr ( double  d,
size_t  width 
)

References s.

Referenced by cutString(), and HistogrammString().

◆ SCVFofSCVRayIntersection()

template<int TDim, int TWorldDim>
bool ug::SCVFofSCVRayIntersection ( size_t &  sideOut,
number bc,
MathVector< TWorldDim > &  GlobalIntersectionPointOut,
MathVector< TDim > &  LocalIntersectionPoint,
const MathVector< TWorldDim > &  Root,
const MathVector< TWorldDim > &  Direction,
bool  bPositiv,
const MathVector< TWorldDim > *  vCornerCoords 
)

This function computes if another scvf of a scv is intersected by a Ray given in Parameter form by 'Root + c * Direction'. The intersection is choose to be at positive parameter if bPositiv == true, else the intersection at negative parameter is choosen. Global and local coordinates of the intersection points are returned as well as the local number of the side of the scv that matches the intersection.

Parameters
[in]RootPoint of Ray
[in]DirectionDirection of Ray
[in]bPositivFlag, whether to search in positiv of negative direction
[in]vCornerCoordsVector of corner coordinates
[out]sideOutside of intersection
[out]bcline parameter in [0,1] indicating position of intersection point on scvf in direction center to edge
[out]GlobalIntersectionPointOutIntersection Point (global)
[out]LocalIntersectionPointIntersection Point (local)
Returns
true if intersected with another scvf of the scv, false else

References ug::SCVFofSCVRayIntersectionWrapper< TDim, TWorldDim >::apply(), UG_ASSERT, and VecTwoNorm().

◆ SelectAssociatedConstrainedElements()

◆ SelectAssociatedGridObjects< MGSelector >()

◆ SelectAssociatedGridObjects< Selector >()

template void ug::SelectAssociatedGridObjects< Selector > ( Selector sel,
ISelector::status_t  status 
)

◆ SelectAssociatedSides()

template<class TElem >
static void ug::SelectAssociatedSides ( MGSelector msel,
TElem *  e,
ISelector::status_t  status = ISelector::SELECTED 
)
static

◆ SelectChildrenOfSelectedShadowRimEdges()

◆ SelectChildrenOfSelectedShadowRimFaces()

◆ SelectChildrenOfSelectedShadowVertices()

static void ug::SelectChildrenOfSelectedShadowVertices ( MGSelector msel,
ISelector::status_t  status = ISelector::SELECTED 
)
static

Recursively selects all children of selected vertices.

This method is required, since if a distributed vertex has a child which is not connected to other distributed elements, then the child wouldn't be selected. Note that for edges and faces the methods SelectAssociatedConstrainedElements takes care of this. (This is only true if there is no anisotropic refinement!) Children of pure vertical masters won't be selected, since those mustn't have children.

References ug::Grid::associated_elements(), ug::MGSelector::begin(), ug::Grid::distributed_grid_manager(), ug::MGSelector::end(), GDIST_PROFILE_FUNC, ug::MultiGrid::get_child_vertex(), ug::ISelector::get_selection_status(), ug::MultiGrid::has_children(), ug::DistributedGridManager::is_ghost(), IS_VMASTER, LG_DIST, ug::MGSelector::multi_grid(), ug::MGSelector::num_levels(), ug::ISelector::select(), ug::PointerConstArray< TPtr >::size(), UG_ASSERT, and UG_DLOG.

Referenced by SelectElementsForTargetPartition().

◆ SelectElementsByIndex< Edge >()

template void ug::SelectElementsByIndex< Edge > ( ISelector sel,
const std::vector< size_t > &  inds 
)

Referenced by SelectElementsByIndex().

◆ SelectElementsByIndex< Face >()

template void ug::SelectElementsByIndex< Face > ( ISelector sel,
const std::vector< size_t > &  inds 
)

Referenced by SelectElementsByIndex().

◆ SelectElementsByIndex< Vertex >()

template void ug::SelectElementsByIndex< Vertex > ( ISelector sel,
const std::vector< size_t > &  inds 
)

Referenced by SelectElementsByIndex().

◆ SelectElementsByIndex< Volume >()

template void ug::SelectElementsByIndex< Volume > ( ISelector sel,
const std::vector< size_t > &  inds 
)

Referenced by SelectElementsByIndex().

◆ SelectElementsForTargetPartition()

◆ SelectInnerSelectionEdges< MGSelector >()

◆ SelectInnerSelectionEdges< Selector >()

◆ SelectInnerSelectionFaces< MGSelector >()

◆ SelectInnerSelectionFaces< Selector >()

◆ SelectInnerSelectionVertices< MGSelector >()

◆ SelectInnerSelectionVertices< Selector >()

◆ SelectionFill< Edge >()

◆ SelectionFill< Face >()

◆ SelectionFill< Volume >()

◆ SelectKinkVertices() [1/2]

template<class TVrtIter , class TAAPos >
void ug::SelectKinkVertices ( Grid grid,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  thresholdAngle,
bool  selectDarts,
TAAPos  aaPos,
Grid::edge_traits::callback  cbConsiderEdge = ConsiderAll() 
)

◆ SelectKinkVertices() [2/2]

template<class TVrtIter , class TAAPos >
void ug::SelectKinkVertices ( Selector sel,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  thresholdAngle,
bool  selectDarts,
TAAPos  aaPos,
Grid::edge_traits::callback  cbConsiderEdge 
)

◆ SelectNonShadowsAdjacentToShadowsOnLevel()

void ug::SelectNonShadowsAdjacentToShadowsOnLevel ( BoolMarker sel,
const SurfaceView surfView,
int  level 
)

◆ SelectParents()

template<class TIterator >
static void ug::SelectParents ( MultiGrid mg,
MGSelector msel,
TIterator  iterBegin,
TIterator  iterEnd 
)
static

helper for SelectAssociatedGenealogy.

References ug::MultiGrid::get_parent(), and ug::ISelector::select().

Referenced by SelectAssociatedGenealogy().

◆ SelectSelectedRootElementsAsVSlaves()

◆ SelectUnselectedRootElementsAsVMasters()

◆ SendGlobalLayout()

◆ SendMatrix()

◆ SequentialSubspaceCorrectionLoop()

template<typename TGroupObj , typename TGroupObjIter , typename TDomain , typename TAlgebra >
void ug::SequentialSubspaceCorrectionLoop ( const typename TAlgebra::matrix_type A,
GridFunction< TDomain, TAlgebra > &  c,
const typename TAlgebra::vector_type d,
number  omega_relax,
ILocalSubspace< TDomain, TAlgebra, TGroupObj > &  subspace,
TGroupObjIter  objIterBegin,
TGroupObjIter  objIterEnd 
)

◆ SequentialSubspaceCorrectionLoopBackward()

template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ug::SequentialSubspaceCorrectionLoopBackward ( const typename TAlgebra::matrix_type A,
GridFunction< TDomain, TAlgebra > &  c,
const typename TAlgebra::vector_type d,
number  omega_relax,
ILocalSubspace< TDomain, TAlgebra, TGroupObj > &  subspace,
typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator  objIterBegin,
typename GridFunction< TDomain, TAlgebra >::template traits< TGroupObj >::const_iterator  objIterEnd 
)

◆ Serialize() [1/9]

template<typename T >
void ug::Serialize ( std::ostream &  buff,
const DenseMatrix< VariableArray2< T > > &  mat 
)
inline

References BlockSerialize().

◆ Serialize() [2/9]

template<size_t n>
void ug::Serialize ( std::ostream &  buff,
const DenseVector< FixedArray1< number, n > > &  vec 
)
inline

◆ Serialize() [3/9]

template<typename T >
void ug::Serialize ( std::ostream &  buff,
const DenseVector< VariableArray1< T > > &  vec 
)
inline

References s, and Serialize().

◆ Serialize() [4/9]

◆ Serialize() [5/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const IndexLayout::Interface interface 
)

References Serialize().

◆ Serialize() [6/9]

template<typename T , class TOStream >
void ug::Serialize ( TOStream &  buf,
const ParallelVector< T > &  v 
)

Serialize for ParallelVector<T>

References ug::ParallelVector< TVector >::get_storage_mask().

Referenced by AddConnectionsBetweenSlaves(), AllGatherGrid(), pcl::ProcessCommunicator::broadcast(), ug::IDomain< TGrid, TSubsetHandler >::broadcast_refinement_projector(), BroadcastGrid(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::collect(), ug::ComPol_VecCopy< TVector >::collect(), ug::ComPol_VecScaleCopy< TVector >::collect(), ug::ComPol_VecAdd< TVector >::collect(), ug::ComPol_VecScaleAdd< TVector >::collect(), ug::ComPol_VecAddSetZero< TVector >::collect(), ug::ComPol_VecSubtract< TVector >::collect(), ug::ComPol_CheckConsistency< TVector >::collect(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::collect(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), ug::CommunicationScheme< TDerived, TValue >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::ComPol_MatCopyDiag< TMatrix >::collect(), ug::ComPol_MatCreateOverlap< TMatrix >::collect(), ug::ComPol_CheckDistributedParentStates< TLayout >::collect(), ug::ComPol_NewConstrainedVerticals< TLayout >::collect(), ug::ComPol_CopyAttachment< TLayout, TAttachment >::collect(), ug::ComPol_GatherVecAttachment< TLayout, TAttachment >::collect(), ug::ComPol_SynchronizeDistInfos< TLayout >::collect(), GatherGrid(), GetFileLinesParallel(), ug::NewLayoutCreator::issue(), ug::ParallelNodes::issue(), ug::RowSendingScheme< matrix_type >::issue_send(), pcl::MinimalKeyValuePairAcrossAllProcs(), pcl::ParallelReadFile(), ug::ComPol_MatCreateOverlap< TMatrix >::post_process(), SaveToFile(), SendMatrix(), Serialize(), ug::IDomain< TGrid, TSubsetHandler >::serialize_projector(), SerializeGlobalLayout(), SerializeInterface(), SerializeLayout(), SerializeMatrix(), SerializeMultiGridElements(), SerializeParallelData(), SerializeProjector(), SerializeRow(), SerializeSubsetHandler(), SerializeUniquePart(), pcl::TestSizeOfInterfacesInLayoutsMatch(), ug::IDomain< TGrid, TSubsetHandler >::update_subset_infos(), ug::GeomObjAttachmentSerializer< TGeomObj, TAttachment >::write_data(), ug::SubsetHandlerSerializer::write_data(), and ug::SubsetHandlerSerializer::write_info().

◆ Serialize() [7/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const pcl::InterfaceCommunicator< IndexLayout > &  ic 
)

◆ Serialize() [8/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const pcl::ProcessCommunicator ic 
)

◆ Serialize() [9/9]

template<typename TValueType , class TOStream >
void ug::Serialize ( TOStream &  buf,
const Vector< TValueType > &  v 
)

◆ SerializeGlobalLayout()

void ug::SerializeGlobalLayout ( BinaryBuffer stream,
const GlobalLayout globalLayout 
)

◆ SerializeInterface()

◆ SerializeLayout()

template<typename TLocalToGlobal >
void ug::SerializeLayout ( BinaryBuffer stream,
const IndexLayout layout,
const TLocalToGlobal &  localToGlobal 
)

◆ SerializeParallelData()

template<typename T , class TOStream >
void ug::SerializeParallelData ( TOStream &  buf,
T &  t 
)

References Serialize().

◆ SerializeProjectionHandler()

◆ SerializeProjector()

◆ SerializerGetLastID()

size_t ug::SerializerGetLastID ( )

◆ SerializeRow()

template<typename matrix_type >
void ug::SerializeRow ( BinaryBuffer stream,
const matrix_type mat,
size_t  localRowIndex,
ParallelNodes PN 
)

◆ SerializeUniquePart() [1/2]

template<typename T , class TOStream >
void ug::SerializeUniquePart ( TOStream &  buf,
const ParallelMatrix< T > &  A 
)

◆ SerializeUniquePart() [2/2]

template<typename TValueType , class TOStream >
void ug::SerializeUniquePart ( TOStream &  buf,
const ParallelVector< TValueType > &  v 
)

◆ SetAppsPath() [1/2]

UG_API void ug::SetAppsPath ( const char *  c_strApps)

init apps path

References SetAppsPath().

◆ SetAppsPath() [2/2]

UG_API void ug::SetAppsPath ( const std::string &  strApps)

Initializes the APPS_PATH of ug::PathProvider.

init apps path

References APPS_PATH, PROFILE_FUNC, and ug::PathProvider::set_path().

Referenced by ug::bridge::RegisterBridge_Util(), SetAppsPath(), and ugshell_main().

◆ SetBoundaryRefinementRule()

void ug::SetBoundaryRefinementRule ( GlobalBoundaryRefinementRule  refRule)

setting procedure for global boundary refinement rule variable

References g_boundaryRefinementRule.

Referenced by SetSmoothSubdivisionVolumesBoundaryRefinementRule().

◆ SetDirichletRow()

template<typename TMatrix >
void ug::SetDirichletRow ( TMatrix &  mat,
const DoFIndex ind 
)

References SetDirichletRow().

◆ SetFrequency()

static void ug::SetFrequency ( const std::string &  csvFile)
static

◆ SetInterpolation()

template<typename TMatrix >
void ug::SetInterpolation ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex,
bool  assembleLinearProblem = true 
)

◆ SetLagrangeEdgeLocalDoFs()

void ug::SetLagrangeEdgeLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

◆ SetLagrangeEdgeMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeEdgeMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

References dim, p, UG_ASSERT, and VecScaleAdd().

Referenced by SetLagrangeMultiIndex().

◆ SetLagrangeFaceLocalDoFs()

void ug::SetLagrangeFaceLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

◆ SetLagrangeFaceMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeFaceMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

◆ SetLagrangeLocalDoFs()

◆ SetLagrangeMultiIndex()

◆ SetLagrangeVertexLocalDoFs()

void ug::SetLagrangeVertexLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

◆ SetLagrangeVertexMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeVertexMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

References dim, p, and UG_ASSERT.

Referenced by SetLagrangeMultiIndex().

◆ SetLagrangeVolumeLocalDoFs()

void ug::SetLagrangeVolumeLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

◆ SetLagrangeVolumeMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeVolumeMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

◆ SetLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::SetLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat 
)
inline

◆ SetLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::SetLocalMatrix ( TGlobalMatrix &  mat,
TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References AddLocalMatrix().

◆ SetMatrixAsPermutation()

template<typename TMatrix >
static void ug::SetMatrixAsPermutation ( TMatrix &  PA,
const TMatrix &  A,
const std::vector< size_t > &  perm 
)
static

Function to return a permutation of a matrix

Parameters
[out]PAthe permuted matrix PA(perm[r], perm[c]) = A(r, c)
[in]Athe input matrix
[in]permarray mapping i -> perm[i]

References PROFILE_FUNC_GROUP.

Referenced by ug::ILU< TAlgebra >::apply_ordering(), and ug::ILUTPreconditioner< TAlgebra >::preprocess_mat2().

◆ SetParallelData()

template<typename T >
void ug::SetParallelData ( T &  t,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > &  ic,
pcl::ProcessCommunicator pc 
)

◆ SetPluginPath() [1/2]

UG_API void ug::SetPluginPath ( const char *  c_strPlugin)

init plugin path

References SetPluginPath().

◆ SetPluginPath() [2/2]

UG_API void ug::SetPluginPath ( const std::string &  strPlugin)

Initializes the PLUGIN_PATH of ug::PathProvider.

init plugin path

References PLUGIN_PATH, PROFILE_FUNC, and ug::PathProvider::set_path().

Referenced by ug::bridge::RegisterBridge_Util(), SetPluginPath(), and ugshell_main().

◆ SetRootPath() [1/2]

UG_API void ug::SetRootPath ( const char *  c_strRoot)

init app, script and data paths for a given root path

References SetRootPath().

◆ SetRootPath() [2/2]

UG_API void ug::SetRootPath ( const std::string &  strRoot)

Initializes the paths of ug::PathProvider.

init app, script and data paths for a given root path

Initializes the following paths in ug::PathProvider relative to passed root path

  • ROOT_PATH
  • BIN_PATH
  • SCRIPT_PATH
  • DATA_PATH
  • GRID_PATH
  • PLUGIN_PATH

References APPS_PATH, BIN_PATH, GetPathSeparator(), PLUGIN_PATH, PROFILE_FUNC, ROOT_PATH, SCRIPT_PATH, and ug::PathProvider::set_path().

Referenced by ug::bridge::RegisterBridge_Util(), SetRootPath(), and ugshell_main().

◆ SetRow()

template<typename TMatrix >
void ug::SetRow ( TMatrix &  mat,
const DoFIndex ind,
number  val = 0.0 
)

References SetRow().

◆ SetScriptPath() [1/2]

UG_API void ug::SetScriptPath ( const char *  c_strScript)

init script path

References SetScriptPath().

◆ SetScriptPath() [2/2]

UG_API void ug::SetScriptPath ( const std::string &  strScript)

Initializes the SCRIPT_PATH of ug::PathProvider.

init script path

References PROFILE_FUNC, SCRIPT_PATH, and ug::PathProvider::set_path().

Referenced by ug::bridge::RegisterBridge_Util(), SetScriptPath(), and ugshell_main().

◆ SetShinyCallLoggingMaxFrequency()

static void ug::SetShinyCallLoggingMaxFrequency ( int  maxFreq)
static

◆ SetSize() [1/6]

template<typename T >
void ug::SetSize ( DenseMatrix< T > &  t,
size_t  a,
size_t  b 
)
inline

◆ SetSize() [2/6]

template<typename T >
void ug::SetSize ( DenseVector< T > &  t,
size_t  a 
)
inline

◆ SetSize() [3/6]

template<>
void ug::SetSize ( number d,
size_t  a 
)
inline

References UG_ASSERT.

◆ SetSize() [4/6]

template<>
void ug::SetSize ( number d,
size_t  a,
size_t  b 
)
inline

References UG_ASSERT.

◆ SetSize() [5/6]

template<typename T >
void ug::SetSize ( T &  t,
size_t  a 
)
inline

◆ SetSize() [6/6]

template<typename T >
void ug::SetSize ( T &  t,
size_t  a,
size_t  b 
)
inline

◆ SetSmoothSubdivisionVolumesBoundaryRefinementRule()

void ug::SetSmoothSubdivisionVolumesBoundaryRefinementRule ( std::string  bndRefRule)

Setting procedure for global boundary refinement rule variable.

The global boundary refinement rule information switches between regular and a collection of subdivision surface refinement schemes.

References LINEAR, SetBoundaryRefinementRule(), SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_SURF_BUTTERFLY_SCHEME, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_VOL, ToLower(), and UG_THROW.

Referenced by ug::bridge::Refinement::Functionality::Common().

◆ SetTetRefinementRule()

void ug::SetTetRefinementRule ( std::string  ruleName)

Setting procedure for global refinement rule variable.

The global refinement rule information switches between regular and subdivision volume refinement using hybrid tetra-/octahedral splitting.

References ug::tet_rules::HYBRID_TET_OCT, ug::tet_rules::SetRefinementRule(), ug::tet_rules::STANDARD, ToLower(), and UG_THROW.

Referenced by ug::bridge::Refinement::Functionality::Common().

◆ SetVectorAsPermutation()

template<typename TVector >
static void ug::SetVectorAsPermutation ( TVector &  Pv,
const TVector &  v,
const std::vector< size_t > &  perm 
)
static

Function to compute a permutation of a vector

Parameters
[out]Pvthe permuted vector: Pv[perm[i]] = v[i]
[in]vthe input vector
[in]permarray mapping oldindices i -> new index perm[i]

Referenced by ug::ILU< TAlgebra >::applyLU(), and ug::ILUTPreconditioner< TAlgebra >::solve().

◆ sgetrf_()

void ug::sgetrf_ ( lapack_int m,
lapack_int n,
lapack_float pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

◆ sgetri_()

void ug::sgetri_ ( lapack_int n,
lapack_float pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_float pWork,
lapack_int worksize,
lapack_int info 
)

Referenced by getri().

◆ sgetrs_()

void ug::sgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const lapack_float pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_float b,
lapack_int ldb,
lapack_int info 
)

Referenced by getrs().

◆ ShapeQualityDegree() [1/2]

number ug::ShapeQualityDegree ( SimpleGrid sg)

returns the worst quality-degree of the triangles in sg.

the returned degree lies between 0 and 1. The higher the better.

References ug::SimpleGrid::triangles.

◆ ShapeQualityDegree() [2/2]

number ug::ShapeQualityDegree ( SimpleGrid sg,
int  triIndex 
)

compares the area of the triangle to the length of its edges.

the returned degree lies between 0 and 1. The higher the better.

References TriangleQuality_Area(), ug::SimpleGrid::triangles, and ug::SimpleGrid::vertices.

Referenced by TryCollapse(), and TrySwap().

◆ ShapesAtGlobalPosition() [1/2]

template<int dim>
void ug::ShapesAtGlobalPosition ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

returns the shape function values at given global positions on an element

References EDGE, FACE, ReferenceElementDimension(), UG_THROW, VERTEX, and VOLUME.

Referenced by ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), and ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction().

◆ ShapesAtGlobalPosition() [2/2]

template<typename TDomain >
void ug::ShapesAtGlobalPosition ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< TDomain::dim > > &  vGlobPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

returns the shape function values at given global positions on an element

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

◆ ShapesAtGlobalPositionElem()

template<int refDim, int dim>
void ug::ShapesAtGlobalPositionElem ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

◆ ShapesAtGlobalPositionVertex()

template<int dim>
void ug::ShapesAtGlobalPositionVertex ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const LFEID lfeID 
)

◆ ShinyCallLoggingEnd()

void ug::ShinyCallLoggingEnd ( )

◆ ShinyCallLoggingStart()

void ug::ShinyCallLoggingStart ( )

References callsOnHold.

◆ SideNormal() [1/2]

template<typename TRefElem , int TWorldDim>
void ug::SideNormal ( MathVector< TWorldDim > &  normalOut,
int  side,
const MathVector< TWorldDim > *  vCornerCoords 
)
inline

Normal to a side of an Element in a given Dimension.

This function computes the outer normal to a given side of an element. The Euclidean norm of the normal is the area of the side. Note that the normal is computed in the same dimensionality as the reference element itself.

Parameters
[in]sideindex of the side of the element
[in]vCornerCoordsarray of the global coordinates of the corners
[out]normalOutthe computed normal

References dim, ug::ReferenceElementProvider::get(), and ug::ReferenceElement::roid().

◆ SideNormal() [2/2]

template<int dim>
void ug::SideNormal ( ReferenceObjectID  roid,
MathVector< dim > &  normalOut,
int  side,
const MathVector< dim > *  vCornerCoords 
)
inline

Computation of the side normal for a generic reference element:

◆ SideNormal< 1 >()

template<>
void ug::SideNormal< 1 > ( ReferenceObjectID  roid,
MathVector< 1 > &  normalOut,
int  side,
const MathVector< 1 > *  vCornerCoords 
)
inline

References ROID_EDGE, and UG_THROW.

◆ SideNormal< 2 >()

template<>
void ug::SideNormal< 2 > ( ReferenceObjectID  roid,
MathVector< 2 > &  normalOut,
int  side,
const MathVector< 2 > *  vCornerCoords 
)
inline

◆ SideNormal< 3 >()

template<>
void ug::SideNormal< 3 > ( ReferenceObjectID  roid,
MathVector< 3 > &  normalOut,
int  side,
const MathVector< 3 > *  vCornerCoords 
)
inline

◆ SimplifyPolylines()

◆ SimplifySmoothedPolylines()

template<class TEdgeIter , class TAAPos >
void ug::SimplifySmoothedPolylines ( Grid grid,
TEdgeIter  edgesBegin,
TEdgeIter  edgesEnd,
number  curvatureThreshold,
TAAPos  aaPos,
number  smoothingAlpha,
int  smoothingIterations 
)

◆ SlopeSmooth()

template<class TIterator , class AAPosVRT >
void ug::SlopeSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
const vector3 up,
int  numIterations 
)

◆ SnapMarkerPointToGridVertex()

void ug::SnapMarkerPointToGridVertex ( MarkerPoint markerInOut,
Grid grid,
number  normalOffset,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid::VertexAttachmentAccessor< ANormal > *  paaNorm = NULL 
)

Snaps a marker point to a grid vertex.

Uses the initial position of the marker-point to determine the closest vertex in the grid. The new position is then calculated by an offset of the vertex-normal to the original vertex-position.

If a normal-accessor is supplied, the normal of the target vertex will be taken from it. If not, it will be calculated on the fly.

Both aaPos and paaNorm (if supplied) have to access valid vertex attachments of the given grid.

Please note that marker.norm and marker.name will remain unchanged. However the other entries will be changed.

Note that this method checks each vertex of the grid and is thus a little slow. Alternate implementations should use a kd-tree or similar.

References ug::MarkerPoint::associatedObj, ug::Grid::begin(), CalculateVertexNormal(), ug::Grid::end(), ug::MarkerPoint::localCoord, p, ug::MarkerPoint::pos, VecAdd(), VecDistanceSq(), and VecScale().

◆ SnapToHorizontalRaster()

void ug::SnapToHorizontalRaster ( Grid grid,
const RasterLayers layers,
Grid::VertexAttachmentAccessor< AVector3 aaPos 
)

◆ SnipString()

string ug::SnipString ( const string &  str,
size_t  totalSize,
size_t  replaceLast,
const char  replace 
)

References s.

Referenced by PrintDoFCount().

◆ SnipStringFront()

string ug::SnipStringFront ( const string &  str,
size_t  totalSize,
size_t  replaceFirst,
const char  replace 
)

References s.

Referenced by ug::bridge::lua::UGErrorTraceback().

◆ SolveDeficit()

bool ug::SolveDeficit ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  x,
DenseVector< VariableArray1< double > > &  rhs,
double  deficitTolerance 
)

◆ SolveLU()

template<typename matrix_t , typename vector_t >
bool ug::SolveLU ( const DenseMatrix< matrix_t > &  A,
DenseVector< vector_t > &  x,
const size_t *  pInterchange 
)

References s.

Referenced by ug::DenseMatrixInverse< TStorage >::apply().

◆ SortDD()

bool ug::SortDD ( SmartPtr< DoFDistribution spDD1,
SmartPtr< DoFDistribution spDD2 
)

◆ SpacialVertexSort()

template<class TVrtIter , class TAAPos >
void ug::SpacialVertexSort ( std::multimap< number, Vertex * > &  vrtsOut,
const TVrtIter  vrtsBegin,
const TVrtIter  vrtsEnd,
const typename TAAPos::ValueType &  rayFrom,
const typename TAAPos::ValueType &  rayDir,
TAAPos  aaPos,
bool  clearContainer = true 
)

sorts vertices along the specified ray

inserts vertices into the specified multimap based on local coordinate of their projection on the specified ray. if clearContainer is specified as false (default is true), the vertices will be inserted into the already existing sorted vertex set in vrtsOut.

References p, and ProjectPointToRay().

Referenced by MultiEdgeSplit().

◆ split_parameters()

static void ug::split_parameters ( ParameterList pParamList,
const char *  pParamString 
)
static

◆ SplitAddRhs_OneSide()

template<typename TVector >
void ug::SplitAddRhs_OneSide ( TVector &  rhs,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

◆ SplitAddRhs_Symmetric()

template<typename TVector >
void ug::SplitAddRhs_Symmetric ( TVector &  rhs,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

◆ SplitAddRow_OneSide()

template<typename TMatrix >
void ug::SplitAddRow_OneSide ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

◆ SplitAddRow_Symmetric()

template<typename TMatrix >
void ug::SplitAddRow_Symmetric ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

◆ SplitEdge()

bool ug::SplitEdge ( SimpleGrid sg)

splits the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid. The new vertexs will be added at the end of the vertex list. the first two triangles will be altered. Two additional triangles will be added at the end of the triangle list.

The normal of the new vertex is interpolated from the normals of the edges end-points.

The manipulated grid is no longer suited for swap, split or collapse operations.

◆ SplitOctahedronToTetrahedrons()

void ug::SplitOctahedronToTetrahedrons ( Grid grid,
Octahedron oct,
Volume parentVol,
std::vector< Tetrahedron * > &  vTetsOut,
int  bestDiag 
)

Function for splitting an octahedron to 4 sub-tetrahedrons.

Recall the refinement of a tetrahedron (s. tetrahdron_rules.cpp). A tetrahedron is refined into 4 outer tetrahedrons and 4 inner tetrahedrons. After the 4 outer tetrahedrons are created the remaining inner cavity corresponds to an octahedron. This octahedron can be split into 4 tetrahedrons in 3 different ways, depending on the length of the following diagonals: Based on the original tetrahedron we look at the three diagonals between the following edge-centers: 0-5, 1-3, 2-4

The diagonal between edge-centers 0-5 of the tetrahedron equals a segment between vertices 1 and 3 of the octahedron

The diagonal between edge-centers 1-3 of the tetrahedron equals a segment between vertices 0 and 5 of the octahedron

the diagonal between edge-centers 2-4 of the tetrahedron equals a segment between vertices 2 and 4 of the octahedron

HINT: preferably use bestDiag = 0, as it is the inherent diagonal along which the octahedron was adaptively orientated according to tetrahedron_rules.cpp

Parameters
gridreference to grid
octpointer to octahedron
parentVolpointer to parent volume
vTetsOutreference to vector with pointers to new tetrahedrons

References aPosition, ug::Grid::create(), VecDistanceSq(), and ug::Octahedron::vertex().

Referenced by TetrahedralizeHybridTetOctGrid().

◆ SqNormOfChebyshev1Poly()

number ug::SqNormOfChebyshev1Poly ( size_t  k)

returns the scalar square of the Chebyshev polynomials of the first kind (the squared norm)

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \frac{1}{\sqrt {1 - x^2}} \, dx \) They satisfy the recursion \(T_0 (x) = 1\), \(T_1 (1) = x\), \(T_k (x) = 2 x P_{k-1} (x) - P_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\) for \(k > 0\) and \(\pi\) for \(k = 0\).

Parameters
kindex of the polynomial, \(k \ge 0\)

References PI.

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ SqNormOfChebyshev2Poly()

number ug::SqNormOfChebyshev2Poly ( size_t  k)

returns the scalar square of the Chebyshev polynomials of the second kind (the squared norm)

The polynomials are orthogonal on \([-1, 1]\) w.r.t. the scalar product \( \int_{-1}^1 \phi (x) \cdot \psi (x) \sqrt {1 - x^2} \, dx \) They satisfy the recursion \(U_0 (x) = 1\), \(U_1 (1) = 2 x\), \(U_k (x) = 2 x U_{k-1} (x) - U_{k-2} (x)\). The corresponding norm of \(T_k\) is \(\tfrac{\pi}{2}\).

Parameters
kindex of the polynomial, \(k \ge 0\)

References PI.

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ SqNormOfLegendrePoly()

number ug::SqNormOfLegendrePoly ( size_t  k)

returns the scalar square of the Legendre polynomials (the squared weighted norm)

The polynomials are \(L_2\)-orthogonal on \([-1, 1]\). They satisfy the recursion \(P_0 (x) = 1\), \(P_1 (1) = x\), \(P_k (x) = ((2 k - 1) x P_{k-1} (x) - (k - 1) P_{k-2} (x)) / k\). The \(L_2\)-square of \(P_k\) is \(2 / (2 k + 1)\). Note that this function returns not the \(L_2\) norm but the weighted norm \(\sqrt {\frac{1}{b-a} \int_a^b P_k^2 (x) \, dx}\), where \(a=-1\), \(b=1\).

Parameters
kindex of the polynomial, \(k \ge 0\)

Referenced by ug::bridge::RegisterBridge_OrthoPoly().

◆ SqrtGramDeterminant() [1/3]

template<typename T >
MathMatrix<0,0,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< 0, 0, T > &  m)
inline

◆ SqrtGramDeterminant() [2/3]

template<size_t M, typename T >
MathMatrix<0,M,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< 0, M, T > &  m)
inline

◆ SqrtGramDeterminant() [3/3]

template<size_t N, typename T >
MathMatrix<N,0,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< N, 0, T > &  m)
inline

◆ StartsWith()

bool ug::StartsWith ( const string &  str,
const string &  begin 
)

◆ StdFuncIntegralOnVertex() [1/2]

template<typename TGridFunction >
number ug::StdFuncIntegralOnVertex ( SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si 
)

◆ StdFuncIntegralOnVertex() [2/2]

template<typename TGridFunction >
number ug::StdFuncIntegralOnVertex ( TGridFunction &  gridFct,
size_t  fct,
int  si 
)

References DoFRef().

Referenced by Integral(), and StdFuncIntegralOnVertex().

◆ STLFileHasASCIIFormat()

bool ug::STLFileHasASCIIFormat ( const char *  filename)

◆ SubMult() [1/6]

template<typename A >
void ug::SubMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References SubMult().

◆ SubMult() [2/6]

template<typename A , typename B , typename C >
void ug::SubMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

Referenced by SubMult().

◆ SubMult() [3/6]

template<typename A , typename B >
void ug::SubMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References alpha, and SubMult().

◆ SubMult() [4/6]

template<typename A , typename B , typename C >
void ug::SubMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References SubMult(), and UG_ASSERT.

◆ SubMult() [5/6]

template<typename A , typename B >
void ug::SubMult ( DenseVector< A > &  dest,
const double &  b,
const DenseVector< B > &  vec 
)
inline

References SubMult().

◆ SubMult() [6/6]

void ug::SubMult ( number dest,
const number b,
const number vec 
)
inline

◆ SubsetIsRegularGrid() [1/3]

bool ug::SubsetIsRegularGrid ( const ISubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References SubsetIsRegularGrid(), and UG_THROW.

◆ SubsetIsRegularGrid() [2/3]

bool ug::SubsetIsRegularGrid ( const MGSubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References ug::MultiGridSubsetHandler::num().

◆ SubsetIsRegularGrid() [3/3]

bool ug::SubsetIsRegularGrid ( const SubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References ug::GridSubsetHandler::num().

Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::finish_timestep(), ug::DomainDiscretizationBase< TDomain, TAlgebra, TGlobAssembler >::prepare_timestep(), ug::SubsetGroup::regular_grid(), and SubsetIsRegularGrid().

◆ SubtractValueFromComponent()

template<typename TGridFunction , typename TBaseElem >
void ug::SubtractValueFromComponent ( SmartPtr< TGridFunction >  spGF,
size_t  fct,
number  sub 
)

Subtracts a given value from all DoFs of a given grid function associated with a given element type.

Template Parameters
TGridFunctiongrid function type
TBaseElemtype of the elements the DoFs are associated with

References DoFRef(), and ug::PeriodicBoundaryManager::is_slave().

◆ Sum1Mat1() [1/2]

template<typename T1 >
DenseMatrix<T1>::value_type ug::Sum1Mat1 ( const DenseMatrix< T1 > &  mat)
inline

◆ Sum1Mat1() [2/2]

double ug::Sum1Mat1 ( double  d)
inline

◆ SumGFValuesAt() [1/4]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
const char *  fct_names 
)

Sums values of a grid function at all given elements (like vertices).

This version takes symbolic data.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fct_namesindex of the function

References ug::FunctionGroup::add(), TokenizeString(), and UG_THROW.

◆ SumGFValuesAt() [2/4]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
const char *  fct_names,
const char *  subset_names 
)

Sums values of a grid function at given elements (like vertices) in given subsets.

This version takes symbolic data.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fct_namesindex of the function
subset_namesthe subsets

References ug::SubsetGroup::add(), ug::FunctionGroup::add(), TokenizeString(), and UG_THROW.

◆ SumGFValuesAt() [3/4]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
size_t  fct 
)

Sums values of a grid function at all given elements (like vertices)

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctindex of the function

References pcl::ProcessCommunicator::allreduce(), DoFRef(), PCL_RO_SUM, and UG_THROW.

◆ SumGFValuesAt() [4/4]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
size_t  fct,
SubsetGroup ssGroup 
)

Sums values of a grid function at given elements (like vertices) in given subsets

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctindex of the function
ssGroupthe subsets

References pcl::ProcessCommunicator::allreduce(), DoFRef(), PCL_RO_SUM, ug::SubsetGroup::size(), and UG_THROW.

◆ SwapEdge()

bool ug::SwapEdge ( SimpleGrid sg)

swaps the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid.

The manipulated grid is no longer suited for swap, split or collapse operations.

References CalculateTriangleNormal(), and ug::SimpleGrid::triangles.

◆ SweepLine_CreateMonotones()

◆ SweepLineEdgeIntersectsSweepLine()

bool ug::SweepLineEdgeIntersectsSweepLine ( number xOut,
const SweepLineEdge edge,
number  sweepLineY 
)

◆ SynchronizeAttachedGlobalAttachments()

static void ug::SynchronizeAttachedGlobalAttachments ( Grid g,
const pcl::ProcessCommunicator procComm 
)
static

Attaches global attachments to 'g' that are attached at 'g' on some other process, thus synchronizing the set of attached global attachments of 'g'.

References pcl::ProcessCommunicator::allreduce(), LG_DIST, pcl::OneProcTrue(), PCL_RO_BOR, PCL_RO_MAX, UG_COND_THROW, and UG_DLOG.

Referenced by DistributeGrid().

◆ SynchronizeDistInfos()

◆ TangentialSmooth()

template<class TVrtIter , class TAAPos3 >
void ug::TangentialSmooth ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos3  aaPos,
number  alpha,
size_t  numIterations 
)

Smoothes vertices in a 2d-manifold in 3d-space be moving vertices in the tangential plane, only. USES Grid::mark Computes an offset vector for each vertex and smoothes this offset by averaging with offsets of adjacent vertices. The offset is then projected back into the tangential plane and each vertex is relocated using those smoothed offsets.

References alpha, ug::Grid::associated_elements(), ug::Grid::attach_to_vertices_dv(), ug::Grid::begin_marking(), CalculateNormal(), ug::Grid::detach_from_vertices(), ug::PointerConstArray< TPtr >::empty(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ProjectPointToPlane(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecDot(), VecNormalize(), VecScale(), VecScaleAdd(), and VecSubtract().

◆ TangentialSmoothSimple()

template<class TVrtIter , class TAAPos3 >
void ug::TangentialSmoothSimple ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos3  aaPos,
number  alpha,
size_t  numIterations 
)

◆ TerminateAbortedRun()

UG_API void ug::TerminateAbortedRun ( )

Terminates the current run if AbortRun() was called and the abort-run-flag is thus set to true.

References s_abortRun, and UGForceExit().

Referenced by ug::bridge::RegisterBridge_Misc().

◆ TestGridLayoutMap()

◆ TestHorizontalAlgebraLayouts()

template<class TMatrix >
void ug::TestHorizontalAlgebraLayouts ( const TMatrix &  mat,
std::vector< AlgebraID > *  algebraIDs = NULL,
bool  verbose = false 
)

Tests layouts by matching master and slave interfaces and by comparing global id's.

Checks normal H-Master and H-Slave interfaces as well as H-Master-Overlap and H-Slave-Overlap interfaces.

Parameters
matA parallel matrix.
algebraIDsmay be specified optionally. Make sure that those are global consistent algebraID's-

References ug::HorizontalAlgebraLayouts::comm(), GenerateGlobalAlgebraIDs(), ug::HorizontalAlgebraLayouts::master(), ug::HorizontalAlgebraLayouts::master_overlap(), operator()(), ug::HorizontalAlgebraLayouts::proc_comm(), ug::HorizontalAlgebraLayouts::slave(), ug::HorizontalAlgebraLayouts::slave_overlap(), UG_COND_THROW, and verbose.

◆ TestQuadRule()

◆ TetrahedralizeHybridTetOctGrid()

void ug::TetrahedralizeHybridTetOctGrid ( MultiGrid mg,
int  bestDiag 
)

Conversion function for hybrid tetra-/octahedral multigrids.

This function converts each octahedron in all levels to four tetrahedra and deletes the original octahedra from the multigrid.

WARNING: correct parent <-> childhood relationships won't persist

Parameters
mgreference to MultiGrid
bestDiagspecify fixed or adaptive diagonal for octahedral split

References aPosition, ug::MultiGrid::begin(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ug::Grid::erase(), ES_V_SLAVE, ug::MultiGrid::get_parent(), ug::MultiGrid::num_levels(), PROFILE_FUNC_GROUP, and SplitOctahedronToTetrahedrons().

Referenced by ug::bridge::Refinement::Functionality::Common().

◆ TetrahedronAspectRatio()

template<class TAAPos >
number ug::TetrahedronAspectRatio ( Volume vol,
TAAPos &  aaPos 
)

◆ TetReferenceMappingTest()

void ug::TetReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vCornerCoord2,
std::vector< number vCornerCoord3,
std::vector< number vGlobPos 
)

◆ ThrowIfIsVectorNanOrTooBig()

template<typename T >
bool ug::ThrowIfIsVectorNanOrTooBig ( const T &  t,
const char *  callerName 
)
inline

◆ ThrowMissingVirtualMethod() [1/2]

void ug::ThrowMissingVirtualMethod ( const char *  method)
inline

References UG_THROW.

◆ ThrowMissingVirtualMethod() [2/2]

◆ TokenizeString() [1/2]

vector<string> ug::TokenizeString ( const string &  str,
const char  delimiter 
)

References TokenizeString().

◆ TokenizeString() [2/2]

void ug::TokenizeString ( const string &  str,
vector< string > &  vToken,
const char  delimiter 
)

◆ TokenizeTrimString() [1/2]

vector<string> ug::TokenizeTrimString ( const string &  str,
const char  delimiter 
)

References TokenizeTrimString().

◆ TokenizeTrimString() [2/2]

◆ ToLower()

◆ topological_ordering_core_bidirectional()

template<typename O_t , typename G_t >
void ug::topological_ordering_core_bidirectional ( O_t &  o,
G_t &  g,
bool  inverse 
)

◆ topological_ordering_core_directed()

template<typename O_t , typename G_t >
void ug::topological_ordering_core_directed ( O_t &  o,
G_t &  g,
bool  inverse 
)

◆ ToUpper()

string ug::ToUpper ( string  str)

◆ TransposeModeToChar()

char ug::TransposeModeToChar ( eTransposeMode  t,
bool  isComplex 
)
inline

References ModeConjTranspose, ModeNoTrans, ModeTranspose, and UG_THROW.

Referenced by getrs().

◆ TraverseBreadthFirst()

template<class tree_t , class traverser_t >
void ug::TraverseBreadthFirst ( const tree_t &  tree,
traverser_t &  traverser 
)

◆ TraverseDepthFirst()

template<class tree_t , class traverser_t >
void ug::TraverseDepthFirst ( const tree_t &  tree,
traverser_t &  traverser 
)

◆ TraverseDepthFirstRecursion()

template<class tree_t , class traverser_t >
int ug::TraverseDepthFirstRecursion ( const tree_t &  tree,
traverser_t &  traverser,
int  curNode 
)

References ABORT_TRAVERSAL, and TRAVERSE_CHILDREN.

Referenced by TraverseDepthFirst().

◆ TriangleAspectRatio()

template<class TAAPos >
number ug::TriangleAspectRatio ( FaceVertices f,
TAAPos &  aaPos 
)

Returns the aspect ratio of a triangle.

The aspect ratio is calculated using the formula

q = aMax * (a0 + a1 + a2) / (4*sqrt(3)*A)

References TriangleArea(), VecDistance(), and ug::FaceVertices::vertices().

Referenced by AspectRatio().

◆ TriangleFill_SweepLine() [1/4]

template<class TIterator >
bool ug::TriangleFill_SweepLine ( Grid grid,
TIterator  edgesBegin,
TIterator  edgesEnd,
APosition aPosVRT,
AInt aIntVRT,
SubsetHandler pSH = NULL,
int  newSubsetIndex = -1 
)

Performs triangulation of a polygon and resoves additional inner edges.

This algortighm uses Grid::mark.

The polygon should lie in a 2d hyperplane.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin_marking(), ug::Grid::create(), ug::Grid::end_marking(), ug::Grid::has_vertex_attachment(), ug::Grid::is_marked(), ug::Grid::mark(), TriangleFill_SweepLine(), UG_LOG, and ug::EdgeVertices::vertex().

◆ TriangleFill_SweepLine() [2/4]

UG_API bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector2 > &  srcVrts,
std::vector< int > &  srcEdges 
)

◆ TriangleFill_SweepLine() [3/4]

UG_API bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector3 > &  srcVrts,
std::vector< int > &  srcEdges 
)

Performs triangulation of a 3d polygon and resolves inner edges.

The polygon should lie in a 2d hyperplane.

References TransformPointSetTo2D().

◆ TriangleFill_SweepLine() [4/4]

bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector2 > &  srcVrts,
std::vector< int > &  srcEdges 
)

◆ TriCubeIntersection()

static int ug::TriCubeIntersection ( const TRI t)
static

◆ TrimString()

◆ TrueFalseString()

const char* ug::TrueFalseString ( bool  b)
inline

◆ trunk()

static vector2 ug::trunk ( const vector2 v,
number  smallestVal 
)
static

Referenced by ExportGridToTIKZ().

◆ TryCollapse() [1/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static Vertex* ug::TryCollapse ( const AdjustEdgeLengthDesc desc,
Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)
static

◆ TryCollapse() [2/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
Vertex* ug::TryCollapse ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)

◆ TrySplit() [1/2]

template<class TAAPosVRT , class TAANormVRT >
bool ug::TrySplit ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
EdgeSelector pCandidates = NULL,
SubsetHandler pshMarks = NULL 
)

◆ TrySplit() [2/2]

template<class TAAPosVRT , class TAANormVRT >
static bool ug::TrySplit ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
EdgeSelector pCandidates = NULL,
SubsetHandler pshMarks = NULL 
)
static

◆ TrySwap()

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::TrySwap ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)

◆ TypeName() [1/2]

template<typename T >
std::string ug::TypeName ( )
inline

References demangle(), and name.

◆ TypeName() [2/2]

template<typename T >
std::string ug::TypeName ( const T &  t)
inline

◆ UG_LOG_Matrix()

template<class MT >
void ug::UG_LOG_Matrix ( const MT &  A)

◆ UG_LOG_Vector()

template<class VT >
void ug::UG_LOG_Vector ( const VT &  vec)

◆ UGFinalize()

UG_API int ug::UGFinalize ( )

finalizes ug

If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Finalize.

If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Finalize.

Use ug::UGOutputProfileStatsOnExit to enable profiling output during finalize.

References pcl::Finalize(), and UGFinalizeNoPCLFinalize().

Referenced by ug::vrl::registerUGFinalize(), and ugshell_main().

◆ UGFinalizeNoPCLFinalize()

◆ UGForceExit()

UG_API void ug::UGForceExit ( )

Calls UGFinalize and terminates the application.

If the build-target is vrl and if no parallel build is performed, this method throws an instance of SoftAbort

References pcl::Abort(), pcl::NumProcs(), UG_LOG, and UGFinalizeNoPCLFinalize().

Referenced by ug::script::breakpoint(), ug::bridge::RegisterBridge_Util(), and TerminateAbortedRun().

◆ UGGetVersionString()

UG_API std::string ug::UGGetVersionString ( )

Returns the version number of the current ug-version.

The string is formatted like this: "majorVersion.minorVersion.updateVersion"

References gUGVersionString().

Referenced by Java_edu_gcsc_vrl_ug_UG__1getUGVersion(), and ugshell_print_header().

◆ UGInit()

UG_API int ug::UGInit ( int *  argcp,
char ***  argvp,
int  parallelOutputProcRank 
)

initializes ug

This method should be called at the beginning of main(...). If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Init.

This method should be called at the beginning of main(...). If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Init.

This method also sets the common paths in PathProvider.

References GetLogAssistant(), pcl::Init(), ug::bridge::InitBridge(), InitPaths(), PROFILE_FUNC, ug::LogAssistant::set_output_process(), UG_LOG, and UGInitPlugins().

Referenced by Java_edu_gcsc_vrl_ug_UG__1ugInit().

◆ UGInitPlugins()

UG_API bool ug::UGInitPlugins ( )

Init (if UG_PLUGINS is set) embedded or non-shared plugins.

Referenced by ug_init_plugins(), and UGInit().

◆ UGOutputProfileStatsOnExit()

UG_API void ug::UGOutputProfileStatsOnExit ( bool  bEnable)

Call with true, if profiling output is desired at the end of the show.

References outputProfileStats.

Referenced by ug::bridge::RegisterBridge_Profiler(), and ugshell_main().

◆ UpdateChainInfo()

◆ UpdateProfiler_BridgeImpl()

static void ug::UpdateProfiler_BridgeImpl ( number  damping)
static

◆ UpdateTotalMem()

void ug::UpdateTotalMem ( )

The profiling process only calcs the selfMemory of each Profile Node. This function calcs the total mem of each profile node.

References CalcTotalMem(), EnableMemTracker(), and totalmem.

◆ Valence3VertexIsObsolete()

bool ug::Valence3VertexIsObsolete ( const vector3 p,
const vector3 c0,
const vector3 c1,
const vector3 c2,
number  maxSquaredHeightToBaseAreaRatio 
)
inline

◆ Valence4VertexIsObsolete()

bool ug::Valence4VertexIsObsolete ( const vector3 p,
const vector3 c0,
const vector3 c1,
const vector3 c2,
const vector3 c3,
number  maxSquaredHeightToBaseAreaRatio 
)
inline

diagonal is always assumed to be between c0 and c2

References CalculateTriangleNormalNoNormalize(), p, RayTriangleIntersection(), TriangleArea(), VecAdd(), and VecDistanceSq().

Referenced by ReplaceLowValenceVertices().

◆ Vanka_step()

template<typename Matrix_type , typename Vector_type >
bool ug::Vanka_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  relax 
)

◆ VecAbsIsLess() [1/2]

template<typename vector_t >
bool ug::VecAbsIsLess ( const vector_t &  v1,
const typename vector_t::value_type  s 
)
inline

component-wise comparison of a vector (in the absolute values) with a given number

References s.

◆ VecAbsIsLess() [2/2]

template<typename vector_t >
bool ug::VecAbsIsLess ( const vector_t &  v1,
const vector_t &  v2 
)
inline

component-wise comparison of two vectors (in the absolute values)

Referenced by ug::BaseReferenceMapping< dim, worldDim, isLinear, TImpl >::global_to_local().

◆ VecAssign() [1/2]

template<typename T >
void ug::VecAssign ( ParallelVector< T > &  dest,
const ParallelVector< T > &  v1 
)
inline

◆ VecAssign() [2/2]

template<typename vector_t >
void ug::VecAssign ( vector_t &  dest,
const vector_t &  v1 
)
inline

sets dest = v1 entrywise

Referenced by VecAssign().

◆ VecBroadcast()

template<typename TVector >
void ug::VecBroadcast ( TVector *  pVecDest,
const TVector *  pVecSrc,
const IndexLayout slaveLayoutDest,
const IndexLayout masterLayoutSrc,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

broadcasts all values from master indices to slave values in a second vector

This function broadcasts the master values from a source vector to the slave values of a second vector. Slave values are overwritten. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[out]pVecDestdestination Parallel Vector
[in]pVecSrcsource Parallel Vector
[in]masterLayouDestMaster Layout
[in]slaveLayoutSrcSlave Layout
[in]pComParallel Communicator

References pcl::InterfaceCommunicator< TLayout >::communicate(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::PrimalSubassembledMatrixInverse< TAlgebra >::apply_return_defect().

◆ VecDistanceSq()

template<typename TVector , typename TMatrix >
TVector::value_type ug::VecDistanceSq ( const TVector &  v1,
const TVector &  v2,
const TMatrix &  M 
)
inline

returns the squared distance of two MathVector<N>s.

References MatVecMult(), VecDot(), and VecSubtract().

◆ VecElemProd()

template<typename vector_t >
void ug::VecElemProd ( vector_t &  vOut,
const vector_t &  v1,
const vector_t &  v2 
)
inline

component-wise product: vOut_i = v1_i*v2_i

component-wise product

Referenced by ComputeElementExtensionsSq(), and ComputeElementExtensionsSqForEdges().

◆ VecElemSqrt()

template<typename vector_t >
void ug::VecElemSqrt ( vector_t &  vOut,
const vector_t &  v1 
)
inline

component-wise square root: \(o_i=\sqrt {v_i}\)

component-wise square root

◆ VecExp() [1/3]

void ug::VecExp ( double &  dest,
const double &  v 
)
inline

calculates elementwise exp

Referenced by VecExp().

◆ VecExp() [2/3]

template<typename T >
void ug::VecExp ( ParallelVector< T > &  dest,
const ParallelVector< T > &  v 
)
inline

References VecExp().

◆ VecExp() [3/3]

template<typename vector_t >
void ug::VecExp ( vector_t &  dest,
const vector_t &  v 
)
inline

References VecExp().

◆ VecGather()

template<typename TVector >
void ug::VecGather ( TVector *  pVecDest,
const TVector *  pVecSrc,
const IndexLayout masterLayoutDest,
const IndexLayout slaveLayoutSrc,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

gathers all values in master indices of a second vector

This function gathers the slave values from a source vector in the master values of a second vector. Slave values are added to the current master values. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[out]pVecDestdestination Parallel Vector
[in]pVecSrcsource Parallel Vector
[in]masterLayouDestMaster Layout
[in]slaveLayoutSrcSlave Layout
[in]pComParallel Communicator

References pcl::InterfaceCommunicator< TLayout >::communicate(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::PrimalSubassembledMatrixInverse< TAlgebra >::apply_return_defect().

◆ VecHadamardProd() [1/3]

void ug::VecHadamardProd ( double &  dest,
const double &  v1,
const double &  v2 
)
inline

calculates s = a * b (the Hadamard product)

Referenced by VecHadamardProd().

◆ VecHadamardProd() [2/3]

template<typename T >
void ug::VecHadamardProd ( ParallelVector< T > &  dest,
const ParallelVector< T > &  v1,
const ParallelVector< T > &  v2 
)
inline

◆ VecHadamardProd() [3/3]

template<typename vector_t >
void ug::VecHadamardProd ( vector_t &  dest,
const vector_t &  v1,
const vector_t &  v2 
)
inline

References VecHadamardProd().

◆ VecLog() [1/3]

void ug::VecLog ( double &  dest,
const double &  v 
)
inline

calculates elementwise log (natural logarithm)

Referenced by VecLog().

◆ VecLog() [2/3]

template<typename T >
void ug::VecLog ( ParallelVector< T > &  dest,
const ParallelVector< T > &  v 
)
inline

References VecLog().

◆ VecLog() [3/3]

template<typename vector_t >
void ug::VecLog ( vector_t &  dest,
const vector_t &  v 
)
inline

References VecLog().

◆ VecNorm()

static number ug::VecNorm ( const vector3 a)
static

◆ VecNormSquared() [1/4]

◆ VecNormSquared() [2/4]

static number ug::VecNormSquared ( const vector3 a)
static

◆ VecNormSquared() [3/4]

template<typename vector_t >
double ug::VecNormSquared ( const vector_t &  a)
inline

returns norm_2^2(a)

References VecNormSquaredAdd().

◆ VecNormSquared() [4/4]

template<typename vector_t >
number ug::VecNormSquared ( const vector_t &  a,
const vector_t &  b,
const std::vector< size_t >  vIndex 
)
inline

returns norm_2^2(a) on a given index set

References VecNormSquaredAdd().

◆ VecNormSquaredAdd() [1/3]

void ug::VecNormSquaredAdd ( const double &  a,
double &  s 
)
inline

calculates s += norm_2^2(a)

References s.

Referenced by VecNormSquared(), and VecNormSquaredAdd().

◆ VecNormSquaredAdd() [2/3]

template<typename vector_t >
void ug::VecNormSquaredAdd ( const vector_t &  a,
const vector_t &  b,
number sum,
const std::vector< size_t >  vIndex 
)
inline

calculates s += norm_2^2(a) on a given index set

References UG_ASSERT, and VecNormSquaredAdd().

◆ VecNormSquaredAdd() [3/3]

template<typename vector_t >
void ug::VecNormSquaredAdd ( const vector_t &  a,
double &  sum 
)
inline

calculates s += norm_2^2(a)

References VecNormSquaredAdd().

◆ VecProd() [1/8]

◆ VecProd() [2/8]

void ug::VecProd ( const double &  a,
const double &  b,
double &  s 
)
inline

computes scal<a, b>

References s.

◆ VecProd() [3/8]

template<typename T >
double ug::VecProd ( const ParallelVector< T > &  a,
const ParallelVector< T > &  b 
)
inline

◆ VecProd() [4/8]

static number ug::VecProd ( const vector3 a,
const vector3 b 
)
static

◆ VecProd() [5/8]

template<typename vector_t >
double ug::VecProd ( const vector_t &  a,
const vector_t &  b 
)
inline

returns scal<a, b>

References VecProdAdd().

◆ VecProd() [6/8]

template<typename vector_t >
number ug::VecProd ( const vector_t &  a,
const vector_t &  b,
const std::vector< size_t >  vIndex 
)
inline

returns scal<a, b> on a given index set

References VecProd().

◆ VecProd() [7/8]

template<typename vector_t >
void ug::VecProd ( const vector_t &  a,
const vector_t &  b,
double &  sum 
)
inline

calculates s += scal<a, b>

References VecProdAdd().

◆ VecProd() [8/8]

template<typename vector_t >
void ug::VecProd ( const vector_t &  a,
const vector_t &  b,
number sum,
const std::vector< size_t >  vIndex 
)
inline

calculates s += scal<a, b> on a given index set

References UG_ASSERT, and VecProdAdd().

◆ VecProdAdd() [1/2]

void ug::VecProdAdd ( const double &  a,
const double &  b,
double &  s 
)
inline

calculates s += scal<a, b>

References s.

Referenced by VecProd(), and VecProdAdd().

◆ VecProdAdd() [2/2]

template<typename vector_t >
void ug::VecProdAdd ( const vector_t &  a,
const vector_t &  b,
double &  s 
)
inline

References s, and VecProdAdd().

◆ VecScaleAdd() [1/8]

void ug::VecScaleAdd ( double &  dest,
double  alpha1,
const double &  v1,
double  alpha2,
const double &  v2 
)
inline

calculates dest = alpha1*v1 + alpha2*v2. for doubles

◆ VecScaleAdd() [2/8]

void ug::VecScaleAdd ( double &  dest,
double  alpha1,
const double &  v1,
double  alpha2,
const double &  v2,
double  alpha3,
const double &  v3 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3. for doubles

◆ VecScaleAdd() [3/8]

template<typename T >
void ug::VecScaleAdd ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1,
double  alpha2,
const ParallelVector< T > &  v2 
)
inline

◆ VecScaleAdd() [4/8]

template<typename T >
void ug::VecScaleAdd ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1,
double  alpha2,
const ParallelVector< T > &  v2,
double  alpha3,
const ParallelVector< T > &  v3 
)
inline

◆ VecScaleAdd() [5/8]

template<typename vector_t , template< class T > class TE_VEC>
void ug::VecScaleAdd ( TE_VEC< vector_t > &  dest,
double  alpha1,
const TE_VEC< vector_t > &  v1,
double  alpha2,
const TE_VEC< vector_t > &  v2 
)
inline

calculates dest = alpha1*v1 + alpha2*v2

References VecScaleAdd().

◆ VecScaleAdd() [6/8]

template<typename vector_t , template< class T > class TE_VEC>
void ug::VecScaleAdd ( TE_VEC< vector_t > &  dest,
double  alpha1,
const TE_VEC< vector_t > &  v1,
double  alpha2,
const TE_VEC< vector_t > &  v2,
double  alpha3,
const TE_VEC< vector_t > &  v3 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3

References VecScaleAdd().

◆ VecScaleAdd() [7/8]

template<typename vector_t >
void ug::VecScaleAdd ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
number  alpha2,
const vector_t &  v2,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 on a given index set

References UG_ASSERT, and VecScaleAdd().

◆ VecScaleAdd() [8/8]

template<typename vector_t >
void ug::VecScaleAdd ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
number  alpha2,
const vector_t &  v2,
number  alpha3,
const vector_t &  v3,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 on a given index set

References UG_ASSERT, and VecScaleAdd().

◆ VecScaleAssign() [1/4]

◆ VecScaleAssign() [2/4]

template<typename T >
void ug::VecScaleAssign ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1 
)
inline

◆ VecScaleAssign() [3/4]

template<typename vector_t >
void ug::VecScaleAssign ( vector_t &  dest,
double  alpha1,
const vector_t &  v1 
)
inline

calculates dest = alpha1*v1

References VecScaleAssign().

◆ VecScaleAssign() [4/4]

template<typename vector_t >
void ug::VecScaleAssign ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 on a given index set

References UG_ASSERT, and VecScaleAssign().

◆ VecSet()

template<typename vector_t >
void ug::VecSet ( vector_t &  dest,
number  alpha,
const std::vector< size_t >  vIndex 
)
inline

sets dest = alpha on a given index set

References alpha, and UG_ASSERT.

◆ vecSum() [1/4]

void ug::vecSum ( double &  erg,
double  alpha,
double  vec 
)
inline

References alpha.

Referenced by vecSum().

◆ vecSum() [2/4]

template<typename T >
T::value_type ug::vecSum ( double  alpha,
const T &  vec 
)
inline

References alpha, and vecSum().

◆ vecSum() [3/4]

double ug::vecSum ( double  alpha,
double  vec 
)
inline

References alpha.

◆ vecSum() [4/4]

template<typename T >
void ug::vecSum ( typename T::value_type erg,
double  alpha,
const T &  vec 
)
inline

References alpha.

◆ VectorAdd()

template<typename vector_t , typename T1 >
void ug::VectorAdd ( vector_t &  dest,
const T1 &  t1 
)
inline

transforms x += X1 into x = (1.0)*X1 + (1.0)*x

◆ VectorAssign() [1/14]

template<typename vector_t , typename T1 , typename operation , typename T2 >
void ug::VectorAssign ( vector_t &  dest,
const AlphaMatVec_X_Expression< T1, operation, T2 > &  t 
)
inline

◆ VectorAssign() [2/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
const MatVec_Expression< matrix_t, vector_t > &  m1 
)
inline

◆ VectorAssign() [3/14]

template<typename vector_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
const vector_t2 &  v1 
)
inline

v = v

References getScaling(), getVector(), and VecScaleAssign().

◆ VectorAssign() [4/14]

template<typename vector_t , typename T0 , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha0,
const T0 &  t0,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

v = x + v + Mv -> v = x + Mv + v v = v + v + Mv v = Mv + v + Mv

References VectorAssign().

◆ VectorAssign() [5/14]

template<typename vector_t , typename T1 , typename operation , typename T2 , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const AlphaMatVec_X_Expression< T1, operation, T2 > &  t1,
double  alpha2,
const T3 &  t2 
)
inline

◆ VectorAssign() [6/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

◆ VectorAssign() [7/14]

template<typename vector_t , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2,
double  alpha3,
const vector_t2 &  v3 
)
inline

◆ VectorAssign() [8/14]

template<typename vector_t , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const vector_t2 &  v2 
)
inline

◆ VectorAssign() [9/14]

template<typename vector_t , typename matrix_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const vector_t2 &  v2,
double  alpha3,
const vector_t3 &  v3 
)
inline

◆ VectorAssign() [10/14]

template<typename vector_t , typename T1 , typename T2 , typename operation , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const T1 &  t1,
double  alpha2,
const AlphaMatVec_X_Expression< T2, operation, T3 > &  t2 
)
inline

◆ VectorAssign() [11/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

v = v + Mv

References VectorAssign().

◆ VectorAssign() [12/14]

template<typename vector_t , typename vector_t1 , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t1 &  v1,
double  alpha2,
const vector_t2 &  v2,
double  alpha3,
const vector_t3 &  v3 
)
inline

v = v + v + v

References getScaling(), getVector(), and VecScaleAdd().

◆ VectorAssign() [13/14]

template<typename vector_t , typename matrix_t , typename vector_t2 , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2,
double  alpha3,
const T3 &  t3 
)
inline

v = v + Mv + X -> v = Mv + v + X v = v + Mv + v v = v + Mv + Mv

References VectorAssign().

◆ VectorAssign() [14/14]

template<typename vector_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const vector_t3 &  v2 
)
inline

v = v + v

References getScaling(), getVector(), and VecScaleAdd().

◆ VectorSub()

template<typename vector_t , typename T1 >
void ug::VectorSub ( vector_t &  dest,
const T1 &  t1 
)
inline

transforms x -= X1 into x = (-1.0)*X1 + (1.0)*x

References VectorAssign().

◆ VertexGroupsMatch() [1/2]

UG_API bool ug::VertexGroupsMatch ( const IVertexGroup elem,
const IVertexGroup desc 
)

Checks whether two vertex groups contain the same vertices.

Typical use case: The first vertex group is an element, the other is a descriptor. In that capacity, this function works like the CompareVertex functions; but it is a tad more general and works also with, e.g., CustomVertexGroups.

Note
One might think about merging VertexGroupsMatch and CompareVertices.

References ug::IVertexGroup::num_vertices(), and ug::IVertexGroup::vertices().

◆ VertexGroupsMatch() [2/2]

UG_API bool ug::VertexGroupsMatch ( const Vertex elem,
const IVertexGroup desc 
)

specialization of VertexGroupsMatch for single Vertex

References ug::IVertexGroup::num_vertices(), and ug::IVertexGroup::vertex().

◆ VisitAll()

template<class TIter >
void ug::VisitAll ( const TIter  begin,
const TIter  end,
boost::function< void(typename TIter::value_type)>  visitorCallback 
)

Visits all elements between begin and end and executes the visitorCallback on them.

◆ VisitAreaBoundary()

template<class TIter >
void ug::VisitAreaBoundary ( Grid g,
const TIter  begin,
const TIter  end,
boost::function< bool(typename TIter::value_type)>  cbBelongsToArea,
boost::function< void(typename Pointer2Value< typename TIter::value_type >::type::side)>  cbVisitSide 
)

Visits all boundary elements of the area specified through the iterators.

WARNING: This method uses Grid::mark TIter::value_type has to be compatible to Edge*, Face* or Volume*. Lets say that TIter::value_type equals TElem*.

You have to specify a callback cbBelongsToArea with the signature 'void (TElem*)'. which tells for each element of TIter::value_type, whether it lies in the area or not. Note that this callback should optimally return true for all elements between begin and end, and false for all other elements.

You furthermore have to specify a callback cbVisitSide, with the signature 'void (TElem::side*)'. This callback is executed for all sides of the given area.

References ug::Grid::begin_marking(), CollectAssociated(), ug::Grid::is_marked(), and ug::Grid::mark().

◆ vtk_export_ho() [1/5]

template<typename TGridFunction >
void ug::vtk_export_ho ( SmartPtr< TGridFunction >  u,
const std::vector< std::string > &  vFct,
size_t  order,
SmartPtr< VTKOutput< TGridFunction::domain_type::dim > >  vtkOutput,
const char *  filename 
)

References vtk_export_ho().

◆ vtk_export_ho() [2/5]

template<typename TGridFunction >
void ug::vtk_export_ho ( SmartPtr< TGridFunction >  u,
const std::vector< std::string > &  vFct,
size_t  order,
SmartPtr< VTKOutput< TGridFunction::domain_type::dim > >  vtkOutput,
const char *  filename,
const std::vector< std::string > &  vSubset 
)

References vtk_export_ho().

◆ vtk_export_ho() [3/5]

template<typename TGridFunction >
void ug::vtk_export_ho ( SmartPtr< TGridFunction >  u,
const std::vector< std::string > &  vFct,
size_t  order,
SmartPtr< VTKOutput< TGridFunction::domain_type::dim > >  vtkOutput,
const char *  filename,
size_t  step,
number  time 
)

References vtk_export_ho().

◆ vtk_export_ho() [4/5]

template<typename TGridFunction >
void ug::vtk_export_ho ( SmartPtr< TGridFunction >  u,
const std::vector< std::string > &  vFct,
size_t  order,
SmartPtr< VTKOutput< TGridFunction::domain_type::dim > >  vtkOutput,
const char *  filename,
size_t  step,
number  time,
const std::vector< std::string > &  vSubset 
)

export a solution from a high-order ansatz space to vtk file(s)

This function will create a temporary domain, copy all elements from the domain which the grid function u is defined on to the temporary domain and then refine the resulting grid until it has at least as many vertices as the original grid functions has unknowns (e.g. a grid for a function of order 2 would be refined once, a grid for a function of order 4 would be refined twice, and so on). After refinement, a temporary grid function of order 1 (Lagrange) is defined on the refined grid and its values interpolated from the original function u. The temporary first-order grid function is then exported to vtk using the usual mechanisms.

Parameters
uoriginal high-order grid function to be exported
vFctvector of function names (contained in grid function) to be exported
orderorder to be used
vtkOutputVTKOutput object to use for export of linearized function
filenamefile name to be used in export
Todo:
The order parameter might be left out and determined automatically from the grid function.

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), dim, ug::Grid::num_edges(), ug::Grid::num_faces(), ug::Grid::num_vertices(), ug::Grid::num_volumes(), and UG_CATCH_THROW.

◆ vtk_export_ho() [5/5]

template<typename TGridFunction , int trueDim>
void ug::vtk_export_ho ( SmartPtr< TGridFunction >  u,
const std::vector< std::string > &  vFct,
size_t  order,
SmartPtr< VTKOutput< TGridFunction::domain_type::dim > >  vtkOutput,
const char *  filename,
size_t  step,
number  time,
const SubsetGroup ssg 
)

◆ WarnIfIsVectorNanOrTooBig()

template<typename T >
bool ug::WarnIfIsVectorNanOrTooBig ( const T &  t,
const char *  callerName 
)
inline

◆ WeightedEdgeSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedEdgeSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations,
Grid::vertex_traits::callback  cbSmoothVertex 
)

vertices which will not be smoothed get a special weight when being considered during smoothing of neighbored vertices.

Make sure that cbSmoothVertex returns true for exactly all those vertices, which in the range of the specified iterators.

References alpha, ug::Grid::associated_elements(), GetConnectedVertex(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecLengthSq(), VecSet(), and VecSubtract().

◆ WeightedFaceSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedFaceSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations,
Grid::vertex_traits::callback  cbSmoothVertex 
)

vertices which will not be smoothed get a special weight when being considered during smoothing of neighbored vertices.

Make sure that cbSmoothVertex returns true for exactly all those vertices, which in the range of the specified iterators.

References alpha, ug::Grid::associated_elements(), CalculateVolume(), GetConnectedEdge(), ug::FaceVertices::num_vertices(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecScaleAdd(), VecSet(), VecSubtract(), and ug::EdgeVertices::vertex().

◆ WeightedNormalSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedNormalSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
number  dotThreshold,
int  numIterations 
)

The higher the dot-product between an outgoing edge and the vertex normal, the higher the influence of that edge during smoothing of that vertex.

References alpha, ug::Grid::associated_elements(), CalculateVertexNormal(), GetConnectedVertex(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSet().

◆ WriteAlgebraIndices()

template<typename TDomain >
void ug::WriteAlgebraIndices ( std::string  name,
ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd 
)

◆ WriteCallLog() [1/2]

void ug::WriteCallLog ( const char *  filename)

◆ WriteCallLog() [2/2]

void ug::WriteCallLog ( const char *  filename,
int  procId 
)

◆ WriteEdges()

static void ug::WriteEdges ( ofstream &  out,
EdgeIterator  edgesBegin,
EdgeIterator  edgesEnd,
int  indexDimension,
Grid::VertexAttachmentAccessor< AInt > &  aaInt 
)
static

References ug::EdgeVertices::vertex().

Referenced by SaveGridToOBJ().

◆ WriteFaces()

static void ug::WriteFaces ( ofstream &  out,
FaceIterator  facesBegin,
FaceIterator  facesEnd,
int  indexDimension,
Grid::VertexAttachmentAccessor< AInt > &  aaInt 
)
static

◆ WriteGridHeader()

static void ug::WriteGridHeader ( const GridHeader gridHeader,
BinaryBuffer out 
)
static

◆ WriteLGM()

◆ WriteMatrixToConnectionViewer()

template<class TFunction >
void ug::WriteMatrixToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::matrix_type A,
const TFunction &  u 
)

◆ WriteNG()

◆ WriteParent()

template<class TElem >
static void ug::WriteParent ( MultiGrid mg,
TElem *  pElem,
MultiElementAttachmentAccessor< AInt > &  aaInt,
BinaryBuffer out 
)
static

◆ WriteProfileDataXML() [1/2]

void ug::WriteProfileDataXML ( const char *  filename)

Writes profile data of process 0 to the specified file.

Referenced by ug::bridge::RegisterBridge_Profiler().

◆ WriteProfileDataXML() [2/2]

void ug::WriteProfileDataXML ( const char *  filename,
int  procId 
)

Writes profile data to the specified file.

Writes profile data of all procs (procId == -1) or of specified proc (procId >= 0) to the specified file

◆ WriteSelectionStatesToStream()

template<class TElemIter >
static void ug::WriteSelectionStatesToStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISelector sel,
BinaryBuffer out 
)
static

◆ WriteSubsetIndicesToStream()

template<class TElemIter >
static void ug::WriteSubsetIndicesToStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISubsetHandler sh,
BinaryBuffer out 
)
static

◆ WriteVectorCSV() [1/2]

template<class TFunction >
void ug::WriteVectorCSV ( const char *  filename,
const typename TFunction::algebra_type::vector_type b,
const TFunction &  u 
)

◆ WriteVectorCSV() [2/2]

template<typename Vector_type , typename postype >
void ug::WriteVectorCSV ( const char *  filename,
const Vector_type &  b,
postype *  positions,
int  dimensions 
)

writes to a file in somewhat SparseMatrix-market format (for connection viewer)

Parameters
filenameFilename to write matrix to
bVector
positionsPositions, there has to be one position for each i in (0, ..., max(A.num_rows(), A.num_cols())).
dimensionsDimensions of Positions

Referenced by SaveVectorCSV(), and WriteVectorCSV().

◆ WriteVectorToConnectionViewer() [1/2]

template<class TFunction >
void ug::WriteVectorToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::matrix_type A,
const typename TFunction::algebra_type::vector_type b,
const TFunction &  u,
const typename TFunction::algebra_type::vector_type pCompareVec = NULL 
)

◆ WriteVectorToConnectionViewer() [2/2]

template<class TFunction >
void ug::WriteVectorToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::vector_type b,
const TFunction &  u,
const typename TFunction::algebra_type::vector_type pCompareVec = NULL 
)

◆ XMLStringEscape()

string ug::XMLStringEscape ( string  s)

References ReplaceAll(), and s.

Referenced by ug::bridge::RegisterBridge_Misc().

◆ zgetrf_()

void ug::zgetrf_ ( lapack_int m,
lapack_int n,
std::complex< lapack_double > *  pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

◆ zgetrs_()

void ug::zgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const std::complex< lapack_double > *  pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
std::complex< lapack_double > *  b,
lapack_int ldb,
lapack_int info 
)

Variable Documentation

◆ allocated

size_t ug::allocated = 0

Referenced by get_mem().

◆ aNormal

UG_API ANormal ug::aNormal ( "normal"  ,
true   
)

The standard 3d normal type.

Referenced by LoadMarkerPointsFromFile().

◆ aPosition

◆ aPosition1

◆ aPosition2

◆ bMemTracker

bool ug::bMemTracker =false

◆ BOXPRIORITYQUEUE2_MAXIMAL_VALUE

const int ug::BOXPRIORITYQUEUE2_MAXIMAL_VALUE = 500

maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()).

Referenced by ug::BoxPriorityQueue2< T >::insert_item().

◆ BOXPRIORITYQUEUE_MAXIMAL_VALUE

const int ug::BOXPRIORITYQUEUE_MAXIMAL_VALUE = 500

maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()).

Referenced by ug::BoxPriorityQueue< T >::insert_item(), and ug::BoxPriorityQueue2< T >::insert_item().

◆ callsOnHold

std::vector<ProfileCall> ug::callsOnHold

◆ cost_del

const unsigned int ug::cost_del = 1

Referenced by LevenshteinDistance().

◆ cost_ins

const unsigned int ug::cost_ins = 1

Referenced by LevenshteinDistance().

◆ cost_sub

const unsigned int ug::cost_sub = 1

Referenced by LevenshteinDistance().

◆ DBG_COLORING

DebugID ug::DBG_COLORING ( "ParallelColoring"  )

◆ DBG_MATRIX_OVERLAP

DebugID ug::DBG_MATRIX_OVERLAP ( "Algebra.MatrixOverlap"  )

◆ DID_CUDA

◆ DID_DATA_EVALUATOR

DebugID ug::DID_DATA_EVALUATOR("DATA_EVALUATOR") ( "DATA_EVALUATOR"  )

◆ DID_ELEM_DISC_ASSEMBLE_UTIL

DebugID ug::DID_ELEM_DISC_ASSEMBLE_UTIL ( "ELEM_DISC_ASSEMBLE_UTIL"  )

◆ DID_FV1_GEOM

◆ DID_LOCAL_FINITE_ELEMENT_PROVIDER

DebugID ug::DID_LOCAL_FINITE_ELEMENT_PROVIDER("LOCAL_FINITE_ELEMENT_PROVIDER") ( "LOCAL_FINITE_ELEMENT_PROVIDER"  )

◆ DID_LUACOMPILER

◆ DID_REFERENCE_MAPPING

DebugID ug::DID_REFERENCE_MAPPING("REFERENCE_MAPPING")

◆ DID_REFERENCE_MAPPING_GLOB_TO_LOC

DebugID ug::DID_REFERENCE_MAPPING_GLOB_TO_LOC("REFERENCE_MAPPING_GLOB_TO_LOC")

◆ g_bNoNANCheck

bool ug::g_bNoNANCheck = true

◆ g_boundaryRefinementRule

◆ g_minSecondUntilProgress

size_t ug::g_minSecondUntilProgress = 3

◆ g_ShinyCallLoggingMaxFreq

int ug::g_ShinyCallLoggingMaxFreq = 1

◆ GRID_BASE_OBJECT_PLURAL_NAMES

const char * ug::GRID_BASE_OBJECT_PLURAL_NAMES = {"vertices", "edges", "faces", "volume"}

◆ GRID_BASE_OBJECT_SINGULAR_NAMES

const char * ug::GRID_BASE_OBJECT_SINGULAR_NAMES = {"vertex", "edge", "face", "volume"}

◆ INNER_TKD_ELEMENT_INDICES

const int ug::INNER_TKD_ELEMENT_INDICES[]
static
Initial value:
= {
6, 24, 1, 0, 25, 19, 18,
6, 24, 2, 1, 25, 20, 19,
6, 24, 3, 2, 25, 21, 20,
6, 24, 4, 3, 25, 22, 21,
6, 24, 5, 4, 25, 23, 22,
6, 24, 0, 5, 25, 18, 23,
6, 2, 14, 20, 3, 15, 21,
6, 3, 9, 21, 4, 10, 22,
6, 4, 16, 22, 5, 17, 23,
6, 5, 11, 23, 0, 6, 18,
6, 0, 12, 18, 1, 13, 19,
6, 1, 7, 19, 2, 8, 20,
4, 3, 21, 9, 15,
4, 4, 22, 10, 16,
4, 5, 23, 11, 17,
4, 0, 18, 6, 12,
4, 1, 19, 7, 13,
4, 2, 20, 8, 14}

Each line corresponds to one element. First entry of each line corresponds to the number of vertices, the other entries to the vertex index according to TKDInfo.

Referenced by ug::TKDInfo::inner_element_indices().

◆ LG_DIST

◆ LIB_DISC_ORDER

DebugID ug::LIB_DISC_ORDER("LIB_DISC_ORDER") ( "LIB_DISC_ORDER"  )

For Debugging:

Referenced by OrderDownwind(), and OrderDownwindForDofDist().

◆ MAX_FACE_VERTICES

const int ug::MAX_FACE_VERTICES = 4

constant that defines the maximal number of vertices per face.

This constant is mainly used by FaceDescriptor. If required, one should be able to increase it without any problems.

Referenced by ug::IRefiner::get_local_face_mark(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_hanging_vertex(), and ug::HangingNodeRefinerBase< TSelector >::refine_face_with_normal_vertex().

◆ MAX_VOLUME_VERTICES

const int ug::MAX_VOLUME_VERTICES = 8

constant that defines the maximal number of vertices per volume element.

This constant is mainly used by VolumeDescriptor.

◆ MAXBLOCKSIZE

const size_t ug::MAXBLOCKSIZE = 53
static

◆ memTracker

MemTrackerMap ug::memTracker

◆ MG_EDGE_MAX_EDGE_CHILDREN

const int ug::MG_EDGE_MAX_EDGE_CHILDREN = 2

maximal number of edges that can be children of an edge.

Referenced by ug::MGEdgeInfo::add_child().

◆ MG_FACE_MAX_EDGE_CHILDREN

const int ug::MG_FACE_MAX_EDGE_CHILDREN = 4

maximal number of edges that can be children of a face.

Referenced by ug::MGFaceInfo::add_child().

◆ MG_FACE_MAX_FACE_CHILDREN

const int ug::MG_FACE_MAX_FACE_CHILDREN = 4

maximal number of faces that can be children of a face.

Referenced by ug::MGFaceInfo::add_child().

◆ OUTER_TKD_ELEMENT_INDICES

const int ug::OUTER_TKD_ELEMENT_INDICES[]
static

Each line corresponds to one element. First entry of each line corresponds to the number of vertices, the other entries to the vertex index according to TKDInfo.

Referenced by ug::TKDInfo::outer_element_indices().

◆ PI

◆ profileCalls

std::vector<ProfileCall> ug::profileCalls

◆ s_abortRun

bool ug::s_abortRun = false
static

◆ SchurDebug

◆ selfmem

map<const Shiny::ProfileNode *, size_t> ug::selfmem

◆ shiftCharacters

const char ug::shiftCharacters[] = "|#[+"
static

Referenced by ConfigShiftRotation(), and IsShiftChar().

◆ shiftCharactersLength

const size_t ug::shiftCharactersLength = sizeof(shiftCharacters)/sizeof(shiftCharacters[0])
static

Referenced by ConfigShiftRotation(), and IsShiftChar().

◆ SMALL

const number ug::SMALL = 1.0e-12

Referenced by AdaptSurfaceGridToCylinder(), CalculateHexahedronAspectRatio(), ug::FracturedMediaRefiner< TGrid, TAPosition >::collect_objects_for_refine(), ContainsPoint(), ug::FVLineSourceOrSink< dim, TData >::corresponds_to(), CutEdgesWithPlane(), DistanceLineToLine(), DropAPerpendicular(), ExpandFractures2d(), ExpandFractures3d(), ExportGridToTIKZ(), ExtrudeLayers(), ug::LagrangeLSFS< ReferenceTriangle, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferenceTriangle >::grad(), ug::LagrangeLSFS< ReferenceTetrahedron, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferenceTetrahedron >::grad(), ug::LagrangeLSFS< ReferencePrism, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferencePrism >::grad(), ug::DelaunayInfo< TAAPos >::init_marks(), IntersectCoplanarTriangles(), InvMatVecMult_byGivens(), ug::DelaunayInfo< TAAPos >::is_classifiable(), ug::NeuriteProjector::IsElementInsideSphere(), IsVertical(), LineLineIntersection3d(), MarkForRefinement_AnisotropicDirection(), MarkForRefinementByDirection(), NotVertical(), operator<(), ug::TIKZElem::operator<(), PartitionElements_RegularGrid(), ug::CylinderProjector::perform_projection(), ug::SomaProjector::perform_projection(), ug::SphereProjector::perform_projection(), PerformRetetrahedralization(), PerformTetrahedralization(), ug::UGXFileInfo::physical_grid_dimension(), PointIsInsideQuadrilateral(), PointIsInsideTetrahedron(), PointIsInsideTriangle(), ug::ClusterElementStacks< elem_t, vector_t >::post_process(), ProjectPointToRay(), QuadDiagonalIsValid(), QualityGridGeneration(), RayBoxIntersection(), RayCylinderIntersection(), RayRayIntersection3d(), RayRayProjection(), RaySphereIntersection(), ug::RasterLayers::relative_to_global_height(), ug::RasterLayers::relative_to_global_height_simple(), ResolveTriangleIntersections(), ug::EllipticCylinderProjector::scale_point_to_radius(), SelectEdgesByDirection(), SelectSubsetEdgesByDirection(), SlopeSmooth(), TriangleCircumcenter(), TriangleQuality_Area(), Triangulate(), and UpdateChainInfo().

◆ SMALL_SQ

◆ totalmem

map<const Shiny::ProfileNode *, size_t> ug::totalmem

◆ UG_BUILD_HOST

const char* ug::UG_BUILD_HOST
extern

Referenced by UGBuildHost().

◆ UG_COMPILE_DATE

const char* ug::UG_COMPILE_DATE
extern

Referenced by UGCompileDate().

◆ UG_GIT_REVISION

const char* ug::UG_GIT_REVISION
extern

Referenced by UGGitRevision().

◆ UG_SVN_REVISION

const char* ug::UG_SVN_REVISION
extern

Referenced by UGSvnRevision().

◆ ugRefObjIdToVTKCellType

const int ug::ugRefObjIdToVTKCellType[]
Initial value:
@ VTK_PYRAMID
Definition: file_io_vtu.cpp:54
@ VTK_WEDGE
Definition: file_io_vtu.cpp:53
@ VTK_TRIANGLE
Definition: file_io_vtu.cpp:45
@ VTK_HEXAHEDRON
Definition: file_io_vtu.cpp:52
@ VTK_TETRA
Definition: file_io_vtu.cpp:50
@ VTK_QUAD
Definition: file_io_vtu.cpp:49
@ VTK_LINE
Definition: file_io_vtu.cpp:43
@ VTK_VERTEX
Definition: file_io_vtu.cpp:41

Referenced by ug::GridWriterVTU::write_cells().

◆ useLua2VM

◆ useLuaCompiler

◆ VTKCellNames

const char* ug::VTKCellNames[]
Initial value:
= { "UNDEFINED",
"VERTEX",
"POLY_VERTEX",
"LINE",
"POLY_LINE",
"TRIANGLE",
"TRIANGLE_STRIP",
"POLYGON",
"PIXEL",
"QUAD",
"TETRA",
"VOXEL",
"HEXAHEDRON",
"WEDGE",
"PYRAMID",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"QUADRATIC_EDGE",
"QUADRATIC_TRIANGLE",
"QUADRATIC_QUAD",
"QUADRATIC_TETRA",
"QUADRATIC_HEXAHEDRON"}

Referenced by ug::GridReaderVTU::create_cells().