Skip to content
Snippets Groups Projects
ElementInfo.h 1.86 KiB
Newer Older
// ============================================================================
// ==                                                                        ==
// == AMDiS - Adaptive multidimensional simulations                          ==
// ==                                                                        ==
// ==                                                                        ==
// ============================================================================
//
// Software License for AMDiS
//
// Copyright (c) 2010 Dresden University of Technology 
// All rights reserved.
// Authors: Simon Vey, Thomas Witkowski et al.
//
// This file is part of AMDiS
//
// See also license.opensource.txt in the distribution.



/** \file ElementInfo.h */

#ifndef AMDIS_ELEMENTINFO_H
#define AMDIS_ELEMENTINFO_H

#include <list>
#include <vector>
#include "VertexInfo.h"
#include "Boundary.h"
#include "Projection.h"
#include "AMDiS_fwd.h"
  /// Stores information for one element.
  class ElementInfo
  {
  public:
    /// Dimension specific constructor for DimVec creation.
    ElementInfo(int dim) 
      : vertices(dim),
	vertexInfo(dim, NO_INIT),
	boundary(dim, NO_INIT),
	projection(dim, NO_INIT),
	neighbour(dim, NO_INIT),
	surfaceRegions(dim, NO_INIT)
    /// Vertex infos for each element vertex.
    DimVec< std::list<VertexInfo>::iterator> vertexInfo;
    /// Boundary type for each side.
    DimVec<BoundaryType> boundary;
    /// Boundary projector for each side.
    DimVec<Projection*> projection;
    /// Neighbour output index for each side.
    DimVec<int> neighbour;
    /// Element type. Used in 3d.
    unsigned char type;
    ///
    int elementRegion;
    ///
    DimVec<int> surfaceRegions;
  };