Flow123d  release_2.2.0-914-gf1a3a4f
Classes | Macros | Typedefs
mesh.h File Reference
#include <vector>
#include <mpi.h>
#include "mesh/mesh_types.hh"
#include "mesh/nodes.hh"
#include "mesh/edges.h"
#include "mesh/neighbours.h"
#include "mesh/boundaries.h"
#include "mesh/partitioning.hh"
#include "mesh/region_set.hh"
#include "mesh/bounding_box.hh"
#include "input/input_type_forward.hh"
#include "input/accessors_forward.hh"
#include "system/exceptions.hh"
#include "mesh/side_impl.hh"
#include "mesh/element_impls.hh"
#include "mesh/neighbours_impl.hh"

Go to the source code of this file.

Classes

class  BoundarySegment
 
class  Mesh
 

Macros

#define ELM   0
 
#define BC   1
 
#define NODE   2
 
#define MESH_CRITICAL_VOLUME   1.0E-12
 
#define FOR_NODES(_mesh_, i)
 
#define NODE_FULL_ITER(_mesh_, i)   (_mesh_)->node_vector.full_iter(i)
 
#define NODE_FULL_ITER_NULL(_mesh_)   NodeFullIter((_mesh_)->node_vector)
 
#define ELEM_FULL_ITER(_mesh_, i)   (_mesh_)->element.full_iter(i)
 
#define FOR_NODE_ELEMENTS(i, j)   for((j)=0;(j)<(i)->n_elements();(j)++)
 
#define FOR_NODE_SIDES(i, j)   for((j)=0;(j)<(i)->n_sides;(j)++)
 
#define FOR_ELEMENTS(_mesh_, __i)
 
#define ELEMENT_FULL_ITER(_mesh_, i)   (_mesh_)->element.full_iter(i)
 
#define ELEMENT_FULL_ITER_NULL(_mesh_)   ElementFullIter((_mesh_)->element)
 
#define FOR_BOUNDARIES(_mesh_, i)
 
#define BOUNDARY_FULL_ITER(_mesh_, i)   (_mesh_)->boundary.full_iter(i)
 
#define BOUNDARY_NULL(_mesh_)   BoundaryFullIter((_mesh_)->boundary)
 
#define FOR_EDGES(_mesh_, __i)
 
#define FOR_SIDES(_mesh_, it)
 
#define FOR_SIDE_NODES(i, j)   for((j)=0;(j)<(i)->n_nodes;(j)++)
 
#define FOR_NEIGHBOURS(_mesh_, it)
 
#define FOR_NEIGH_ELEMENTS(i, j)   for((j)=0;(j)<(i)->n_elements;(j)++)
 
#define FOR_NEIGH_SIDES(i, j)   for((j)=0;(j)<(i)->n_sides;(j)++)
 

Typedefs

typedef int IdxInt
 Define integers that are indices into large arrays (elements, nodes, dofs etc.) More...
 

Detailed Description

 * Copyright (C) 2015 Technical University of Liberec. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)

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 General Public License for more details.

Definition in file mesh.h.

Macro Definition Documentation

#define BC   1

Definition at line 43 of file mesh.h.

#define BOUNDARY_FULL_ITER (   _mesh_,
 
)    (_mesh_)->boundary.full_iter(i)

Macro for conversion form Iter to FullIter for boundaries.

Definition at line 506 of file mesh.h.

#define BOUNDARY_NULL (   _mesh_)    BoundaryFullIter((_mesh_)->boundary)

Macro to get "NULL" BoundaryFullIter.

Definition at line 512 of file mesh.h.

#define ELEM_FULL_ITER (   _mesh_,
 
)    (_mesh_)->element.full_iter(i)

Macro for conversion form Iter to FullIter for elements.

Definition at line 76 of file mesh.h.

#define ELEMENT_FULL_ITER (   _mesh_,
 
)    (_mesh_)->element.full_iter(i)

Macro for conversion form Iter to FullIter for elements.

Definition at line 488 of file mesh.h.

#define ELEMENT_FULL_ITER_NULL (   _mesh_)    ElementFullIter((_mesh_)->element)

