@@ -595,9 +595,10 @@ void TMultiBase::IS_EtaCalc()
595595 pm.XetaB [k][ist] += pm.X [j]*Ez;
596596 pm.XetaA [k][ist] += pm.X [j]*CD0; // added for testing
597597 }
598- else if ( pm.SCM [k][ist] == SC_CCM )
598+ else if ( pm.SCM [k][ist] == SC_CCM || pm. SCM [k][ist] == SC_ISCCM )
599599 { // Added 25.07.03 to implement the extended CCM Nilsson ea 1996
600600// New CD version of BSM added 25.10.2004
601+ // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity
601602 pm.XetaB [k][ist] += pm.X [j] * CDb;
602603 pm.XetaA [k][ist] += pm.X [j] * CD0;
603604 }
@@ -697,6 +698,7 @@ TMultiBase::GouyChapman( long int, long int, long int k )
697698 switch ( pm.SCM [k][ist] )
698699 {
699700 case SC_CCM: // Constant-Capacitance Model Schindler, extension Nilsson
701+ case SC_ISCCM: // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity
700702 SigA = pm.Xetaf [k][ist] + XetaA[ist];
701703 SigDDL = -SigA - XetaB[ist];
702704 SigB = XetaB[ist];
@@ -796,9 +798,13 @@ TMultiBase::GouyChapman( long int, long int, long int k )
796798 pm.XpsiB [k][ist] = PsiD;
797799 break ;
798800 case SC_CCM: // Constant-Capacitance Model Schindler, ext. Nilsson
801+ case SC_ISCCM: // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity
799802 if ( pm.XcapB [k][ist] > 0.001 )
800803 { // Classic CCM Schindler with inner-sphere species only
801- PsiA = SigA / pm.XcapA [k][ist];
804+ if (pm.SCM [k][ist] == SC_ISCCM)
805+ PsiA = SigA / (sqrt (I)/pm.XcapA [k][ist]);
806+ else
807+ PsiA = SigA / pm.XcapA [k][ist];
802808 if ( fabs ( PsiA ) > 0.7 ) // truncated 0-plane potential
803809 {
804810 PsiA = PsiA<0 ? -0.7 : 0.7 ;
0 commit comments