@@ -90,8 +90,8 @@ class CAvgGrad_TurbSA final : public CAvgGrad_Scalar<FlowIndices> {
9090 /* --- For Jacobians -> Use of TSL approx. to compute derivatives of the gradients ---*/
9191 su2double diffusion_coefficient = nu_e/sigma - cb2_sigma*nu_c;
9292 if (implicit) {
93- Jacobian_i[0 ][0 ] = diffusion_coefficient * -proj_vector_ij; // exact: ((1+cb2)*0.5 * Proj_Mean_GradScalarVar[0]-nu_e*proj_vector_ij)/sigma - cb2_sigma * (Proj_Mean_GradScalarVar[0] - ScalarVar_i[0] * proj_vector_ij);
94- Jacobian_j[0 ][0 ] = diffusion_coefficient * proj_vector_ij; // exact: ((1+cb2)*0.5 * Proj_Mean_GradScalarVar[0]+nu_e*proj_vector_ij)/sigma - cb2_sigma * ScalarVar_i[0] * proj_vector_ij;
93+ Jacobian_i[0 ][0 ] = 0.5 * ( diffusion_coefficient * -proj_vector_ij) ; // exact: ((1+cb2)*0.5 * Proj_Mean_GradScalarVar[0]-nu_e*proj_vector_ij)/sigma - cb2_sigma * (Proj_Mean_GradScalarVar[0] - ScalarVar_i[0] * proj_vector_ij);
94+ Jacobian_j[0 ][0 ] = 0.5 * ( diffusion_coefficient * proj_vector_ij) ; // exact: ((1+cb2)*0.5 * Proj_Mean_GradScalarVar[0]+nu_e*proj_vector_ij)/sigma - cb2_sigma * ScalarVar_i[0] * proj_vector_ij;
9595 }
9696 }
9797
@@ -184,38 +184,40 @@ class CAvgGrad_TurbSA_Neg final : public CAvgGrad_Scalar<FlowIndices> {
184184 su2double term_2 = cb2*nu_tilde_i*fn_i* Proj_Mean_GradScalarVar[0 ]/sigma;
185185 Flux[0 ] = term_1 - term_2;
186186
187- /* --- Buffer to store the values (prints values of all nodes per iteration) DELTE LATER
188- unsigned long iter = config->GetMultizone_Problem() ? config->GetOuterIter() : config->GetInnerIter();
189- std::ofstream URF_log_file
187+ /* --- Buffer to store the values (prints values of all nodes per iteration) DELTE LATER */
190188
191- URF_log_file.open("diffusion_term.dat", std::ios::app);
192- if (!URF_log_file.is_open()) {
193- std::cerr << "Unable to open under_relaxation_buffer.dat" << std::endl;
194- }
189+ // unsigned long iter = config->GetMultizone_Problem() ? config->GetOuterIter() : config->GetInnerIter();
190+ // std::ofstream URF_log_file;
195191
196- if (URF_log_file.is_open())
197- URF_log_file << "Iteration: " << iter << std::endl;
198- URF_log_file << "Term 1: " << term_1/Proj_Mean_GradScalarVar[0] << std::endl;
199- URF_log_file << "Term 2: " << term_2/Proj_Mean_GradScalarVar[0] << std::endl;
200- URF_log_file << "Total: " << (term_1 - term_2)/Proj_Mean_GradScalarVar[0] << std::endl;
201- URF_log_file << std::endl;
202- }
192+ // URF_log_file.open("diffusion_term.dat", std::ios::app);
193+ // if (!URF_log_file.is_open()) {
194+ // std::cerr << "Unable to open under_relaxation_buffer.dat" << std::endl;
195+ // }
196+
197+
198+ // if (URF_log_file.is_open()) {
199+ // URF_log_file << "Iteration: " << iter << std::endl;
200+ // URF_log_file << "Term 1: " << (nu_ij + (1 + cb2)*nu_tilde_ij*fn_i)/sigma << std::endl;
201+ // URF_log_file << "Term 2: " << cb2*nu_tilde_i*fn_i/sigma << std::endl;
202+ // URF_log_file << "total: " << (nu_ij + (1 + cb2)*nu_tilde_ij*fn_i)/sigma - cb2*nu_tilde_i*fn_i/sigma << std::endl;
203+ // URF_log_file << std::endl;
204+ // }
203205
204- if (URF_log_file.is_open()) {
205- URF_log_file.close();
206- } --- */
206+ // if (URF_log_file.is_open()) {
207+ // URF_log_file.close();
208+ // }
207209
208210 /* --- For Jacobians -> Use of TSL approx. to compute derivatives of the gradients
209211 * To form the exact jacobians, use the chain and product rules.
210- * The diffusion coefficient following Diskin's approach is: A = (nu_ij + (1+cb2)*nut_tilde_ij -cb2*nu_tilde_i)*fn_i = B*fni
212+ * The diffusion coefficient following Diskin's approach is: A = (nu_ij + (1+cb2)*nut_tilde_ij -cb2*nu_tilde_i)*fn_i = B*fni + nu_ij
211213 * dA/dnut_i = dB/dnut_i *fni + dfni/dnut_i * B
212214 * dA/dnut_j = dB/dnut_j *fni + dfni/dnut_j * B
213215 * Flux = A*Proj_Mean_GradScalarVar[0]
214216 * dFlux_dnuti = dA/dnut_i*Proj_Mean_GradScalarVar[0] + A*proj_vector_ij
215217 * dFlux_dnutj = dA/dnut_j*Proj_Mean_GradScalarVar[0] - A*proj_vector_ij
216218 * ---*/
217219
218- su2double B = (nu_ij + ( 1 + cb2)*nu_tilde_ij) - cb2*nu_tilde_i;
220+ su2double B = (1 + cb2)*nu_tilde_ij - cb2*nu_tilde_i;
219221
220222 su2double dfni_dnut_i = -1 * 6.0 *(cb2-1 )*cn1*pow (nu_i+nu_j,3.0 ) * pow (((cb2-1 )*nu_tilde_i-(cb2+1 )*nu_tilde_j),2.0 ) / pow ((pow (((cb2+1 )*nu_tilde_i - (cb2+1 )*nu_tilde_j),3.0 ) + cn1*pow ((nu_i+nu_j),3.0 )),2.0 );
221223 su2double dfni_dnut_j = 6.0 *(cb2-1 )*cn1*pow (nu_i+nu_j,3.0 ) * pow (((cb2+1 )*nu_tilde_j-(cb2-1 )*nu_tilde_i),2.0 ) / pow ((pow (((cb2+1 )*nu_tilde_j - (cb2-1 )*nu_tilde_i),3.0 ) - cn1*pow ((nu_i+nu_j),3.0 )),2.0 );
@@ -226,9 +228,12 @@ class CAvgGrad_TurbSA_Neg final : public CAvgGrad_Scalar<FlowIndices> {
226228 su2double dA_dnut_i = (dB_dnut_i *fn_i + dfni_dnut_i * B)/sigma;
227229 su2double dA_dnut_j = (dB_dnut_j *fn_i + dfni_dnut_j * B)/sigma;
228230
231+ /* Assuming forzen diffusion coefficients:*/
232+ su2double diffusion_coefficient = (nu_ij + (1 + cb2)*nu_tilde_ij*fn_i) /sigma - cb2*nu_tilde_i*fn_i/sigma;
233+
229234 if (implicit) {
230- Jacobian_i[0 ][0 ] = dA_dnut_i*Proj_Mean_GradScalarVar[0 ] + B*fn_i*proj_vector_ij/sigma;
231- Jacobian_j[0 ][0 ] = dA_dnut_j*Proj_Mean_GradScalarVar[0 ] - B*fn_i*proj_vector_ij/sigma;
235+ Jacobian_i[0 ][0 ] = 0.5 * diffusion_coefficient * -proj_vector_ij; // exact: 0.5* ( dA_dnut_i*Proj_Mean_GradScalarVar[0] + B*fn_i*proj_vector_ij/sigma) ;
236+ Jacobian_j[0 ][0 ] = 0.5 * diffusion_coefficient * proj_vector_ij; // exact: 0.5* ( dA_dnut_j*Proj_Mean_GradScalarVar[0] - B*fn_i*proj_vector_ij/sigma) ;
232237 }
233238 }
234239
0 commit comments