|  | @@ -300,7 +300,7 @@ namespace OTSGBCalculate
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  |  		// get all the all particles for each level			
 | 
	
		
			
				|  |  | -		//mapAllParticles.clear();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  |  		for (auto pParticle : m_listOTSParticles)
 | 
	
		
			
				|  |  |  		{	// compute length width ratio
 | 
	
		
			
				|  |  |  			if (pParticle->GetType() == OTS_PARTICLE_TYPE::INVALID)//here we take all the particles except Invalid.
 | 
	
	
		
			
				|  | @@ -340,14 +340,14 @@ namespace OTSGBCalculate
 | 
	
		
			
				|  |  |  					listAparts.push_back(pParticle);
 | 
	
		
			
				|  |  |  					
 | 
	
		
			
				|  |  |  					
 | 
	
		
			
				|  |  | -					//mapAllParticles[pParticle] = GBParticle(pParticle, GB_CLASSIFY_TYPE::A_TYPE, wt);
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				else if (nChemicalType == GB_CHEMICAL_TYPE::CHE_O || nChemicalType== GB_CHEMICAL_TYPE::CHE_Si || nChemicalType == GB_CHEMICAL_TYPE::CHE_Al)
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  |  					// C
 | 
	
		
			
				|  |  |  					listCparts.push_back(pParticle);
 | 
	
		
			
				|  |  |  					
 | 
	
		
			
				|  |  | -					//mapAllParticles[pParticle] = GBParticle(pParticle, GB_CLASSIFY_TYPE::C_TYPE, wt);
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -355,34 +355,23 @@ namespace OTSGBCalculate
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  |  				
 | 
	
		
			
				|  |  |  				// B, or D or DS				
 | 
	
		
			
				|  |  | -				double dFeretDiameter = pParticle->GetFeretDiameter();
 | 
	
		
			
				|  |  | -				if (dFeretDiameter >= 13)
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				if (nChemicalType == GB_CHEMICAL_TYPE::CHE_S)//if it contains sulfide then it is a A particle.
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  | -					// DS		
 | 
	
		
			
				|  |  | -					CGBParticlePtr gbp = CGBParticlePtr(new GBParticle());
 | 
	
		
			
				|  |  | -					gbp->myType = GB_CLASSIFY_TYPE::DS_TYPE;
 | 
	
		
			
				|  |  | -					gbp->myOTSParts.push_back(pParticle);
 | 
	
		
			
				|  |  | -					listDSParticles.push_back(gbp);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -					
 | 
	
		
			
				|  |  | +					listAparts.push_back(pParticle);
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				else
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  | -					if (nChemicalType == GB_CHEMICAL_TYPE::CHE_S)//if it contains sulfide then it is a A particle.
 | 
	
		
			
				|  |  | -					{
 | 
	
		
			
				|  |  | -						listAparts.push_back(pParticle);
 | 
	
		
			
				|  |  | -						
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | -					else
 | 
	
		
			
				|  |  | -					{
 | 
	
		
			
				|  |  | -						// B or D
 | 
	
		
			
				|  |  | +					// B or D
 | 
	
		
			
				|  |  |  						
 | 
	
		
			
				|  |  | -							listBAndDParticles.push_back(pParticle);
 | 
	
		
			
				|  |  | +						listBAndDParticles.push_back(pParticle);
 | 
	
		
			
				|  |  |  						
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  |  					
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -463,8 +452,17 @@ namespace OTSGBCalculate
 | 
	
		
			
				|  |  |  							listDSuperParticles.push_back(pGBParticle);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  | -						//mapAllParticles[pGBParticle.myPart] = GBParticle(pGBParticle.myPart, GB_CLASSIFY_TYPE::D_TYPE, wt);
 | 
	
		
			
				|  |  | -					//}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +						double dFeretDiameter = pGBParticle->GetFeretDiameter();
 | 
	
		
			
				|  |  | +						if (dFeretDiameter >= 13)
 | 
	
		
			
				|  |  | +						{
 | 
	
		
			
				|  |  | +							// DS		
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							listDSParticles.push_back(pGBParticle);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  |  					
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				else if (pGBParticle->myOTSParts.size() == 2)//there's only two parts,it's still  D part
 | 
	
	
		
			
				|  | @@ -489,6 +487,15 @@ namespace OTSGBCalculate
 | 
	
		
			
				|  |  |  							listDSuperParticles.push_back(gbp);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  | +						double dFeretDiameter = gbp->GetFeretDiameter();
 | 
	
		
			
				|  |  | +						if (dFeretDiameter >= 13)
 | 
	
		
			
				|  |  | +						{
 | 
	
		
			
				|  |  | +							// DS		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +							listDSParticles.push_back(gbp);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				else if(pGBParticle->myOTSParts.size()>= 3)
 |