6#ifndef OPENFPM_PDATA_EQNSSTRUCT_HPP
7#define OPENFPM_PDATA_EQNSSTRUCT_HPP
9#include "Solvers/umfpack_solver.hpp"
10#include "Solvers/petsc_solver.hpp"
17 static const unsigned int dims=2;
19 static const unsigned int nvar=1;
22 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
41 static const unsigned int dims = 2;
43 static const unsigned int nvar = 2;
46 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
65 static const unsigned int dims = 2;
67 static const unsigned int nvar = 1;
70 static constexpr bool boundary[]={PERIODIC, PERIODIC};
89 static const unsigned int dims = 2;
91 static const unsigned int nvar = 2;
94 static constexpr bool boundary[]={PERIODIC, PERIODIC};
114 static const unsigned int dims = 2;
116 static const unsigned int nvar = 3;
119 static constexpr bool boundary[]={PERIODIC, PERIODIC};
138 static const unsigned int dims = 2;
140 static const unsigned int nvar = 3;
143 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
162 static const unsigned int dims = 2;
164 static const unsigned int nvar = 4;
167 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
186 static const unsigned int dims = 3;
188 static const unsigned int nvar = 3;
191 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
210 static const unsigned int dims = 3;
212 static const unsigned int nvar = 1;
215 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
234 static const unsigned int dims = 3;
236 static const unsigned int nvar = 3;
239 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,PERIODIC};
258 static const unsigned int dims = 3;
260 static const unsigned int nvar = 3;
263 static constexpr bool boundary[]={NON_PERIODIC, PERIODIC,PERIODIC};
282 static const unsigned int dims = 3;
284 static const unsigned int nvar = 3;
287 static constexpr bool boundary[]={PERIODIC, NON_PERIODIC,PERIODIC};
306 static const unsigned int dims = 3;
308 static const unsigned int nvar = 1;
311 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,PERIODIC};
330struct equations2d1_gpu {
333 static const unsigned int dims=2;
335 static const unsigned int nvar=1;
338 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
341 typedef double stype;
355struct equations2d2_gpu {
357 static const unsigned int dims = 2;
359 static const unsigned int nvar = 2;
362 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
365 typedef double stype;
379struct equations2d1p_gpu {
381 static const unsigned int dims = 2;
383 static const unsigned int nvar = 1;
386 static constexpr bool boundary[]={PERIODIC, PERIODIC};
389 typedef double stype;
403struct equations2d2p_gpu {
405 static const unsigned int dims = 2;
407 static const unsigned int nvar = 2;
410 static constexpr bool boundary[]={PERIODIC, PERIODIC};
413 typedef double stype;
427struct equations2d3p_gpu {
429 static const unsigned int dims = 2;
431 static const unsigned int nvar = 3;
434 static constexpr bool boundary[]={PERIODIC, PERIODIC};
437 typedef double stype;
451struct equations2d3_gpu {
453 static const unsigned int dims = 2;
455 static const unsigned int nvar = 3;
458 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
461 typedef double stype;
475struct equations2d4_gpu {
477 static const unsigned int dims = 2;
479 static const unsigned int nvar = 4;
482 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
485 typedef double stype;
499struct equations3d3_gpu {
501 static const unsigned int dims = 3;
503 static const unsigned int nvar = 3;
506 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
509 typedef double stype;
523struct equations3d1_gpu {
525 static const unsigned int dims = 3;
527 static const unsigned int nvar = 1;
530 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
533 typedef double stype;
547struct equations3d3Pz_gpu {
549 static const unsigned int dims = 3;
551 static const unsigned int nvar = 3;
554 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,PERIODIC};
557 typedef double stype;
571struct equations3d3Pyz_gpu {
573 static const unsigned int dims = 3;
575 static const unsigned int nvar = 3;
578 static constexpr bool boundary[]={NON_PERIODIC, PERIODIC,PERIODIC};
581 typedef double stype;
595struct equations3d3Pxz_gpu {
597 static const unsigned int dims = 3;
599 static const unsigned int nvar = 3;
602 static constexpr bool boundary[]={PERIODIC, NON_PERIODIC,PERIODIC};
605 typedef double stype;
619struct equations3d1Pz_gpu {
621 static const unsigned int dims = 3;
623 static const unsigned int nvar = 1;
626 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,PERIODIC};
629 typedef double stype;
651 static const unsigned int dims=2;
653 static const unsigned int nvar=1;
656 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
675 static const unsigned int dims = 2;
677 static const unsigned int nvar = 2;
680 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
699 static const unsigned int dims = 2;
701 static const unsigned int nvar = 3;
704 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
723 static const unsigned int dims = 2;
725 static const unsigned int nvar = 4;
728 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
748 static const unsigned int dims = 2;
750 static const unsigned int nvar = 1;
753 static constexpr bool boundary[]={PERIODIC, PERIODIC};
772 static const unsigned int dims = 2;
774 static const unsigned int nvar = 2;
777 static constexpr bool boundary[]={PERIODIC, PERIODIC};
796 static const unsigned int dims = 2;
798 static const unsigned int nvar = 3;
801 static constexpr bool boundary[]={PERIODIC, PERIODIC};
820 static const unsigned int dims = 3;
822 static const unsigned int nvar = 3;
825 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
844 static const unsigned int dims = 3;
846 static const unsigned int nvar = 1;
849 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
869 static const unsigned int dims = 3;
871 static const unsigned int nvar = 3;
874 static constexpr bool boundary[]={PERIODIC, NON_PERIODIC,PERIODIC};
893 static const unsigned int dims = 3;
895 static const unsigned int nvar = 3;
898 static constexpr bool boundary[]={PERIODIC, PERIODIC,PERIODIC};
917 static const unsigned int dims = 3;
919 static const unsigned int nvar = 1;
922 static constexpr bool boundary[]={PERIODIC, PERIODIC,NON_PERIODIC};
941 static const unsigned int dims = 3;
943 static const unsigned int nvar = 1;
946 static constexpr bool boundary[]={PERIODIC, PERIODIC,NON_PERIODIC};
965struct equations2d1E_gpu {
968 static const unsigned int dims=2;
970 static const unsigned int nvar=1;
973 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
976 typedef double stype;
990struct equations2d2E_gpu {
992 static const unsigned int dims = 2;
994 static const unsigned int nvar = 2;
997 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
1000 typedef double stype;
1014struct equations2d3E_gpu {
1016 static const unsigned int dims = 2;
1018 static const unsigned int nvar = 3;
1021 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
1024 typedef double stype;
1038struct equations2d4E_gpu {
1040 static const unsigned int dims = 2;
1042 static const unsigned int nvar = 4;
1045 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC};
1048 typedef double stype;
1063struct equations2d1pE_gpu {
1065 static const unsigned int dims = 2;
1067 static const unsigned int nvar = 1;
1070 static constexpr bool boundary[]={PERIODIC, PERIODIC};
1073 typedef double stype;
1087struct equations2d2pE_gpu {
1089 static const unsigned int dims = 2;
1091 static const unsigned int nvar = 2;
1094 static constexpr bool boundary[]={PERIODIC, PERIODIC};
1097 typedef double stype;
1111struct equations2d3pE_gpu {
1113 static const unsigned int dims = 2;
1115 static const unsigned int nvar = 3;
1118 static constexpr bool boundary[]={PERIODIC, PERIODIC};
1121 typedef double stype;
1135struct equations3d3E_gpu {
1137 static const unsigned int dims = 3;
1139 static const unsigned int nvar = 3;
1142 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
1145 typedef double stype;
1159struct equations3d1E_gpu {
1161 static const unsigned int dims = 3;
1163 static const unsigned int nvar = 1;
1166 static constexpr bool boundary[]={NON_PERIODIC, NON_PERIODIC,NON_PERIODIC};
1169 typedef double stype;
1183struct equations3d3EPxz_gpu {
1185 static const unsigned int dims = 3;
1187 static const unsigned int nvar = 3;
1190 static constexpr bool boundary[]={PERIODIC, NON_PERIODIC,PERIODIC};
1193 typedef double stype;
1207struct equations3d3EPz_gpu {
1209 static const unsigned int dims = 3;
1211 static const unsigned int nvar = 3;
1214 static constexpr bool boundary[]={PERIODIC, PERIODIC,PERIODIC};
1217 typedef double stype;
1232struct equations3d1Pxy_gpu {
1234 static const unsigned int dims = 3;
1236 static const unsigned int nvar = 1;
1239 static constexpr bool boundary[]={PERIODIC, PERIODIC,NON_PERIODIC};
1242 typedef double stype;
1256struct equations3d1EPxy_gpu {
1258 static const unsigned int dims = 3;
1260 static const unsigned int nvar = 1;
1263 static constexpr bool boundary[]={PERIODIC, PERIODIC,NON_PERIODIC};
1266 typedef double stype;
Sparse Matrix implementation.
Sparse Matrix implementation stub object when OpenFPM is compiled with no linear algebra support.
This class is able to do Matrix inversion in parallel with PETSC solvers.
In case T does not match the PETSC precision compilation create a stub structure.
stub when library compiled without eigen
stub when library compiled without eigen
Specify the general characteristic of system to solve.
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
Vector< double > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
double stype
type of space float, double, ...
Specify the general characteristic of system to solve.
double stype
type of space float, double, ...
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
Vector< double > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
double stype
type of space float, double, ...
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
Vector< double > Vector_type
type of Vector for the linear solver
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
static const unsigned int nvar
number of fields in the system
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int nvar
number of fields in the system
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static constexpr bool boundary[]
boundary at X and Y
Vector< double > Vector_type
type of Vector for the linear solver
double stype
type of space float, double, ...
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int nvar
number of fields in the system
Vector< double > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int nvar
number of fields in the system
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
double stype
type of space float, double, ...
Vector< double > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
double stype
type of space float, double, ...
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
double stype
type of space float, double, ...
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
Vector< double > Vector_type
type of Vector for the linear solver
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static constexpr bool boundary[]
boundary at X and Y
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
double stype
type of space float, double, ...
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int nvar
number of fields in the system
double stype
type of space float, double, ...
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
Vector< double > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static constexpr bool boundary[]
boundary at X and Y
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int nvar
number of fields in the system
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
double stype
type of space float, double, ...
Vector< double > Vector_type
type of Vector for the linear solver
double stype
type of space float, double, ..
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static constexpr bool boundary[]
boundary at X and Y
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int nvar
number of fields in the system
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int nvar
number of fields in the system
double stype
type of space float, double, ...
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
double stype
type of space float, double, ...
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static const unsigned int nvar
number of fields in the system
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static constexpr bool boundary[]
boundary at X and Y
Vector< double > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
double stype
type of space float, double, ...
static const unsigned int nvar
number of fields in the system
Vector< double > Vector_type
type of Vector for the linear solver
double stype
type of space float, double, ...
static constexpr bool boundary[]
boundary at X and Y
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int nvar
number of fields in the system
double stype
type of space float, double, ..
static constexpr bool boundary[]
boundary at X and Y
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, EIGEN_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double > Vector_type
type of Vector for the linear solver
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
double stype
type of space float, double, ..
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int nvar
number of fields in the system
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
static const unsigned int nvar
number of fields in the system
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
double stype
type of space float, double, ..
static constexpr bool boundary[]
boundary at X and Y
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
double stype
type of space float, double, ..
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
static const unsigned int nvar
number of fields in the system
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
SparseMatrix< double, int, PETSC_BASE > SparseMatrix_type
type of SparseMatrix for the linear solver
static const unsigned int nvar
number of fields in the system
double stype
type of space float, double, ..
vector_dist< dims, double, aggregate< double > > b_part
type of base particles
static constexpr bool boundary[]
boundary at X and Y
static const unsigned int dims
dimensionaly of the equation ( 3D problem ...)
Vector< double, PETSC_BASE > Vector_type
type of Vector for the linear solver