本文整理汇总了C++中List::Add_To_List方法的典型用法代码示例。如果您正苦于以下问题:C++ List::Add_To_List方法的具体用法?C++ List::Add_To_List怎么用?C++ List::Add_To_List使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类List
的用法示例。
在下文中一共展示了List::Add_To_List方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calloc
// *****************************************************************************
// *****************************************************************************
void Euler2D_Mesh::Tag_Boundary_Nodes() {
int i, n1, n2, bctype, ibn;
List bnode;
// Tag the Boundary Nodes Points
// Method of Tagging is not robust as boundary connecting points have Tag
// which are tagged last.
BNTag = (int *) calloc(mesh.nnodes, sizeof (int));
for (i = 0; i < mesh.nnodes; i++)
BNTag[i] = -1;
for (i = 0; i < mesh.nbedges; i++) {
n1 = edge[boundaryEdge[i].edgeNumber].node1;
n2 = edge[boundaryEdge[i].edgeNumber].node2;
bctype = -1;
// BCType 0: 0-999
if ((boundaryEdge[i].bcType >= 0) && (boundaryEdge[i].bcType <= 999))
bctype = 0;
// BCType 1: 1000-1999 : Solid Wall
if ((boundaryEdge[i].bcType >= 1000) && (boundaryEdge[i].bcType <= 1999))
bctype = 1;
// BCType 2: 2000-2999 : Dirchlet Boundary Condition
if ((boundaryEdge[i].bcType >= 2000) && (boundaryEdge[i].bcType <= 2999))
bctype = 2;
// BCType 2: 3000-3999 : Freestream
if ((boundaryEdge[i].bcType >= 3000) && (boundaryEdge[i].bcType <= 3999))
bctype = 3;
if (bctype != -1) {
BNTag[n1] = bctype;
BNTag[n2] = bctype;
}
}
mesh.nbnodes = 0;
for (i = 0; i < mesh.nnodes; i++) {
if (BNTag[i] != -1)
mesh.nbnodes++;
}
#ifdef VERBOSE
info("NBNodes = %d", mesh.nbnodes);
#endif
boundaryNode = (BOUNDARYNODE *) calloc(mesh.nbnodes, sizeof (BOUNDARYNODE));
ibn = 0;
for (i = 0; i < mesh.nbedges; i++) {
n1 = edge[boundaryEdge[i].edgeNumber].node1;
n2 = edge[boundaryEdge[i].edgeNumber].node2;
// BCType 0: 0-999
if ((boundaryEdge[i].bcType >= 0) && (boundaryEdge[i].bcType <= 999)) {
if (!bnode.Is_In_List(n1)) {
bnode.Add_To_List(n1);
boundaryNode[ibn].bcType = BNTag[n1];
boundaryNode[ibn].nodeNumber = n1;
boundaryNode[ibn].constant = 0.0;
ibn++;
}
if (!bnode.Is_In_List(n2)) {
bnode.Add_To_List(n2);
boundaryNode[ibn].bcType = BNTag[n2];
boundaryNode[ibn].nodeNumber = n2;
boundaryNode[ibn].constant = 0.0;
ibn++;
}
}
// BCType 1: 1000-1999 : Solid Wall
if ((boundaryEdge[i].bcType >= 1000) && (boundaryEdge[i].bcType <= 1999)) {
if (!bnode.Is_In_List(n1)) {
bnode.Add_To_List(n1);
boundaryNode[ibn].bcType = BNTag[n1];
boundaryNode[ibn].nodeNumber = n1;
boundaryNode[ibn].constant = 0.0;
ibn++;
}
if (!bnode.Is_In_List(n2)) {
bnode.Add_To_List(n2);
boundaryNode[ibn].bcType = BNTag[n2];
boundaryNode[ibn].nodeNumber = n2;
boundaryNode[ibn].constant = 0.0;
ibn++;
}
}
// BCType 2: 2000-2999 : Dirchlet Boundary Condition
if ((boundaryEdge[i].bcType >= 2000) && (boundaryEdge[i].bcType <= 2999)) {
if (BNTag[n1] != 2) {
if (!bnode.Is_In_List(n1)) {
bnode.Add_To_List(n1);
boundaryNode[ibn].bcType = BNTag[n1];
boundaryNode[ibn].nodeNumber = n1;
if (boundaryEdge[i].bcType == 2000) {
boundaryNode[ibn].constant = node[n1].x;
} else {
boundaryNode[ibn].constant = boundaryEdge[i].c1;
}
ibn++;
}
//.........这里部分代码省略.........