CFDEMcoupling  2.4
 All Classes
debugInfo.H
1 
2  //========================================================================//
3  scalar countCell=0; // number of cells touched by particles
4  int points=0; // number of particles and sub-points
5  scalar totalParticleWeights=0; // total weight of all particles and sub-points
6  vector totalForce_array(0,0,0); // total force on particles based on particle array
7  vector totalForce_field(0,0,0); // forceField of forceM(), used to calc Ksl
8  scalar particleVolume_radius=0; // total particle voulme based on radius array
9  scalar particleVolume_field=0; // total particle voulme based on voidfractionfield
10  scalar particleVolume_array=0; // total particle voulme based on particle array
11  scalar meanR_array=0; // mean particle radius based on particle array
12  vector meanUs_array(0,0,0); // mean solid velocity based on particle array
13  vector meanUs_field(0,0,0); // mean solid velocity based on field Us
14  scalar meanAlpha_field=0; // mean voidfraction
15  vector meanU_field(0,0,0); // mean fluid velocity based on field U
16  //========================================================================//
17 
18  // get particle based data
19  for(int index = 0;index < numberOfParticles(); ++index)
20  {
21  for(int i=0;i<3;i++){
22  totalForce_array[i] += impForces_[index][i]; // in giveDEMdata() exp imp and DEM are summed
23  meanUs_array[i] += velocities_[index][i];
24  }
25  meanR_array += radii_[index][0];
26  particleVolume_radius += radii_[index][0]*radii_[index][0]*radii_[index][0]*4./3.*3.1415;
27 
28  // loop subCells
29  for(int subCell=0;subCell<voidFractionM().cellsPerParticle()[index][0];subCell++)
30  {
31  points++;
32  totalParticleWeights += particleWeights_[index][subCell];
33  particleVolume_array += particleVolumes_[index][subCell];
34  }
35  }
36 
37  // get field based data
38  forAll(alpha,cellI)
39  {
40  // check if a particle is inside cell
41  bool particleInside=false;
42  for(int index = 0;index < numberOfParticles(); ++index){
43  for(int subCell=0;subCell<voidFractionM().cellsPerParticle()[index][0];subCell++){
44  if(cellIDs_[index][subCell] == cellI){
45  particleInside=true;
46  break;
47  }
48  }
49  }
50 
51  if(particleInside)
52  {
53  countCell++;
54  meanAlpha_field += alpha[cellI];
55  meanU_field += U[cellI];
56  meanUs_field += Us[cellI];
57  particleVolume_field += (1-alpha[cellI])*alpha.mesh().V()[cellI];
58  totalForce_field += forceM(0).expParticleForces()[cellI]+forceM(0).impParticleForces()[cellI];
59  }
60  }
61 
62  // averaging
63  if(countCell>0)
64  {
65  meanAlpha_field /= countCell;
66  meanU_field /= countCell;
67  meanUs_field /= countCell;
68  }
69  else
70  {
71  meanAlpha_field = 0;
72  meanU_field = vector(0,0,0);
73  meanUs_field = vector(0,0,0);
74  }
75  meanUs_array /= numberOfParticles()+SMALL;
76  meanR_array /= numberOfParticles()+SMALL;
77 
78  Info <<"=============================================================================" << endl;
79  Info << "Debug Info, only serial and not tested!" << endl;
80  Info <<" numberOfParticles_ = "<< numberOfParticles() << " != " << endl;
81  Info <<"totalParticleWeights = "<< totalParticleWeights << endl;
82  Info <<" points= "<< points << endl;
83  Info <<"countCell= "<< countCell << endl;
84  Info <<" totalForce_array = "<< mag(totalForce_array)<< " != " << endl;
85  Info <<" totalForce_field = "<< mag(totalForce_field) << endl;
86  Info <<" particleVolume_field = "<< particleVolume_field << " != " << endl;
87  Info <<" particleVolume_array = "<< particleVolume_array << " != " << endl;
88  Info <<" particleVolume_radius = "<< particleVolume_radius << endl;
89  Info <<"meanUs_field = "<< mag(meanUs_field) << " ~= " << endl;
90  Info <<"meanUs_array = "<< mag(meanUs_array) << endl;
91  Info <<"meanU_field = "<< mag(meanU_field) << endl;
92  Info <<"meanAlpha_field = "<< meanAlpha_field << endl;
93  Info <<"meanR_array = "<< meanR_array << endl;
94  Info <<"=============================================================================" << endl;
95  Info << endl;