Changeset 13413
- Timestamp:
- 09/20/12 17:40:12 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Container/Nodes.cpp
r12459 r13413 160 160 ranks=xNew<int>(numnodes); 161 161 minranks=xNew<int>(numnodes); 162 163 162 for(i=0;i<numnodes;i++)ranks[i]=num_procs; //no cpu can have rank num_procs. This is the maximum limit. 164 163 … … 171 170 * order of cpu rank. This is also why we initialized this array to num_procs.*/ 172 171 #ifdef _HAVE_MPI_ 173 MPI_Allreduce ((void*)ranks,(void*)minranks,numnodes,MPI_INT,MPI_MIN,MPI_COMM_WORLD);172 MPI_Allreduce((void*)ranks,(void*)minranks,numnodes,MPI_INT,MPI_MIN,MPI_COMM_WORLD); 174 173 #else 175 174 for(i=0;i<numnodes;i++)minranks[i]=ranks[i]; … … 329 328 void Nodes::Ranks(int* ranks,int analysis_type){ 330 329 330 extern int my_rank; 331 int sid; 332 331 333 /*Go through nodes, and for each object, report it cpu: */ 332 333 int i; 334 int rank; 335 int sid; 336 337 for(i=0;i<this->Size();i++){ 338 339 Node* node=(Node*)this->GetObjectByOffset(i); 340 341 /*Check that this node corresponds to our analysis currently being carried out: */ 342 if (node->InAnalysis(analysis_type)){ 343 344 rank=node->MyRank(); 334 for(int i=0;i<this->Size();i++){ 335 336 Node* node=(Node*)this->GetObjectByOffset(i); 337 338 /*Check that this node corresponds to our analysis currently being carried out: */ 339 if (node->InAnalysis(analysis_type)){ 340 /*Plug rank into ranks, according to sid: */ 345 341 sid=node->Sid(); 346 347 /*Plug rank into ranks, according to id: */ 348 ranks[sid]=rank; 349 } 350 } 351 return; 342 ranks[sid]=my_rank; 343 } 344 } 352 345 } 353 346 /*}}}*/ -
issm/trunk-jpl/src/c/Container/Vertices.cpp
r13410 r13413 177 177 void Vertices::Ranks(int* ranks){ 178 178 179 extern int my_rank; 180 int sid; 181 179 182 /*Go through a dataset, and for each object, report it cpu: */ 180 181 int i; 182 int rank; 183 int sid; 184 185 for(i=0;i<this->Size();i++){ 183 for(int i=0;i<this->Size();i++){ 184 /*Plug rank into ranks, according to id: */ 186 185 Vertex* vertex=(Vertex*)this->GetObjectByOffset(i); 187 rank=vertex->MyRank();188 186 sid=vertex->Sid(); 189 190 /*Plug rank into ranks, according to id: */ 191 ranks[sid]=rank; 187 ranks[sid]=my_rank; 192 188 } 193 return;194 189 } 195 190 /*}}}*/ -
issm/trunk-jpl/src/c/classes/DofIndexing.cpp
r13412 r13413 204 204 } 205 205 /*}}}*/ 206 -
issm/trunk-jpl/src/c/classes/DofIndexing.h
r13412 r13413 13 13 14 14 /*sizes: */ 15 int gsize; //number of dofs for a node16 int fsize; //number of dofs solver for17 int ssize; //number of constrained dofs15 int gsize; //number of dofs for a node 16 int fsize; //number of dofs solver for 17 int ssize; //number of constrained dofs 18 18 19 19 /*partitioning: */ 20 bool clone; //this node is replicated from another one 20 bool clone; //this node is replicated from another one 21 21 22 22 /*boundary conditions sets: */ 23 bool * f_set;//is dof on f-set (on which we solve)24 bool * s_set;//is dof on s-set (on which boundary conditions -dirichlet- are applied)25 IssmDouble * svalues;//list of constraint values. size g_size, for ease of use.23 bool *f_set; //is dof on f-set (on which we solve) 24 bool *s_set; //is dof on s-set (on which boundary conditions -dirichlet- are applied) 25 IssmDouble *svalues; //list of constraint values. size g_size, for ease of use. 26 26 27 27 /*types of dofs: */ 28 int * doftype;//approximation type of the dofs (used only for coupling), size g_size28 int *doftype; //approximation type of the dofs (used only for coupling), size g_size 29 29 30 30 /*list of degrees of freedom: */ 31 int* gdoflist; //dof list in g_set 32 int* fdoflist; //dof list in f_set 33 int* sdoflist; //dof list in s_set 34 31 int *gdoflist; //dof list in g_set 32 int *fdoflist; //dof list in f_set 33 int *sdoflist; //dof list in s_set 35 34 36 35 /*DofIndexing constructors, destructors {{{*/ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r13277 r13413 2 2 * \brief: implementation of the FemModel object 3 3 */ 4 5 4 6 5 #ifdef HAVE_CONFIG_H … … 33 32 34 33 /*Initialize internal data: */ 35 this->nummodels =nummodels;36 this->solution_type =in_solution_type;37 this->analysis_counter =nummodels-1;//point to last analysis_type carried out.38 this->results =new Results(); //not initialized by CreateDataSets34 this->nummodels = nummodels; 35 this->solution_type = in_solution_type; 36 this->analysis_counter = nummodels-1; //point to last analysis_type carried out. 37 this->results = new Results(); //not initialized by CreateDataSets 39 38 40 39 /*Dynamically allocate whatever is a list of length nummodels: */ … … 74 73 /*Add output file name to parameters: */ 75 74 this->parameters->AddObject(new StringParam(OutputfilenameEnum,outputfilename)); 76 77 75 } 78 79 76 /*}}}*/ 80 77 /*FUNCTION FemModel::destructor {{{*/ … … 153 150 /*FUNCTION FemModel::SetCurrentConfiguration(int configuration_type){{{*/ 154 151 void FemModel::SetCurrentConfiguration(int configuration_type){ 155 156 /*overload: analysis_type = configuration_type: */157 152 this->SetCurrentConfiguration(configuration_type,configuration_type); 158 153 } -
issm/trunk-jpl/src/c/classes/FemModel.h
r13277 r13413 28 28 public: 29 29 30 int 31 int 32 int * analysis_type_list;//list of analyses this femmodel is going to carry out33 int analysis_counter;//counter into analysis_type_list34 35 Elements * elements;//elements (one set for all analyses)36 Nodes * nodes;//one set of nodes37 Vertices * vertices;//one set of vertices38 Constraints * constraints;//one set of constraints. each constraint knows which analysis_type it handles39 Loads * loads;//one set of constraints. each constraint knows which analysis_type it handles40 Materials * materials;//one set of materials, for each element41 Parameters * parameters;//one set of parameters, independent of the analysis_type42 Results * results; //results that cannot be fit into the elements (such as one time constants, arrays, strings, etc ...)30 int nummodels; 31 int solution_type; 32 int *analysis_type_list; //list of analyses this femmodel is going to carry out 33 int analysis_counter; //counter into analysis_type_list 34 35 Elements *elements; //elements (one set for all analyses) 36 Nodes *nodes; //one set of nodes 37 Vertices *vertices; //one set of vertices 38 Constraints *constraints; //one set of constraints. each constraint knows which analysis_type it handles 39 Loads *loads; //one set of constraints. each constraint knows which analysis_type it handles 40 Materials *materials; //one set of materials, for each element 41 Parameters *parameters; //one set of parameters, independent of the analysis_type 42 Results *results; //results that cannot be fit into the elements 43 43 44 44 /*constructors, destructors: */ -
issm/trunk-jpl/src/c/classes/Hook.cpp
r13056 r13413 2 2 * \brief: implementation of the Hook object: see Hook.h for more explanations. 3 3 */ 4 5 4 6 5 #ifdef HAVE_CONFIG_H … … 18 17 #include "../include/include.h" 19 18 20 21 19 /*Constructor/Destructors*/ 22 20 /*FUNCTION Hook::Hook(){{{*/ 23 21 Hook::Hook(){ 24 this->num=0; 25 this->objects=NULL; 26 this->ids=NULL; 27 this->offsets=NULL; 28 return; 22 this->num = 0; 23 this->objects = NULL; 24 this->ids = NULL; 25 this->offsets = NULL; 29 26 } 30 27 /*}}}*/ 31 28 /*FUNCTION Hook::Hook(int* ids, int num){{{*/ 32 29 Hook::Hook(int* in_ids, int in_num){ 33 34 /*Intermediaries*/35 int i;36 30 37 31 /*Get number of objects to hook*/ … … 41 35 if (num==0){ 42 36 /*Empty hook*/ 43 this->ids =NULL;44 this->objects =NULL;45 this->offsets =NULL;37 this->ids = NULL; 38 this->objects = NULL; 39 this->offsets = NULL; 46 40 } 47 41 else{ … … 52 46 53 47 /*Copy ids: */ 54 for (i=0;i<this->num;i++){55 this->ids[i] =in_ids[i];56 this->objects[i] =NULL;57 this->offsets[i] =0;48 for(int i=0;i<this->num;i++){ 49 this->ids[i] = in_ids[i]; 50 this->objects[i] = NULL; 51 this->offsets[i] = 0; 58 52 } 59 53 } … … 62 56 /*FUNCTION Hook::~Hook(){{{*/ 63 57 Hook::~Hook(){ 64 /*deallocate: */65 58 xDelete<Object*>(this->objects); 66 59 xDelete<int>(this->ids); 67 60 xDelete<int>(this->offsets); 68 return;69 61 } 70 62 /*}}}*/ … … 121 113 Object* Hook::copy(void){ 122 114 123 int i;124 125 115 /*output: */ 126 116 Hook* output=NULL; … … 132 122 output->num=this->num; 133 123 if(output->num){ 134 output->objects =xNew<Object*>(output->num);135 output->ids =xNew<int>(output->num);136 output->offsets =xNew<int>(output->num);124 output->objects = xNew<Object*>(output->num); 125 output->ids = xNew<int>(output->num); 126 output->offsets = xNew<int>(output->num); 137 127 } 138 128 139 for(i =0;i<output->num;i++){140 output->objects[i] =this->objects[i];141 output->offsets[i] =this->offsets[i];142 output->ids[i] =this->ids[i];129 for(int i=0;i<output->num;i++){ 130 output->objects[i] = this->objects[i]; 131 output->offsets[i] = this->offsets[i]; 132 output->ids[i] = this->ids[i]; 143 133 } 144 134 … … 231 221 Hook* Hook::Spawn(int* indices, int numindices){ 232 222 233 int i;234 235 223 /*output: */ 236 224 Hook* output=NULL; … … 246 234 247 235 /*Else, check that we are requesting a half of num*/ 248 if 236 if(numindices>this->num) _error_("Cannot spawn hook with " << numindices << " objects from a Hook of " << this->num << " objects"); 249 237 250 238 /*go pickup the correct objects, ids and offsets :*/ … … 252 240 if(output->num<1) _error_("Trying to spawn an empty ElementProperties!"); 253 241 254 output->objects =xNew<Object*>(output->num);255 output->ids =xNew<int>(output->num);256 output->offsets =xNew<int>(output->num);257 258 for(i =0;i<output->num;i++){259 output->objects[i] =this->objects[indices[i]];260 output->ids[i] =this->ids[indices[i]];261 output->offsets[i] =this->offsets[indices[i]];242 output->objects = xNew<Object*>(output->num); 243 output->ids = xNew<int>(output->num); 244 output->offsets = xNew<int>(output->num); 245 246 for(int i=0;i<output->num;i++){ 247 output->objects[i] = this->objects[indices[i]]; 248 output->ids[i] = this->ids[indices[i]]; 249 output->offsets[i] = this->offsets[indices[i]]; 262 250 } 263 251 -
issm/trunk-jpl/src/c/classes/Hook.h
r12832 r13413 19 19 private: 20 20 21 int num;//number of objects being hooked onto22 Object ** objects; //list of object pointers. we do not allocate objects, just a list a pointers, that will get to point to the real objects from a dataset.23 int * ids;//list of object ids, to go look for them in datasets.24 int * offsets;//list of object offsets into datasets, to speed up lookup.21 int num; //number of objects being hooked onto 22 Object **objects; //list of object pointers 23 int *ids; //list of object ids, to go look for them in datasets. 24 int *offsets; //list of object offsets into datasets, to speed up lookup. 25 25 26 26 public: -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r13412 r13413 24 24 /*FUNCTION IoModel::IoModel(){{{*/ 25 25 IoModel::IoModel(){ 26 this->fid =NULL;27 this->data =NULL;28 this->independents =NULL;29 this->constants =NULL;30 31 this->my_elements =NULL;32 this->my_nodes =NULL;33 this->my_vertices =NULL;34 this->singlenodetoelementconnectivity =NULL;35 this->numbernodetoelementconnectivity =NULL;36 37 this->nodecounter =0;38 this->loadcounter =0;39 this->constraintcounter =0;26 this->fid = NULL; 27 this->data = NULL; 28 this->independents = NULL; 29 this->constants = NULL; 30 31 this->my_elements = NULL; 32 this->my_nodes = NULL; 33 this->my_vertices = NULL; 34 this->singlenodetoelementconnectivity = NULL; 35 this->numbernodetoelementconnectivity = NULL; 36 37 this->nodecounter = 0; 38 this->loadcounter = 0; 39 this->constraintcounter = 0; 40 40 } 41 41 /*}}}*/ … … 62 62 63 63 /*Initialize permanent data: */ 64 this->my_elements =NULL;65 this->my_nodes =NULL;66 this->my_vertices =NULL;67 this->singlenodetoelementconnectivity =NULL;68 this->numbernodetoelementconnectivity =NULL;69 70 this->nodecounter =0;71 this->loadcounter =0;72 this->constraintcounter =0;64 this->my_elements = NULL; 65 this->my_nodes = NULL; 66 this->my_vertices = NULL; 67 this->singlenodetoelementconnectivity = NULL; 68 this->numbernodetoelementconnectivity = NULL; 69 70 this->nodecounter = 0; 71 this->loadcounter = 0; 72 this->constraintcounter = 0; 73 73 } 74 74 /*}}}*/ … … 200 200 void IoModel::DeleteData(int num,...){ 201 201 202 va_list ap; 203 int dataenum; 204 int i; 205 DoubleMatParam* parameter=NULL; 202 va_list ap; 203 int dataenum; 204 DoubleMatParam *parameter = NULL; 206 205 207 206 /*Go through the entire list of enums and delete the corresponding data from the iomodel-data dataset: */ 208 209 207 va_start(ap,num); 210 for(i = 0; i<num; i++){208 for(int i=0; i<num; i++){ 211 209 dataenum=va_arg(ap, int); 212 210 _assert_(dataenum<MaximumNumberOfEnums); … … 217 215 va_end(ap); 218 216 } /*}}}*/ 219 /*FUNCTION IoModel::DeleteData(IssmDouble* {{{*/217 /*FUNCTION IoModel::DeleteData(IssmDouble* vector, int dataenum) {{{*/ 220 218 void IoModel::DeleteData(IssmDouble* vector, int dataenum){ 221 219 … … 475 473 #endif 476 474 477 /*cast to bool: */478 475 /*Assign output pointers: */ 479 476 *pboolean=(bool)booleanint; … … 514 511 515 512 /*output: */ 516 IssmPDouble 517 int code;513 IssmPDouble scalar; 514 int code; 518 515 519 516 /*Set file pointer to beginning of the data: */ … … 550 547 if(code!=4)_error_("expecting a string for enum " << EnumToStringx(data_enum)); 551 548 552 /*Now fetch: */553 554 549 /*We have to read a string from disk. First read the dimensions of the string, then the string: */ 555 550 if(my_rank==0){ … … 578 573 string[0]='\0'; 579 574 } 580 581 575 582 576 /*Assign output pointers: */ … … 603 597 if((code!=5) && (code!=6) && (code!=7))_error_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum)); 604 598 605 /*Now fetch: */606 607 599 /*We have to read a matrix from disk. First read the dimensions of the matrix, then the whole matrix: */ 608 600 /*numberofelements: */ … … 673 665 if((code!=5) && (code!=6) && (code!=7))_error_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(data_enum)); 674 666 675 /*Now fetch: */676 677 667 /*We have to read a matrix from disk. First read the dimensions of the matrix, then the whole matrix: */ 678 668 /*numberofelements: */ … … 794 784 795 785 int i; 796 797 786 extern int my_rank; 798 787 799 788 /*output: */ 800 IssmDouble ** matrices=NULL;801 int * mdims=NULL;802 int * ndims=NULL;803 int numrecords=0;789 IssmDouble **matrices = NULL; 790 int *mdims = NULL; 791 int *ndims = NULL; 792 int numrecords = 0; 804 793 805 794 /*intermediary: */ … … 930 919 void IoModel::FetchData(int num,...){ 931 920 932 va_list ap;933 int dataenum;934 IssmDouble * matrix=NULL;935 int M,N;936 int i; 937 938 /*Go through the entire list of enums and fetch the corresponding data.Add it to the iomodel->data dataset. Everything939 * we fetch is a IssmDouble* : */921 va_list ap; 922 int dataenum; 923 IssmDouble *matrix = NULL; 924 int M,N; 925 926 /*Go through the entire list of enums and fetch the corresponding data. 927 * Add it to the iomodel->data dataset. Everything 928 * we fetch is a IssmDouble* : */ 940 929 941 930 va_start(ap,num); 942 for(i =0; i<num; i++){931 for(int i=0; i<num; i++){ 943 932 944 933 dataenum=va_arg(ap, int); … … 964 953 } 965 954 va_end(ap); 966 967 955 } 968 956 /*}}}*/ … … 982 970 int nel; 983 971 int numberofelements; 984 985 972 986 973 /*variables being fetched: */ … … 1309 1296 if((code!=5) && (code!=6) && (code!=7))_error_("expecting a IssmDouble, integer or boolean matrix for enum " << EnumToStringx(independent_enum)); 1310 1297 1311 /*Now fetch: */1312 1313 1298 /*We have to read a matrix from disk. First read the dimensions of the matrix, then the whole matrix: */ 1314 1299 /*numberofelements: */ -
issm/trunk-jpl/src/c/classes/IoModel.h
r13290 r13413 19 19 20 20 private: 21 Parameters *constants; //this dataset holds all IssmDouble, int, bool and char *parameters read in from the input file.*21 Parameters *constants; //this dataset holds all IssmDouble, int, bool and char from input 22 22 23 23 public: 24 IssmDouble **data; 24 IssmDouble **data; //this dataset holds temporary data, memory intensive. 25 25 26 26 /*This data needs to stay memory resident at all time, even if it's memory intensive: */ 27 FILE *fid; //pointer to input file27 FILE *fid; //pointer to input file 28 28 bool *my_elements; 29 29 bool *my_nodes; -
issm/trunk-jpl/src/c/classes/Patch.cpp
r12832 r13413 3 3 */ 4 4 5 /*Include files : {{{*/5 /*Include files */ 6 6 #ifdef HAVE_CONFIG_H 7 7 #include <config.h> … … 19 19 #include "../shared/shared.h" 20 20 #include "../include/include.h" 21 /*}}}*/22 21 23 22 /*Object constructors and destructors:*/ 24 23 /*FUNCTION Patch::Patch() default constructor {{{*/ 25 24 Patch::Patch(){ 26 this->numrows =0;27 this->numcols =0;28 this->maxvertices =0;29 this->maxnodes =0;30 this->values =NULL;25 this->numrows = 0; 26 this->numcols = 0; 27 this->maxvertices = 0; 28 this->maxnodes = 0; 29 this->values = NULL; 31 30 } 32 31 /*}}}*/ … … 34 33 Patch::Patch(int in_numrows, int in_maxvertices, int in_maxnodes){ 35 34 36 int i,j;37 35 this->numrows=in_numrows; 38 36 this->maxvertices=in_maxvertices; 39 37 this->maxnodes=in_maxnodes; 40 41 38 this->numcols=1 //enum_type 42 39 +1 //step … … 52 49 } 53 50 else{ 54 55 for(i =0;i<this->numrows;i++){56 for( j=0;j<this->numcols;j++){51 this->values=xNew<IssmDouble>(this->numcols*this->numrows); 52 for(int i=0;i<this->numrows;i++){ 53 for(int j=0;j<this->numcols;j++){ 57 54 this->values[i*this->numcols+j]=NAN; 58 55 } … … 98 95 99 96 /*Let's remember what is on a row: 100 enum_type step time element_id interpolation vertices_ids nodal_values 101 */ 97 enum_type step time element_id interpolation vertices_ids nodal_values */ 102 98 row[0]=enum_type; 103 99 row[1]=(IssmDouble)step; -
issm/trunk-jpl/src/c/classes/Patch.h
r12821 r13413 20 20 */ 21 21 22 23 22 #ifndef _PATCH_H_ 24 23 #define _PATCH_H_ … … 29 28 public: 30 29 31 int numrows; //number of results held in Patch object 32 int numcols; //number of columns 33 int maxvertices; //maxvertices corresponds to largest amount of vertices on a given element, determined by the geometry. 34 int maxnodes; // maxnodes corresponds to the largest amout of nodes on a given element, determined by the interpolation type. 35 36 IssmDouble* values; //result values 30 int numrows; //number of results held in Patch object 31 int numcols; //number of columns 32 int maxvertices; //largest amount of vertices on a given element, determined by geometry 33 int maxnodes; //the largest amout of nodes on a given element, determined by interpolation 34 IssmDouble *values; //result values 37 35 38 36 Patch(); -
issm/trunk-jpl/src/c/classes/Update.h
r12821 r13413 33 33 34 34 #endif //ifndef _UPDATE_H_ 35 -
issm/trunk-jpl/src/c/classes/objects/Contour.h
r13220 r13413 22 22 public: 23 23 24 int id;25 int nods;//number of vertices in the contour26 doubletype *x;27 doubletype *y;28 bool closed;//is this contour closed?24 int id; 25 int nods; //number of vertices in the contour 26 doubletype *x; 27 doubletype *y; 28 bool closed; //is this contour closed? 29 29 30 30 /*Contour constructors, destructors :*/ 31 /*FUNCTION Contour() default constructor{{{*/31 /*FUNCTION Contour() {{{*/ 32 32 Contour(){ 33 this->id =0;34 this->nods =0;35 this->x =NULL;36 this->y =NULL;37 this->closed =false;33 this->id = 0; 34 this->nods = 0; 35 this->x = NULL; 36 this->y = NULL; 37 this->closed = false; 38 38 } 39 39 /*}}}*/ … … 41 41 Contour(int pid,int pnods, doubletype* px, doubletype* py,bool pclosed){ 42 42 43 this->id =pid;44 this->nods =pnods;45 this->closed =pclosed;43 this->id = pid; 44 this->nods = pnods; 45 this->closed = pclosed; 46 46 if(nods){ 47 47 this->x=xNew<doubletype>(nods); … … 52 52 } 53 53 /*}}}*/ 54 /*FUNCTION Contour() default constructor{{{*/54 /*FUNCTION ~Contour() {{{*/ 55 55 ~Contour(){ 56 56 xDelete<doubletype>(this->x); … … 59 59 /*}}}*/ 60 60 61 62 61 /*Object virtual function resolutoin: */ 63 62 /*FUNCTION Echo(){{{*/ 64 63 void Echo(void){ 65 66 int i; 67 68 _printLine_("Contour: " << id); 69 _printLine_(" nods: " << nods); 70 _printLine_(" closed: " << (closed?"true":"false")); 64 _printLine_(" Contour: " << id); 65 _printLine_(" nods: " << nods); 66 _printLine_(" closed: " << (closed?"true":"false")); 71 67 if(nods){ 72 _printLine_(" x ,y:");73 for(i =0;i<nods;i++){74 _printLine_(i << ": " << x[i] << " |" << y[i]);68 _printLine_(" x , y:"); 69 for(int i=0;i<nods;i++){ 70 _printLine_(i << ": " << x[i] << " | " << y[i]); 75 71 } 76 72 } … … 88 84 /*}}}*/ 89 85 /*FUNCTION MyRank{{{*/ 90 int 86 int MyRank(void){ 91 87 extern int my_rank; 92 93 88 return my_rank; 94 89 } … … 96 91 /*FUNCTION ObjectEnum{{{*/ 97 92 int ObjectEnum(void){ 98 99 93 return ContourEnum; 100 101 94 } 102 95 /*}}}*/ 103 96 /*FUNCTION copy {{{*/ 104 97 Object* copy() { 105 106 98 return new Contour(*this); 107 108 99 } 109 100 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Node.h
r13410 r13413 25 25 public: 26 26 27 int id;//unique arbitrary id.28 int sid; //sid for "serial" id, ie the rank of this node in the nodes dataset, if the dataset was serial on 1 cpu.27 int id; //unique arbitrary id. 28 int sid; //"serial" id (rank of this node if the dataset was serial on 1 cpu) 29 29 30 DofIndexing 31 Hook *hvertex;32 Inputs * inputs;//properties of this node33 int 34 IssmDouble 30 DofIndexing indexing; 31 Hook *hvertex; 32 Inputs *inputs; //properties of this node 33 int analysis_type; 34 IssmDouble coord_system[3][3]; 35 35 36 36 /*Node constructors, destructors {{{*/ … … 48 48 /*}}}*/ 49 49 /*Update virtual functions definitions: {{{*/ 50 51 50 void InputUpdateFromVector(IssmDouble* vector, int name, int type); 52 51 void InputUpdateFromVector(int* vector, int name, int type); … … 98 97 void VecMerge(Vector<IssmDouble>* ug, IssmDouble* vector_serial,int setenum); 99 98 void VecReduce(Vector<IssmDouble>* vector, IssmDouble* ug_serial,int setnum); 100 101 /*}}}*/102 /*Dof Object routines {{{*/103 99 void DistributeDofs(int* pdofcount,int setenum); 104 100 void OffsetDofs(int dofcount,int setenum); -
issm/trunk-jpl/src/c/classes/objects/Object.h
r12821 r13413 20 20 virtual void DeepEcho()=0; 21 21 virtual int Id()=0; 22 virtual int MyRank()=0;23 22 virtual int ObjectEnum()=0; 24 23 virtual Object* copy()=0;
Note:
See TracChangeset
for help on using the changeset viewer.