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
Basic containers.
FEM utilities.
Sequential linear algebra kernels.
Functions related to mesh IO.
Functions handling a distributed mesh.
Functions related to network communication.
Classes related to mesh node renumbering.
Classes and algorithms related to the layout of distributed meshes.
Simple utility functions for parallel data.
Partitioning classes.
Various sorting algorithms.
The vector class and related algorithms.
Class used to plot functions on the terminal.
Dense matrix class and associated funcs.
Definition: dense_mat.hpp:34
V clamp(const V val, const W start, const W end)
Clamp a value into an interval [start, end].
Definition: SF_base.h:63
CLI progress class.