This repository has been archived by the owner on Nov 23, 2019. It is now read-only.
forked from yayahjb/ncdist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathD7_Boundary.h
62 lines (48 loc) · 2.54 KB
/
D7_Boundary.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef D7_Boundary_H
#define D7_Boundary_H
#include "MatD7.h"
#include "D7.h"
#include "D7_Subboundary.h"
#include <string>
#include <vector>
class D7_Boundary
{
public:
friend std::ostream& operator<< ( std::ostream&, const D7_Boundary& );
D7_Boundary( );
~D7_Boundary( );
static D7_Boundary ConstructSubboundary( const std::string& name, const MatD7& xform, const std::string& subspace, const std::string& condition );
const MatD7 GetProjector ( void ) const { return m_proj ; }
const MatD7 GetPerp ( void ) const { return m_perp ; }
const std::string GetName ( void ) const { return m_name ; }
const std::string GetCondition ( void ) const { return m_condition ; }
const std::vector<D7_Subboundary> GetSubboundaries( void ) const { return m_vSubBounds; };
const std::string GetSubspace ( void ) const { return m_subspace ; }
const D7_Subboundary& GetSubboundary ( const unsigned int n ) const { return m_vSubBounds[n]; }
const D7_Subboundary GetSubboundary ( const std::string& s ) const;
const D7_Boundary GetBoundary ( const std::string& s ) const;
const D7 GetExternalNormalUnitVector ( void ) const { return m_externalUnitNormalVector; }
void SetProjector ( const MatD7 & m );
void SetPerp ( const MatD7 & m ) { m_perp = m ; }
void SetName ( const std::string & s ) { m_name = s ; }
void SetCondition ( const std::string & s ) { m_condition = s ; }
void SetSubspace ( const std::string& subspace ) { m_subspace = subspace ; }
void SetSubboundaries( const std::vector<D7_Subboundary>& v ) { m_vSubBounds = v ; }
void SetSubboundary ( const unsigned int n, D7_Subboundary& b ) { m_vSubBounds[n] = b; }
unsigned int GetSubboundaryCount( void ) const {
const int thesize = int(m_vSubBounds.size( ));
return thesize;
}
size_t size( void ) const { return (size_t)(m_vSubBounds.size( )); }
private:
const D7 ComputeExternalNormalUnitVector(void) const;
private:
MatD7 m_proj;
MatD7 m_perp;
std::string m_name;
std::string m_condition;
std::string m_subspace;
std::vector<D7_Subboundary> m_vSubBounds;
D7 m_externalUnitNormalVector;
};
#endif