|
@@ -75,7 +75,7 @@ namespace OTSClassifyEngine
|
|
|
{// identified, return TRUE
|
|
|
a_nIncId = nIncId;
|
|
|
IDENTIFIED_INC_GRP_ID grpid;
|
|
|
- GroupClassify(listElChemsIncNoFe, grpid);
|
|
|
+ GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
|
|
|
a_GrpId = (int)grpid;
|
|
|
return TRUE;
|
|
|
}
|
|
@@ -94,7 +94,7 @@ namespace OTSClassifyEngine
|
|
|
// identified, return TRUE
|
|
|
a_nIncId = nIncId;
|
|
|
IDENTIFIED_INC_GRP_ID grpid;
|
|
|
- GroupClassify(listElChemsIncNoFe, grpid);
|
|
|
+ GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
|
|
|
a_GrpId = (int)grpid;
|
|
|
return TRUE;
|
|
|
}
|
|
@@ -102,7 +102,7 @@ namespace OTSClassifyEngine
|
|
|
// can't identify this inclusion
|
|
|
a_nIncId = (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED;
|
|
|
IDENTIFIED_INC_GRP_ID grpid;
|
|
|
- GroupClassify(listElChemsIncNoFe, grpid);
|
|
|
+ GroupClassify(a_pPartSTDData,listElChemsIncNoFe,nIncId, grpid);
|
|
|
a_GrpId = (int)grpid;
|
|
|
return TRUE;
|
|
|
}
|
|
@@ -348,54 +348,75 @@ namespace OTSClassifyEngine
|
|
|
return TRUE;
|
|
|
}
|
|
|
|
|
|
- BOOL COTSClassifyEng::GroupClassify(CElementChemistriesList& a_listElChemsIncNoFe, IDENTIFIED_INC_GRP_ID& a_GrpId)
|
|
|
+ BOOL COTSClassifyEng::GroupClassify(CInclutionSTDDataPtr a_pPartSTDData,CElementChemistriesList& a_listElChemsIncNoFe,int incId, IDENTIFIED_INC_GRP_ID& a_GrpId)
|
|
|
{
|
|
|
|
|
|
- double dOMolar = 0;
|
|
|
- double dSMolar = 0;
|
|
|
- double dNMolar = 0;
|
|
|
- for (auto pElChem : a_listElChemsIncNoFe)
|
|
|
+ double dOWeight = 0;
|
|
|
+ double dSWeight = 0;
|
|
|
+ double dNWeight = 0;
|
|
|
+ /*double weightsum=0;
|
|
|
+ for (auto ele : a_listElChemsIncNoFe)
|
|
|
{
|
|
|
- // create a new element chemistry
|
|
|
+ weightsum += ele->GetPercentage();
|
|
|
+
|
|
|
+ }*/
|
|
|
+
|
|
|
+ auto stdItm =a_pPartSTDData->GetSTDItemById( incId);
|
|
|
+ if (incId == (int)OTS_PARTICLE_TYPE::NOT_IDENTIFIED)
|
|
|
+ {
|
|
|
+ a_GrpId = IDENTIFIED_INC_GRP_ID::Others;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ auto stdName = stdItm->GetName();
|
|
|
+
|
|
|
+ if (stdName.CompareNoCase(_T("MnS"))==0)
|
|
|
+ {
|
|
|
+
|
|
|
+ a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
+ for (auto pElChem : a_listElChemsIncNoFe)
|
|
|
+ {
|
|
|
|
|
|
if (pElChem->GetName().CompareNoCase(STR_O) == 0)
|
|
|
{
|
|
|
|
|
|
- dOMolar = pElChem->GetMolarPercentage();
|
|
|
+ dOWeight = pElChem->GetPercentage();
|
|
|
|
|
|
}
|
|
|
else if (pElChem->GetName().CompareNoCase(STR_SUL) == 0)
|
|
|
{
|
|
|
|
|
|
- dSMolar = pElChem->GetMolarPercentage();
|
|
|
+ dSWeight = pElChem->GetPercentage();
|
|
|
|
|
|
}
|
|
|
else if (pElChem->GetName().CompareNoCase(STR_N) == 0)
|
|
|
{
|
|
|
- dNMolar = pElChem->GetMolarPercentage();
|
|
|
+ dNWeight = pElChem->GetPercentage();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
- if (dOMolar >= MIN_ELEMENT_SUM && dSMolar< MIN_ELEMENT_SUM )
|
|
|
+ if (dOWeight >= MIN_ELEMENT_SUM && dSWeight< MIN_ELEMENT_SUM )
|
|
|
{
|
|
|
|
|
|
a_GrpId = IDENTIFIED_INC_GRP_ID::OXIDE;
|
|
|
|
|
|
}
|
|
|
- else if ( dSMolar >= MIN_ELEMENT_SUM && dOMolar < MIN_ELEMENT_SUM)
|
|
|
+ else if ( dSWeight >= MIN_ELEMENT_SUM && dOWeight < MIN_ELEMENT_SUM)
|
|
|
{
|
|
|
a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE;
|
|
|
}
|
|
|
- else if (dOMolar >= MIN_ELEMENT_SUM && dSMolar > MIN_ELEMENT_SUM )
|
|
|
+ else if (dOWeight >= MIN_ELEMENT_SUM && dSWeight >= MIN_ELEMENT_SUM )
|
|
|
{
|
|
|
a_GrpId = IDENTIFIED_INC_GRP_ID::SULFIDE_OXIDE;
|
|
|
}
|
|
|
- else if ( dNMolar >= MIN_ELEMENT_SUM)
|
|
|
+ else if ( dNWeight >= MIN_ELEMENT_SUM)
|
|
|
{
|
|
|
a_GrpId = IDENTIFIED_INC_GRP_ID::CARBONNITRIDE_NITRIDE;
|
|
|
}
|
|
@@ -403,6 +424,8 @@ namespace OTSClassifyEngine
|
|
|
{
|
|
|
a_GrpId = IDENTIFIED_INC_GRP_ID::Others;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
@@ -477,7 +500,7 @@ namespace OTSClassifyEngine
|
|
|
LogErrorTrace(__FILE__, __LINE__, _T("COTSClassifyEng::SulClassify: failed to call GetClassifySTDItem method."));
|
|
|
return FALSE;
|
|
|
}
|
|
|
-
|
|
|
+ //GetSTDItemNameById
|
|
|
// check if element chemistries list contain any sulfur
|
|
|
CElementChemistryPtr pSulElChem = GetNamedElementChemistry(a_listElChemsIncNoFe, STR_SUL);
|
|
|
if (!pSulElChem)
|