ffea_test.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 /*
25  * rod_blob_interface.cpp
26  * Author: Rob Welch, University of Leeds
27  * Email: py12rw@leeds.ac.uk
28  */
29 
30 #include <iostream>
31 #include <stdlib.h>
32 #include <omp.h>
33 
34 #include "FFEA_return_codes.h"
35 #include "FFEA_user_info.h"
36 #include "mat_vec_types.h"
37 #include "mesh_node.h"
38 //#include "tetra_element_linear.h"
39 #include "SimulationParams.h"
40 #include "Solver.h"
42 #include "Face.h"
43 #include "Blob.h"
44 #include "World.h"
45 
46 // ffea_test allows you to build unit tests in FFEA that can be accessed via a .ffeatest script file
47 // The reason is that otherwise, you'd have to compile a new binary, and you can't easily separate
48 // out a small section of FFEA codebase to compile - you basically have to compile the whole binary
49 // each time.
50 
51 struct ffea_test{
52 
53  static int do_ffea_test(std::string filename);
54 
55  static int connection_test();
56 
57  static int arbitrary_equilibrium_twist();
58 
59  static int connection_orientation_test();
60 
61  static int arbitrary_equilibrium_bend();
62 
63  static int identify_face();
64 
65  static int connection_energy();
66 
67  static int connection_energy_2();
68 
69  static int jacobian_rotate();
70 
71  static int connection_energy_3();
72 
74 
75  static int connection_propagation(int mode, bool ends_at_rod);
76 
77  static int recover_normal();
78 
79  static int dump_twist_info();
80 
81  static int euler_beam();
82 
83  static int twist_bend_coil();
84 
85  static int lower_sphere();
86 
87 };
static int jacobian_rotate()
Definition: ffea_test.cpp:652
static int twist_bend_coil()
Definition: ffea_test.cpp:1143
static int connection_energy_3()
Definition: ffea_test.cpp:688
static int dump_twist_info()
Definition: ffea_test.cpp:1044
static int connection_propagation(int mode, bool ends_at_rod)
Definition: ffea_test.cpp:715
static int identify_face()
Definition: ffea_test.cpp:365
static int connection_propagation_every_way()
Definition: ffea_test.cpp:706
static int lower_sphere()
Definition: ffea_test.cpp:1198
static int connection_energy()
Definition: ffea_test.cpp:425
static int connection_energy_2()
Definition: ffea_test.cpp:531
static int connection_orientation_test()
Definition: ffea_test.cpp:217
static int connection_test()
Definition: ffea_test.cpp:104
static int arbitrary_equilibrium_twist()
Definition: ffea_test.cpp:173
static int do_ffea_test(std::string filename)
Definition: ffea_test.cpp:32
static int recover_normal()
Definition: ffea_test.cpp:1007
Definition: ffea_test.h:51
static int arbitrary_equilibrium_bend()
Definition: ffea_test.cpp:272
static int euler_beam()
Definition: ffea_test.cpp:1112