А.А, Вабищевич П.М. Обчислювальна теплопередача, Москва, вид. УРСС, 2010 р. 784 с.
Додаток 1
Лістинг коду кусочно-лінійного оператора
void MathR ()
{
/ / результуюча матриця (?=M ^ (- 1) * CoefList)=new double * [TempSize]; (int i=0; i
{[i]=new double [MaterialsSize];
}=new double * [TempSize] ;/ / Матриця різниць температур=new double * [TempSize] ;/ / інвертована матриця M (int i=0; i
{[i]=new double [TempSize]; [i]=new double [TempSize];
} (int i=0; i
{(int j=0; j
{
/ / Розрахунок значень [i] [j]=fabs (Temperatures [i]-Temperatures [j]); [i] [j]=M [i] [j] ;/ / Створення копії
}
} (Mtr, TempSize) ;/ / Інвертуємо копію
/ / перемнажаем M ^ (- 1) і CoefList: (Mtr, TempSize, TempSize, CoefList, TempSize, MaterialsSize, R);
}
CDesignView :: CalcLocalCoef (double X, double Y, double Z, double cT)
{SUMM=0 ;/ / кінцевий результатiterat=0 ;/ / результат за ітераціюMatIndex=(int) Funk3 (X, Y, Z) ;/ / індекс матеріалу в точці (int j=0; j
{= CoefList [j] [MatIndex] * (cT-Temperatures [j]); +=iterat;
} SUMM;
}
Додаток 2
Лістинг коду кусочно-постійного оператора
void MathAlpha ()
{(int i=0; i
{(int j=0; j
{[0] [i] [j]=(M_at_point [0] [i] [j] + M_at_point [XSize - 1] [i] [j]) / 2; (int n =1; n
{[n] [i] [j]=(M_at_point [n] [i] [j]-M_at_point [n - 1] [i] [j]) / 2;
}
}
} (int k=0; k
{(int j=0; j
{[k] [0] [j]=(Alpha1 [k] [0] [j] + Alpha1 [k] [YSize - 1] [j]) / 2; (int m =1; m
{[k] [m] [j]=(Alpha1 [k] [m] [j]-Alpha1 [k] [m - 1] [j]) / 2;
}
}
} (int k=0; k
{(int i=0; i
{[k] [i] [0]=(Alpha2 [k] [i] [0] + Alpha2 [k] [i] [ZSize - 1]) / 2; (int l =1; l
{[k] [i] [l]=(Alpha2 [k] [i] [l]-Alpha2 [k] [i] [l - 1]) / 2;
}
}
}
} CDesignView :: Funk1 (double Xcoord, int cI, int cJ)
{SUMM=0 ;/ / РезультатIterat=0 ;/ / результат за одну ітерацію (int k=0; k
{(Xcoord-Xdiv [k] + eps2!=0) / / якщо знаменник НЕ дорівнює 0
{= Alpha3 [k] [cI] [cJ] * (fabs (Xcoord-Xdiv [k]) / (Xcoord-Xdiv [k] + eps2)); +=Iterat; p>
} / / інакше застосовуємо інший знаменник