21 #include <Eigen/Eigen> 25 using namespace Eigen;
80 vector<Eigen::Vector3d>
x;
81 vector<Eigen::Vector3d>
x0;
82 vector<Eigen::Vector3d>
v;
84 vector<Eigen::Vector3d>
mb;
85 vector<Eigen::Vector3d>
f;
99 void grow_ghosts(
int);
101 void init(
double*,
double*);
103 void reduce_mass_ghost_nodes();
104 void reduce_mass_ghost_nodes_old();
105 void reduce_ghost_nodes(
bool only_v =
false);
106 void reduce_ghost_nodes_old(
bool only_v =
false);
107 void update_grid_velocities();
108 void update_grid_positions();
109 void reduce_regularized_variables();
map< int, vector< tagint > > origin_nshared
for each CPU, list the tags of ghost nodes
Definition: grid.h:74
vector< int > mask
nodes' group mask
Definition: grid.h:88
vector< Eigen::Vector3d > x
nodes' current position
Definition: grid.h:80
vector< Eigen::Vector3d > mb
nodes' external forces times the mass
Definition: grid.h:84
tagint tag
Unique identification number of the point.
Definition: grid.h:40
vector< int > nowner
which CPU owns each node (universe->me for local nodes, other CPU for ghost nodes ...
Definition: grid.h:76
vector< tagint > ntag
unique identifier for nodes in the system.
Definition: grid.h:60
int owner
ID of the CPU who created the point.
Definition: grid.h:39
vector< Eigen::Vector3d > f
nodes' internal forces
Definition: grid.h:85
double cellsize
size of the square cells forming the grid
Definition: grid.h:78
vector< array< int, 3 > > ntype
node type in x, y, and z directions (False for an edge, True otherwise)
Definition: grid.h:90
int ny
number of nodes along y on this CPU
Definition: grid.h:64
int nshared
number of nodes that are shared (ghosts in other CPUs)
Definition: grid.h:71
vector< bool > rigid
are the nodes in the area of influence of a rigid body?
Definition: grid.h:89
map< int, vector< tagint > > dest_nshared
for each CPU, list the tags of shared nodes
Definition: grid.h:73
bigint nnodes_local
number of nodes (in this CPU)
Definition: grid.h:58
vector< double > mass
nodes' current mass
Definition: grid.h:87
vector< Eigen::Vector3d > v_update
nodes' velocity at time t+dt
Definition: grid.h:83
vector< Eigen::Vector3d > v
nodes' velocity at time t
Definition: grid.h:82
vector< Eigen::Vector3d > x0
nodes' position in the reference coordinate system
Definition: grid.h:81
vector< tagint > shared
tag of all shared nodes
Definition: grid.h:72
int ncells
number of cells
Definition: grid.h:56
int ny_global
number of nodes along y on all CPUs
Definition: grid.h:68
MPI_Datatype Pointtype
MPI type for struct Point.
Definition: grid.h:94
bigint nnodes_ghost
number of ghost nodes (in this CPU)
Definition: grid.h:59
Definition: pointers.h:29
bigint nnodes
total number of nodes in the domain
Definition: grid.h:57
int nx
number of nodes along x on this CPU
Definition: grid.h:63
int nz_global
number of nodes along z on all CPUs
Definition: grid.h:69
int nx_global
number of nodes along x on all CPUs
Definition: grid.h:67
int nz
number of nodes along z on this CPU
Definition: grid.h:65
map< int, int > map_ntag
map_ntag[ntag[i]] = i;
Definition: grid.h:61