本文整理汇总了C++中CGeometry::SetEdges方法的典型用法代码示例。如果您正苦于以下问题:C++ CGeometry::SetEdges方法的具体用法?C++ CGeometry::SetEdges怎么用?C++ CGeometry::SetEdges使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGeometry
的用法示例。
在下文中一共展示了CGeometry::SetEdges方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[]) {
/*--- Local variables ---*/
unsigned short iDV, nZone = 1, iFFDBox, iPlane, nPlane, iVar;
double *ObjectiveFunc, *ObjectiveFunc_New, *Gradient, delta_eps, MinPlane, MaxPlane, MinXCoord, MaxXCoord,
**Plane_P0, **Plane_Normal, Volume, Volume_New, Volume_Grad;
vector<double> *Xcoord_Airfoil, *Ycoord_Airfoil, *Zcoord_Airfoil, *Variable_Airfoil;
char grid_file[MAX_STRING_SIZE], buffer_char[50], out_file[MAX_STRING_SIZE];
char *cstr;
ofstream Gradient_file, ObjFunc_file;
int rank = MASTER_NODE;
int size = SINGLE_NODE;
/*--- MPI initialization ---*/
#ifdef HAVE_MPI
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
#endif
/*--- Pointer to different structures that will be used throughout the entire code ---*/
CFreeFormDefBox** FFDBox = NULL;
CConfig *config = NULL;
CGeometry *boundary = NULL;
CSurfaceMovement *surface_mov = NULL;
/*--- Definition of the class for the definition of the problem ---*/
if (argc == 2) config = new CConfig(argv[1], SU2_GEO, ZONE_0, nZone, 0, VERB_HIGH);
else {
strcpy (grid_file, "default.cfg");
config = new CConfig(grid_file, SU2_GEO, ZONE_0, nZone, 0, VERB_HIGH);
}
/*--- Change the name of the input-output files for the parallel computation ---*/
#ifdef HAVE_MPI
config->SetFileNameDomain(rank+1);
#endif
/*--- Definition of the class for the boundary of the geometry ---*/
boundary = new CBoundaryGeometry(config, config->GetMesh_FileName(), config->GetMesh_FileFormat());
/*--- Set the number of sections, and allocate the memory ---*/
if (boundary->GetnDim() == 2) nPlane = 1;
else nPlane = config->GetnSections();
Xcoord_Airfoil = new vector<double>[nPlane];
Ycoord_Airfoil = new vector<double>[nPlane];
Zcoord_Airfoil = new vector<double>[nPlane];
Variable_Airfoil = new vector<double>[nPlane];
Plane_P0 = new double*[nPlane];
Plane_Normal = new double*[nPlane];
for(iPlane = 0; iPlane < nPlane; iPlane++ ) {
Plane_P0[iPlane] = new double[3];
Plane_Normal[iPlane] = new double[3];
}
ObjectiveFunc = new double[nPlane*20];
ObjectiveFunc_New = new double[nPlane*20];
Gradient = new double[nPlane*20];
for (iVar = 0; iVar < nPlane*20; iVar++) {
ObjectiveFunc[iVar] = 0.0;
ObjectiveFunc_New[iVar] = 0.0;
Gradient[iVar] = 0.0;
}
/*--- Evaluation of the objective function ---*/
if (rank == MASTER_NODE)
cout << endl <<"----------------------- Preprocessing computations ----------------------" << endl;
/*--- Boundary geometry preprocessing ---*/
if (rank == MASTER_NODE) cout << "Identify vertices." <<endl;
boundary->SetVertex();
/*--- Compute elements surrounding points & points surrounding points ---*/
if (rank == MASTER_NODE) cout << "Setting local point and element connectivity." << endl;
boundary->SetPoint_Connectivity();
boundary->SetEdges();
/*--- Create the control volume structures ---*/
if (rank == MASTER_NODE) cout << "Set boundary control volume structure." << endl;
boundary->SetBoundControlVolume(config, ALLOCATE);
/*--- Compute the surface curvature ---*/
if (rank == MASTER_NODE) cout << "Compute the surface curvature." << endl;
//.........这里部分代码省略.........
示例2: main
int main(int argc, char *argv[]) {
/*--- Variable definitions ---*/
char file_name[200];
unsigned short nZone = 1;
#ifndef NO_MPI
#ifdef WINDOWS
MPI_Init(&argc,&argv);
#else
MPI::Init(argc, argv);
#endif
#endif
/*--- Definition of the config problem ---*/
CConfig *config;
if (argc == 2) config = new CConfig(argv[1], SU2_MAC, ZONE_0, nZone, VERB_HIGH);
else { strcpy (file_name, "default.cfg"); config = new CConfig(file_name, SU2_MAC, ZONE_0, nZone, VERB_HIGH); }
/*--- Definition of the Class for the geometry ---*/
CGeometry *geometry; geometry = new CGeometry;
geometry = new CPhysicalGeometry(config, ZONE_0, nZone);
/*--- Perform the non-dimensionalization, in case any values are needed ---*/
config->SetNondimensionalization(geometry->GetnDim(), ZONE_0);
cout << endl <<"----------------------- Preprocessing computations ----------------------" << endl;
/*--- Compute elements surrounding points, points surrounding points, and elements surronding elements ---*/
cout << "Setting local point and element connectivity." <<endl;
geometry->SetEsuP(); geometry->SetPsuP(); geometry->SetEsuE();
/*--- Check the orientation before computing geometrical quantities ---*/
cout << "Check numerical grid orientation." <<endl;
geometry->SetBoundVolume(); geometry->Check_Orientation(config);
/*--- Create the edge structure ---*/
cout << "Identify faces, edges and vertices." <<endl;
geometry->SetFaces(); geometry->SetEdges(); geometry->SetVertex(config); geometry->SetCG();
/*--- Create the control volume structures ---*/
cout << "Set control volume structure." << endl;
geometry->SetControlVolume(config, ALLOCATE); geometry->SetBoundControlVolume(config, ALLOCATE);
/*--- Set the near-field and interface boundary conditions ---*/
geometry->MatchNearField(config);
if (config->GetKind_Adaptation() != NONE) {
cout << endl <<"--------------------- Start numerical grid adaptation -------------------" << endl;
/*-- Definition of the Class for grid adaptation ---*/
CGridAdaptation *grid_adaptation;
grid_adaptation = new CGridAdaptation(geometry, config);
/*--- Read the flow solution and/or the adjoint solution
and choose the elements to adapt ---*/
if ((config->GetKind_Adaptation() != NONE) && (config->GetKind_Adaptation() != FULL)
&& (config->GetKind_Adaptation() != WAKE) && (config->GetKind_Adaptation() != TWOPHASE)
&& (config->GetKind_Adaptation() != SMOOTHING) && (config->GetKind_Adaptation() != SUPERSONIC_SHOCK))
grid_adaptation->GetFlowSolution(geometry, config);
switch (config->GetKind_Adaptation()) {
case NONE:
break;
case SMOOTHING:
config->SetSmoothNumGrid(true);
grid_adaptation->SetNo_Refinement(geometry, 1);
break;
case FULL:
grid_adaptation->SetComplete_Refinement(geometry, 1);
break;
case WAKE:
grid_adaptation->SetWake_Refinement(geometry, 1);
break;
case TWOPHASE:
grid_adaptation->SetTwoPhase_Refinement(geometry, 1);
break;
case SUPERSONIC_SHOCK:
grid_adaptation->SetSupShock_Refinement(geometry, config);
break;
case FULL_FLOW:
grid_adaptation->SetComplete_Refinement(geometry, 1);
break;
case FULL_ADJOINT:
grid_adaptation->GetAdjSolution(geometry, config);
grid_adaptation->SetComplete_Refinement(geometry, 1);
break;
case FULL_LINEAR:
grid_adaptation->GetLinSolution(geometry, config);
grid_adaptation->SetComplete_Refinement(geometry, 1);
break;
case GRAD_FLOW:
grid_adaptation->SetIndicator_Flow(geometry, config, 1);
break;
case GRAD_ADJOINT:
grid_adaptation->GetAdjSolution(geometry, config);
grid_adaptation->SetIndicator_Adj(geometry, config, 1);
break;
case GRAD_FLOW_ADJ:
//.........这里部分代码省略.........
示例3: main
int main(int argc, char *argv[]) {
char buffer_vtk[100], buffer_plt[100];
string MeshFile;
unsigned short nZone = 1;
#ifndef NO_MPI
#ifdef WINDOWS
MPI_Init(&argc,&argv);
#else
MPI::Init(argc, argv);
#endif
#endif
/*--- Definition of the class for the definition of the problem ---*/
CConfig *config;
if (argc == 2) config = new CConfig(argv[1], SU2_PBC, ZONE_0, nZone, 0, VERB_HIGH);
else {
char grid_file[200];
strcpy (grid_file, "default.cfg");
config = new CConfig(grid_file, SU2_PBC, ZONE_0, nZone, 0, VERB_HIGH);
}
/*--- Definition of the class for the geometry ---*/
CGeometry *geometry; geometry = new CGeometry;
geometry = new CPhysicalGeometry(config, ZONE_0, nZone);
/*--- Perform the non-dimensionalization, in case any values are needed ---*/
config->SetNondimensionalization(geometry->GetnDim(), ZONE_0);
cout << endl <<"----------------------- Preprocessing computations ----------------------" << endl;
/*--- Compute elements surrounding points, points surrounding points, and elements surrounding elements ---*/
cout << "Setting local point and element connectivity." <<endl;
geometry->SetEsuP(); geometry->SetPsuP(); geometry->SetEsuE();
/*--- Check the orientation before computing geometrical quantities ---*/
cout << "Checking the numerical grid orientation." <<endl;
geometry->SetBoundVolume(); geometry->Check_Orientation(config);
/*--- Create the edge structure ---*/
cout << "Identifying edges and vertices." <<endl;
geometry->SetEdges(); geometry->SetVertex(config);
/*--- Compute center of gravity ---*/
cout << "Computing centers of gravity." << endl;
geometry->SetCG();
/*--- Create the control volume structures ---*/
cout << "Setting the control volume structure." << endl;
geometry->SetControlVolume(config, ALLOCATE);
geometry->SetBoundControlVolume(config, ALLOCATE);
cout << endl <<"-------------------- Setting the periodic boundaries --------------------" << endl;
/*--- Set periodic boundary conditions ---*/
geometry->SetPeriodicBoundary(config);
/*--- Original grid for debugging purposes ---*/
strcpy (buffer_plt, "periodic_original.plt"); geometry->SetTecPlot(buffer_plt);
/*--- Create a new grid with the right periodic boundary ---*/
CGeometry *periodic; periodic = new CPeriodicGeometry(geometry, config);
periodic->SetPeriodicBoundary(geometry, config);
periodic->SetMeshFile(geometry, config, config->GetMesh_Out_FileName());
/*--- Output of the grid for debuging purposes ---*/
strcpy (buffer_plt, "periodic_halo.plt"); periodic->SetTecPlot(buffer_plt);
#ifndef NO_MPI
#ifdef WINDOWS
MPI_Finalize();
#else
MPI::Finalize();
#endif
#endif
/*--- End solver ---*/
cout << endl <<"------------------------- Exit Success (SU2_PBC) ------------------------" << endl << endl;
return EXIT_SUCCESS;
}