BindingSite.h
Go to the documentation of this file.
1 //
2 // This file is part of the FFEA simulation package
3 //
4 // Copyright (c) by the Theory and Development FFEA teams,
5 // as they appear in the README.md file.
6 //
7 // FFEA is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // FFEA is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with FFEA. If not, see <http://www.gnu.org/licenses/>.
19 //
20 // To help us fund FFEA development, we humbly ask that you cite
21 // the research papers on the package.
22 //
23 
24 #ifndef BINDINGMATRIXHINCLUDED
25 #define BINDINGMATRIXHINCLUDED
26 
27 #include <iostream>
28 #include <fstream>
29 #include <string>
30 #include <vector>
31 #include <set>
32 #include <cmath>
33 #include <boost/algorithm/string.hpp>
34 #include "FFEA_return_codes.h"
35 #include "mat_vec_types.h"
36 #include "mat_vec_fns.h"
37 #include "Face.h"
38 
39 using namespace std;
40 
42 
43  public:
44 
45  BindingSite();
46  ~BindingSite();
47 
48  // Structure
49  int num_faces, site_type;
50 
52  vector<Face*> faces;
53 
54  void print_to_screen();
55  void set_num_faces(int num_faces);
56  void set_type(int site_type);
57  int get_type();
58  void add_face(Face *aface);
59  set<int> get_nodes();
60 
61  void calculate_centroid();
62  void get_centroid(arr3 &v);
63  void calculate_area();
64  scalar get_area();
65  void calculate_characteristic_length();
66  scalar get_characteristic_length();
67 
68  static bool sites_in_range(BindingSite a, BindingSite b);
69 
70  private:
71 
74 
77 
80 };
81 
83 
84  public:
85 
88 
89  int init(string fname);
90  int get_num_interaction_types();
91  void print_to_screen();
92 
95 
97  bool **interaction;
98 };
99 
100 #endif
Definition: BindingSite.h:41
vector< Face * > faces
Definition: BindingSite.h:52
STL namespace.
int site_type
Definition: BindingSite.h:49
int num_interaction_types
Definition: BindingSite.h:94
scalar arr3[3]
Definition: mat_vec_types.h:70
scalar area
Definition: BindingSite.h:76
bool ** interaction
Definition: BindingSite.h:97
vector3 centroid
Definition: BindingSite.h:73
scalar characteristic_length
Definition: BindingSite.h:79
Definition: mat_vec_types.h:90
double scalar
Definition: mat_vec_types.h:36
Definition: Face.h:38
Definition: BindingSite.h:82