本文整理汇总了C++中CConfig::GetDesign_Variable方法的典型用法代码示例。如果您正苦于以下问题:C++ CConfig::GetDesign_Variable方法的具体用法?C++ CConfig::GetDesign_Variable怎么用?C++ CConfig::GetDesign_Variable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CConfig
的用法示例。
在下文中一共展示了CConfig::GetDesign_Variable方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
/*--- Write an additional file with the geometric Jacobian ---*/
/*--- WARNING: This is only for serial calculations!!! ---*/
if (size == SINGLE_NODE) {
Jacobian_file.open("geo_jacobian.csv", ios::out);
Jacobian_file.precision(15);
/*--- Write the CSV file header ---*/
Comma = false;
for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) {
if (config->GetMarker_All_DV(iMarker) == YES) {
for (iVertex = 0; iVertex < boundary->nVertex[iMarker]; iVertex++) {
iPoint = boundary->vertex[iMarker][iVertex]->GetNode();
if (!Comma) { Jacobian_file << "\t\"DesignVariable\""; Comma = true;}
Jacobian_file << ", " << "\t\"" << iPoint << "\"";
}
}
}
Jacobian_file << endl;
}
}
for (iDV = 0; iDV < config->GetnDV(); iDV++) {
if (size == SINGLE_NODE) {
Jacobian_file << iDV;
}
/*--- Bump deformation for 2D problems ---*/
if (boundary->GetnDim() == 2) {
if (rank == MASTER_NODE)
cout << "Perform 2D deformation of the surface." << endl;
switch ( config->GetDesign_Variable(iDV) ) {
case COSINE_BUMP : surface_mov->SetCosBump(boundary, config, iDV, true); break;
case FOURIER : surface_mov->SetFourier(boundary, config, iDV, true); break;
case HICKS_HENNE : surface_mov->SetHicksHenne(boundary, config, iDV, true); break;
case DISPLACEMENT : surface_mov->SetDisplacement(boundary, config, iDV, true); break;
case ROTATION : surface_mov->SetRotation(boundary, config, iDV, true); break;
case NACA_4DIGITS : surface_mov->SetNACA_4Digits(boundary, config); break;
case PARABOLIC : surface_mov->SetParabolic(boundary, config); break;
}
}
/*--- Free Form deformation for 3D problems ---*/
if (boundary->GetnDim() == 3) {
if (config->GetDesign_Variable(0) == SPHERICAL) {
if (rank == MASTER_NODE) {
cout << endl << "Design variable number "<< iDV <<"." << endl;
cout << "Spherical DV: Perform 3D deformation of the surface." << endl;
}
surface_mov->SetSpherical(boundary, config, iDV, true);
}
else {
/*--- Read the FFD information in the first iteration ---*/
if (iDV == 0) {
if (rank == MASTER_NODE)
cout << "Read the FFD information from mesh file." << endl;
/*--- Read the FFD information from the grid file ---*/
示例2: main
//.........这里部分代码省略.........
ObjFunc_file << "ZONE T= \"Geometrical variables (value)\"" << endl;
for (iPlane = 0; iPlane < nPlane*9; iPlane++)
ObjFunc_file << ObjectiveFunc[iPlane] <<", ";
ObjFunc_file << Volume << endl;
ObjFunc_file.close();
}
if (config->GetGeometryMode() == GRADIENT) {
/*--- Definition of the Class for surface deformation ---*/
surface_mov = new CSurfaceMovement();
/*--- Definition of the FFD deformation class ---*/
FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD];
if (rank == MASTER_NODE)
cout << endl <<"------------- Gradient evaluation using finite differences --------------" << endl;
/*--- Write the gradient in a external file ---*/
if (rank == MASTER_NODE) {
cstr = new char [config->GetObjFunc_Grad_FileName().size()+1];
strcpy (cstr, config->GetObjFunc_Grad_FileName().c_str());
Gradient_file.open(cstr, ios::out);
}
for (iDV = 0; iDV < config->GetnDV(); iDV++) {
/*--- Free Form deformation based ---*/
if ((config->GetDesign_Variable(iDV) == FFD_CONTROL_POINT_2D) ||
(config->GetDesign_Variable(iDV) == FFD_CAMBER_2D) ||
(config->GetDesign_Variable(iDV) == FFD_THICKNESS_2D) ||
(config->GetDesign_Variable(iDV) == FFD_CONTROL_POINT) ||
(config->GetDesign_Variable(iDV) == FFD_DIHEDRAL_ANGLE) ||
(config->GetDesign_Variable(iDV) == FFD_TWIST_ANGLE) ||
(config->GetDesign_Variable(iDV) == FFD_ROTATION) ||
(config->GetDesign_Variable(iDV) == FFD_CAMBER) ||
(config->GetDesign_Variable(iDV) == FFD_THICKNESS) ) {
/*--- Read the FFD information in the first iteration ---*/
if (iDV == 0) {
if (rank == MASTER_NODE) cout << "Read the FFD information from mesh file." << endl;
/*--- Read the FFD information from the grid file ---*/
surface_mov->ReadFFDInfo(boundary, config, FFDBox, config->GetMesh_FileName(), true);
/*--- If the FFDBox was not defined in the input file ---*/
if (!surface_mov->GetFFDBoxDefinition() && (rank == MASTER_NODE)) {
cout << "The input grid doesn't have the entire FFD information!" << endl;
cout << "Press any key to exit..." << endl;
cin.get();
}
if (rank == MASTER_NODE)
cout <<"-------------------------------------------------------------------------" << endl;
}
示例3: main
//.........这里部分代码省略.........
ObjFunc_file << ObjectiveFunc[iPlane] <<", ";
ObjFunc_file << ObjectiveFunc[nPlane*9-1] << endl;
ObjFunc_file.close();
}
if (config->GetGeometryMode() == GRADIENT) {
/*--- Definition of the Class for surface deformation ---*/
surface_mov = new CSurfaceMovement();
/*--- Definition of the FFD deformation class ---*/
FFDBox = new CFreeFormDefBox*[MAX_NUMBER_FFD];
if (rank == MASTER_NODE)
cout << endl <<"------------- Gradient evaluation using finite differences --------------" << endl;
/*--- Write the gradient in a external file ---*/
if (rank == MASTER_NODE) {
cstr = new char [config->GetObjFunc_Grad_FileName().size()+1];
strcpy (cstr, config->GetObjFunc_Grad_FileName().c_str());
Gradient_file.open(cstr, ios::out);
}
for (iDV = 0; iDV < config->GetnDV(); iDV++) {
/*--- Bump deformation for 2D problems ---*/
if (boundary->GetnDim() == 2) {
if (rank == MASTER_NODE)
cout << "Perform 2D deformation of the surface." << endl;
switch ( config->GetDesign_Variable(iDV) ) {
case HICKS_HENNE : surface_mov->SetHicksHenne(boundary, config, iDV, true); break;
case DISPLACEMENT : surface_mov->SetDisplacement(boundary, config, iDV, true); break;
case ROTATION : surface_mov->SetRotation(boundary, config, iDV, true); break;
case NACA_4DIGITS : surface_mov->SetNACA_4Digits(boundary, config); break;
case PARABOLIC : surface_mov->SetParabolic(boundary, config); break;
}
}
/*--- Free Form deformation for 3D problems ---*/
else if (boundary->GetnDim() == 3) {
/*--- Read the FFD information in the first iteration ---*/
if (iDV == 0) {
if (rank == MASTER_NODE) cout << "Read the FFD information from mesh file." << endl;
/*--- Read the FFD information from the grid file ---*/
surface_mov->ReadFFDInfo(boundary, config, FFDBox, config->GetMesh_FileName(), true);
/*--- If the FFDBox was not defined in the input file ---*/
if (!surface_mov->GetFFDBoxDefinition() && (rank == MASTER_NODE)) {
cout << "The input grid doesn't have the entire FFD information!" << endl;
cout << "Press any key to exit..." << endl;
cin.get();
}
if (rank == MASTER_NODE)
cout <<"-------------------------------------------------------------------------" << endl;
}