本文整理汇总了C++中COutput::SetSensitivity_Files方法的典型用法代码示例。如果您正苦于以下问题:C++ COutput::SetSensitivity_Files方法的具体用法?C++ COutput::SetSensitivity_Files怎么用?C++ COutput::SetSensitivity_Files使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COutput
的用法示例。
在下文中一共展示了COutput::SetSensitivity_Files方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
/*--- Create the dual control volume structures ---*/
if (rank == MASTER_NODE) cout << "Setting the bound control volume structure." << endl;
geometry_container[iZone]->SetBoundControlVolume(config_container[ZONE_0], ALLOCATE);
/*--- Store the global to local mapping after preprocessing. ---*/
if (rank == MASTER_NODE) cout << "Storing a mapping from global to local point index." << endl;
geometry_container[iZone]->SetGlobal_to_Local_Point();
/*--- Load the surface sensitivities from file. This is done only
once: if this is an unsteady problem, a time-average of the surface
sensitivities at each node is taken within this routine. ---*/
if (!config_container[iZone]->GetDiscrete_Adjoint()){
if (rank == MASTER_NODE) cout << "Reading surface sensitivities at each node from file." << endl;
geometry_container[iZone]->SetBoundSensitivity(config_container[iZone]);
} else {
if (rank == MASTER_NODE) cout << "Reading volume sensitivities at each node from file." << endl;
grid_movement[iZone] = new CVolumetricMovement(geometry_container[iZone], config_container[iZone]);
geometry_container[iZone]->SetSensitivity(config_container[iZone]);
if (rank == MASTER_NODE)
cout << endl <<"---------------------- Mesh sensitivity computation ---------------------" << endl;
grid_movement[iZone]->SetVolume_Deformation(geometry_container[iZone], config_container[iZone], false, true);
}
}
if (config_container[ZONE_0]->GetDiscrete_Adjoint()){
if (rank == MASTER_NODE)
cout << endl <<"------------------------ Mesh sensitivity Output ------------------------" << endl;
output = new COutput(config_container[ZONE_0]);
output->SetSensitivity_Files(geometry_container, config_container, nZone);
}
if (config_container[ZONE_0]->GetDesign_Variable(0) != NONE){
/*--- Initialize structure to store the gradient ---*/
Gradient = new su2double*[config_container[ZONE_0]->GetnDV()];
for (iDV = 0; iDV < config_container[ZONE_0]->GetnDV(); iDV++){
Gradient[iDV] = new su2double[config_container[ZONE_0]->GetnDV_Value(iDV)];
for (iDV_Value = 0; iDV_Value < config_container[ZONE_0]->GetnDV_Value(iDV); iDV_Value++){
Gradient[iDV][iDV_Value] = 0.0;
}
}
if (rank == MASTER_NODE)
cout << endl <<"---------- Start gradient evaluation using sensitivity information ----------" << endl;
/*--- Write the gradient in a external file ---*/
if (rank == MASTER_NODE) {
cstr = new char [config_container[ZONE_0]->GetObjFunc_Grad_FileName().size()+1];
strcpy (cstr, config_container[ZONE_0]->GetObjFunc_Grad_FileName().c_str());
Gradient_file.open(cstr, ios::out);
}
/*--- Loop through each zone and add it's contribution to the gradient array ---*/
for (iZone = 0; iZone < nZone; iZone++){
/*--- Definition of the Class for surface deformation ---*/