source: issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp@ 4236

Last change on this file since 4236 was 4236, checked in by Eric.Larour, 15 years ago

New Container directory, with the format DataSet files. Split the header files from DataSet.h into Inputs.h, Elements.h, etc ...

File size: 2.4 KB
Line 
1/*
2 * CreateNodesDiagnosticHutter.c:
3 */
4
5#include "../../../Container/Container.h"
6#include "../../../toolkits/toolkits.h"
7#include "../../../io/io.h"
8#include "../../../EnumDefinitions/EnumDefinitions.h"
9#include "../../../objects/objects.h"
10#include "../../../shared/shared.h"
11#include "../../MeshPartitionx/MeshPartitionx.h"
12#include "../../../include/include.h"
13#include "../ModelProcessorx.h"
14
15void CreateNodesDiagnosticHutter(Nodes** pnodes, IoModel* iomodel,ConstDataHandle iomodel_handle){
16
17 /*Intermediary*/
18 int i;
19 bool continuous_galerkin=true;
20
21 /*DataSets: */
22 Nodes* nodes = NULL;
23
24 /*Recover pointer: */
25 nodes=*pnodes;
26
27 /*Create nodes if they do not exist yet*/
28 if(!nodes) nodes = new Nodes(NodesEnum);
29
30 /*Now, is the flag ishutter on? otherwise, do nothing: */
31 if (!iomodel->ishutter)goto cleanup_and_return;
32
33 /*Continuous Galerkin partition of nodes: */
34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin);
35
36 /*First fetch data: */
37 if (iomodel->dim==3){
38 IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
39 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
40 }
41 IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
42 IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
43 IoModelFetchData(&iomodel->gridonhutter,NULL,NULL,iomodel_handle,"gridonhutter");
44 IoModelFetchData(&iomodel->gridonicesheet,NULL,NULL,iomodel_handle,"gridonicesheet");
45 IoModelFetchData(&iomodel->gridoniceshelf,NULL,NULL,iomodel_handle,"gridoniceshelf");
46 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
47 CreateNumberNodeToElementConnectivity(iomodel);
48
49 for (i=0;i<iomodel->numberofvertices;i++){
50
51 if(iomodel->my_vertices[i]){
52
53 /*Add node to nodes dataset: */
54 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i+1,i,iomodel,DiagnosticHutterAnalysisEnum));
55
56 }
57 }
58
59 /*Clean fetched data: */
60 xfree((void**)&iomodel->deadgrids);
61 xfree((void**)&iomodel->gridonbed);
62 xfree((void**)&iomodel->gridonsurface);
63 xfree((void**)&iomodel->gridonhutter);
64 xfree((void**)&iomodel->uppernodes);
65 xfree((void**)&iomodel->gridonicesheet);
66 xfree((void**)&iomodel->gridoniceshelf);
67 xfree((void**)&iomodel->elements);
68 xfree((void**)&iomodel->numbernodetoelementconnectivity);
69
70 cleanup_and_return:
71
72 /*Assign output pointer: */
73 *pnodes=nodes;
74}
Note: See TracBrowser for help on using the repository browser.