Flow123d
jenkins-Flow123d-linux-release-multijob-282
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
flow123d
src
mesh
boundaries.h
Go to the documentation of this file.
1
/*!
2
*
3
* Copyright (C) 2007 Technical University of Liberec. All rights reserved.
4
*
5
* Please make a following refer to Flow123d on your project site if you use the program for any purpose,
6
* especially for academic research:
7
* Flow123d, Research Centre: Advanced Remedial Technologies, Technical University of Liberec, Czech Republic
8
*
9
* This program is free software; you can redistribute it and/or modify it under the terms
10
* of the GNU General Public License version 3 as published by the Free Software Foundation.
11
*
12
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
* See the GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along with this program; if not,
17
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 021110-1307, USA.
18
*
19
*
20
* $Id$
21
* $Revision$
22
* $LastChangedBy$
23
* $LastChangedDate$
24
*
25
* @file
26
* @brief ???
27
*
28
*/
29
30
#ifndef BOUNDARIES_H
31
#define BOUNDARIES_H
32
33
//#include "mesh/mesh.h"
34
#include "
mesh/sides.h
"
35
#include "
mesh/edges.h
"
36
#include "
system/sys_vector.hh
"
37
38
39
40
/**
41
* Setting boundary conditions should have two staps.
42
* 1) Denote by numbers segments of mesh boundary. Possibly every side can be boundary.
43
* 2) Assign particular type and values of BC on every boundary segment.
44
*
45
* So in future Boundary should keep only side and segment and there should be
46
* one Boundary for every external side. Side is external either when it does not
47
* neighbor with another element or when it belongs to an segment.
48
*/
49
50
class
Element
;
51
52
//=============================================================================
53
// STRUCTURE OF THE BOUNDARY CONDITION
54
//=============================================================================
55
class
Boundary
56
{
57
public
:
58
/**
59
* temporary solution for old type BCD.
60
* Transport BCD refers through IDs to flow BCD, so we have to
61
* store positions of Flow BCD items somewhere.
62
*/
63
static
flow::VectorId<unsigned int>
id_to_bcd
;
64
65
Boundary
();
66
67
/**
68
* Can not make this inline now.
69
*/
70
Edge
*
edge
();
71
72
Element
*
element
();
73
74
Region
region
() {
75
return
element
()->
region
();
76
}
77
78
ElementAccessor<3>
element_accessor
();
79
80
81
inline
SideIter
side
() {
82
if
(
edge
()->n_sides != 1)
xprintf
(
Err
,
"Using side method for boundary, but there is boundary with multiple sides.\n"
);
83
return
edge
()->
side_
[0];
84
}
85
86
// Topology of the mesh
87
unsigned
int
edge_idx_
;
// more then one side can be at one boundary element
88
unsigned
int
bc_ele_idx_
;
// in near future this should replace Boundary itself, when we remove BC data members
89
Mesh
*
mesh_
;
90
91
};
92
#endif
93
//-----------------------------------------------------------------------------
94
// vim: set cindent:
flow::VectorId< unsigned int >
ElementAccessor
Definition:
accessors.hh:36
Mesh
Definition:
mesh.h:109
Edge
Definition:
edges.h:38
Boundary::region
Region region()
Definition:
boundaries.h:74
Region
Definition:
region.hh:125
Boundary
Definition:
boundaries.h:55
Boundary::side
SideIter side()
Definition:
boundaries.h:81
Boundary::Boundary
Boundary()
Definition:
boundaries.cc:41
SideIter
Definition:
sides.h:129
Boundary::edge
Edge * edge()
Definition:
boundaries.cc:51
Element::region
Region region() const
Definition:
elements.cc:167
xprintf
#define xprintf(...)
Definition:
system.hh:100
Boundary::element
Element * element()
Definition:
boundaries.cc:47
Element
Definition:
elements.h:50
Boundary::edge_idx_
unsigned int edge_idx_
Definition:
boundaries.h:87
Boundary::bc_ele_idx_
unsigned int bc_ele_idx_
Definition:
boundaries.h:88
edges.h
???
sides.h
???
sys_vector.hh
Vector classes to support both Iterator, index and Id access and creating co-located vectors...
Err
Definition:
system.hh:72
Boundary::mesh_
Mesh * mesh_
Definition:
boundaries.h:89
Edge::side_
SideIter * side_
Definition:
edges.h:49
Boundary::element_accessor
ElementAccessor< 3 > element_accessor()
Definition:
boundaries.cc:55
Boundary::id_to_bcd
static flow::VectorId< unsigned int > id_to_bcd
Definition:
boundaries.h:63
Generated by
1.8.5