Macro to get "NULL" ElementFullIter.

Definition at line 494 of file mesh.h.

#define ELM   0

Definition at line 42 of file mesh.h.

#define FOR_BOUNDARIES (   _mesh_,
 
)
Value:
for( std::vector<Boundary>::iterator i= (_mesh_)->boundary_.begin(); \
i != (_mesh_)->boundary_.end(); \
++i)

Definition at line 498 of file mesh.h.

#define FOR_EDGES (   _mesh_,
  __i 
)
Value:
for( vector<Edge>::iterator __i = (_mesh_)->edges.begin(); \
__i !=(_mesh_)->edges.end(); \
++__i)

Provides for statement to iterate over the Edges of the Mesh. see FOR_ELEMENTS

Definition at line 519 of file mesh.h.

#define FOR_ELEMENTS (   _mesh_,
  __i 
)
Value:
for( ElementFullIter __i( (_mesh_)->element.begin() ); \
__i != (_mesh_)->element.end(); \
++__i)

Provides for statement to iterate over the Elements of the Mesh. The parameter is FullIter local variable of the cycle, so it need not be declared before. Macro assume that variable Mesh *mesh; is declared and points to a valid Mesh structure.

Definition at line 480 of file mesh.h.

#define FOR_NEIGH_ELEMENTS (   i,
 
)    for((j)=0;(j)<(i)->n_elements;(j)++)

Definition at line 535 of file mesh.h.

#define FOR_NEIGH_SIDES (   i,
 
)    for((j)=0;(j)<(i)->n_sides;(j)++)

Definition at line 536 of file mesh.h.

#define FOR_NEIGHBOURS (   _mesh_,
  it 
)
Value:
for( std::vector<Neighbour>::iterator it = (_mesh_)->vb_neighbours_.begin(); \
(it)!= (_mesh_)->vb_neighbours_.end(); ++it)

Definition at line 531 of file mesh.h.

#define FOR_NODE_ELEMENTS (   i,
 
)    for((j)=0;(j)<(i)->n_elements();(j)++)

Definition at line 80 of file mesh.h.

#define FOR_NODE_SIDES (   i,
 
)    for((j)=0;(j)<(i)->n_sides;(j)++)

Definition at line 81 of file mesh.h.

#define FOR_NODES (   _mesh_,
 
)
Value:
for( NodeFullIter i( (_mesh_)->node_vector.begin() ); \
i != (_mesh_)->node_vector.end(); \
++i)

Provides for statement to iterate over the Nodes of the Mesh. The parameter is FullIter local variable of the cycle, so it need not be declared before. Macro assume that variable Mesh *mesh; is declared and points to a valid Mesh structure.

Definition at line 56 of file mesh.h.

#define FOR_SIDE_NODES (   i,
 
)    for((j)=0;(j)<(i)->n_nodes;(j)++)

Definition at line 528 of file mesh.h.

#define FOR_SIDES (   _mesh_,
  it 
)
Value:
FOR_ELEMENTS((_mesh_), ele) \
for(SideIter it = ele->side(0); it->el_idx() < ele->n_sides(); ++it)
#define FOR_ELEMENTS(_mesh_, __i)
Definition: mesh.h:480

Definition at line 524 of file mesh.h.

#define MESH_CRITICAL_VOLUME   1.0E-12

This parameter limits volume of elements from below.

Definition at line 49 of file mesh.h.

#define NODE   2

Definition at line 44 of file mesh.h.

#define NODE_FULL_ITER (   _mesh_,
 
)    (_mesh_)->node_vector.full_iter(i)

Macro for conversion form Iter to FullIter for nodes.

Definition at line 64 of file mesh.h.

#define NODE_FULL_ITER_NULL (   _mesh_)    NodeFullIter((_mesh_)->node_vector)

Macro to get "NULL" ElementFullIter.

Definition at line 70 of file mesh.h.

Typedef Documentation

typedef int IdxInt

Define integers that are indices into large arrays (elements, nodes, dofs etc.)

Definition at line 85 of file mesh.h.