openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
SF_base.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // openCARP is an open cardiac electrophysiology simulator.
3 //
4 // Copyright (C) 2020 openCARP project
5 //
6 // This program is licensed under the openCARP Academic Public License (APL)
7 // v1.0: You can use and redistribute it and/or modify it in non-commercial
8 // academic environments under the terms of APL as published by the openCARP
9 // project v1.0, or (at your option) any later version. Commercial use requires
10 // a commercial license (info@opencarp.org).
11 //
12 // This program is distributed without any warranty; see the openCARP APL for
13 // more details.
14 //
15 // You should have received a copy of the openCARP APL along with this program
16 // and can find it online: http://www.opencarp.org/license
17 // ----------------------------------------------------------------------------
18 
31 #ifndef _SF_BASE_H
32 #define _SF_BASE_H
33 
34 // C includes
35 #include <stdio.h>
36 #include <stdlib.h>
37 #include <unistd.h>
38 #include <string.h>
39 #include <assert.h>
40 #include <mpi.h>
41 
42 // external includes
43 #include "progress.hpp"
44 #include "asciiPlotter.hpp"
45 #include "dense_mat.hpp"
46 
47 // global SF definitions
48 #include "SF_globals.h"
49 
50 namespace SF {
62 template<typename V, typename W>
63 V clamp(const V val, const W start, const W end) {
64  if(val < start) return start;
65  if(val > end) return end;
66  return val;
67 }
68 
69 }
70 
71 // this are the mesh management modules
72 #include "SF_abstract_vector.h"
73 #include "SF_abstract_matrix.h"
74 #include "SF_abstract_lin_solver.h"
75 #include "SF_vector.h"
76 #include "SF_sort.h"
77 #include "SF_container.h"
78 #include "SF_network.h"
79 #include "SF_io_base.h"
80 #include "SF_parallel_utils.h"
81 #include "SF_mesh_io.h"
82 #include "SF_linalg_utils.h"
83 #include "SF_fem_utils.h"
84 #include "SF_partitioning.h"
85 #include "SF_parallel_layout.h"
86 #include "SF_numbering.h"
87 #include "SF_mesh_utils.h"
88 
89 
90 #endif
Definition: dense_mat.hpp:34
CLI progress class.
The vector class and related algorithms.
Dense matrix class and associated funcs.
Class used to plot functions on the terminal.
Basic containers.
Simple utility functions for parallel data.
Sequential linear algebra kernels.
Functions related to network communication.
Functions related to mesh IO.
Classes related to mesh node renumbering.
Various sorting algorithms.
V clamp(const V val, const W start, const W end)
Clamp a value into an interval [start, end].
Definition: SF_base.h:63
Partitioning classes.
FEM utilities.
Classes and algorithms related to the layout of distributed meshes.
Functions handling a distributed mesh.