Changeset 4983


Ignore:
Timestamp:
08/04/10 13:17:11 (15 years ago)
Author:
Mathieu Morlighem
Message:

Deleted VecExtrude (Now, only the elements can extrude an input) and got rif of upper_node (did not work anyway in DG)

Location:
issm/trunk/src
Files:
1 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r4969 r4983  
    542542                                        ./modules/Qmux/SpawnCore.cpp\
    543543                                        ./modules/Qmux/SpawnCoreSerial.cpp\
    544                                         ./modules/VecExtrudex/VecExtrudex.cpp\
    545                                         ./modules/VecExtrudex/VecExtrudex.h\
    546544                                        ./modules/InputToResultx/InputToResultx.cpp\
    547545                                        ./modules/InputToResultx/InputToResultx.h\
     
    561559libISSM_a_CXXFLAGS += -DMX_COMPAT_32 -m32
    562560endif
    563 
    564 
    565561
    566562#Parallel compilation
     
    10771073                                        ./modules/Qmux/SpawnCore.cpp\
    10781074                                        ./modules/Qmux/SpawnCoreParallel.cpp\
    1079                                         ./modules/VecExtrudex/VecExtrudex.cpp\
    1080                                         ./modules/VecExtrudex/VecExtrudex.h\
    10811075                                        ./modules/InputToResultx/InputToResultx.cpp\
    10821076                                        ./modules/InputToResultx/InputToResultx.h\
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp

    r4919 r4983  
    4141        if (iomodel->dim==3){
    4242                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    43                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    4443        }
    4544        IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
     
    9190        xfree((void**)&iomodel->gridonbed);
    9291        xfree((void**)&iomodel->gridonsurface);
    93         xfree((void**)&iomodel->uppernodes);
    9492        xfree((void**)&iomodel->gridonicesheet);
    9593        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp

    r4919 r4983  
    3434        if (iomodel->dim==3){
    3535                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    36                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3736        }
    3837        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    5554        xfree((void**)&iomodel->gridonbed);
    5655        xfree((void**)&iomodel->gridonsurface);
    57         xfree((void**)&iomodel->uppernodes);
    5856        xfree((void**)&iomodel->gridonicesheet);
    5957        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp

    r4919 r4983  
    3434        if (iomodel->dim==3){
    3535                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    36                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3736        }
    3837        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    5554        xfree((void**)&iomodel->gridonbed);
    5655        xfree((void**)&iomodel->gridonsurface);
    57         xfree((void**)&iomodel->uppernodes);
    5856        xfree((void**)&iomodel->gridonicesheet);
    5957        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r4919 r4983  
    4242        if (iomodel->dim==3){
    4343                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    44                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    4544        }
    4645       
     
    6160        xfree((void**)&iomodel->gridoniceshelf);
    6261        xfree((void**)&iomodel->deadgrids);
    63         xfree((void**)&iomodel->uppernodes);
    6462
    6563        cleanup_and_return:
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp

    r4919 r4983  
    3737        if (iomodel->dim==3){
    3838                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    39                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    4039        }
    4140        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    6261        xfree((void**)&iomodel->gridonsurface);
    6362        xfree((void**)&iomodel->gridonhutter);
    64         xfree((void**)&iomodel->uppernodes);
    6563        xfree((void**)&iomodel->gridonicesheet);
    6664        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp

    r4919 r4983  
    3737        /*First fetch data: */
    3838        IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    39         IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    4039        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
    4140        IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
     
    5958        xfree((void**)&iomodel->gridonbed);
    6059        xfree((void**)&iomodel->gridonsurface);
    61         xfree((void**)&iomodel->uppernodes);
    6260        xfree((void**)&iomodel->gridonstokes);
    6361        xfree((void**)&iomodel->borderstokes);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp

    r4919 r4983  
    3636        /*First fetch data: */
    3737        IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    38         IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3938        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
    4039        IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
     
    5655        xfree((void**)&iomodel->gridonbed);
    5756        xfree((void**)&iomodel->gridonsurface);
    58         xfree((void**)&iomodel->uppernodes);
    5957        xfree((void**)&iomodel->gridonicesheet);
    6058        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp

    r4919 r4983  
    3434        if (iomodel->dim==3){
    3535                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    36                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3736        }
    3837        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    5554        xfree((void**)&iomodel->gridonbed);
    5655        xfree((void**)&iomodel->gridonsurface);
    57         xfree((void**)&iomodel->uppernodes);
    5856        xfree((void**)&iomodel->gridonicesheet);
    5957        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp

    r4919 r4983  
    4141        if (iomodel->dim==3){
    4242                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    43                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    4443        }
    4544        IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
     
    9089        xfree((void**)&iomodel->gridonbed);
    9190        xfree((void**)&iomodel->gridonsurface);
    92         xfree((void**)&iomodel->uppernodes);
    9391        xfree((void**)&iomodel->gridonicesheet);
    9492        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp

    r4919 r4983  
    3434        if (iomodel->dim==3){
    3535                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    36                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3736        }
    3837        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    5554        xfree((void**)&iomodel->gridonbed);
    5655        xfree((void**)&iomodel->gridonsurface);
    57         xfree((void**)&iomodel->uppernodes);
    5856        xfree((void**)&iomodel->gridonicesheet);
    5957        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp

    r4919 r4983  
    3434        if (iomodel->dim==3){
    3535                IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
    36                 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids");
    3736        }
    3837        IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
     
    5554        xfree((void**)&iomodel->gridonbed);
    5655        xfree((void**)&iomodel->gridonsurface);
    57         xfree((void**)&iomodel->uppernodes);
    5856        xfree((void**)&iomodel->gridonicesheet);
    5957        xfree((void**)&iomodel->gridoniceshelf);
  • issm/trunk/src/c/modules/modules.h

    r4969 r4983  
    7878#include "./UpdateGeometryx/UpdateGeometryx.h"
    7979#include "./UpdateVertexPositionsx/UpdateVertexPositionsx.h"
    80 #include "./VecExtrudex/VecExtrudex.h"
    8180#include "./VerticesDofx/VerticesDofx.h"
    8281
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r4978 r4983  
    56325632}
    56335633/*}}}*/
    5634 /*FUNCTION Penta::VecExtrude {{{1*/
    5635 void  Penta::VecExtrude(Vec vector,double* vector_serial,int iscollapsed){
    5636 
    5637         /* node data: */
    5638         int   i;
    5639         Node* node=NULL;
    5640         int   extrude=0;
    5641 
    5642         /*inputs: */
    5643         bool collapse;
    5644         bool onbed;
    5645 
    5646         /*retrieve inputs :*/
    5647         inputs->GetParameterValue(&collapse,CollapseEnum);
    5648         inputs->GetParameterValue(&onbed,ElementOnBedEnum);
    5649 
    5650         /*Figure out if we should extrude for this element: */
    5651         if (iscollapsed){
    5652                 /*From higher level, we are told to extrude only elements that have the collapse flag on: */
    5653                 if (collapse)extrude=1;
    5654                 else extrude=0;
    5655         }
    5656         else{
    5657                 /*From higher level, we are told to extrude all elements: */
    5658                 extrude=1;
    5659         }
    5660 
    5661         /*Now, extrusion starts from the bed on, so double check this element is on
    5662          * the bedrock: */
    5663         if(onbed==0)extrude=0;
    5664 
    5665         /*Go on and extrude vector: */
    5666         if (extrude){
    5667 
    5668                 /* node data: */
    5669                 int          dof1;
    5670                 double       vectorel;
    5671 
    5672                 /*this penta is a collapsed macayeal. For each node on the base of this penta,
    5673                  * we grab the vector. Once we know the vector, we follow the upper nodes,
    5674                  * inserting the same vector value into vector, until we reach the surface: */
    5675                 for(i=0;i<3;i++){
    5676 
    5677                         node=nodes[i]; //base nodes
    5678                         dof1=node->GetDofList1();
    5679 
    5680                         /*get vector for this base node: */
    5681                         vectorel=vector_serial[dof1];
    5682 
    5683                         //go throvectorn all nodes which sit on top of this node, until we reach the surface,
    5684                         //and plvector  vector in vector
    5685                         for(;;){
    5686 
    5687                                 dof1=node->GetDofList1();
    5688                                 VecSetValues(vector,1,&dof1,&vectorel,INSERT_VALUES);
    5689 
    5690                                 if (node->IsOnSurface())break;
    5691                                 /*get next node: */
    5692                                 node=node->GetUpperNode();
    5693                         }
    5694                 }
    5695         }
    5696 }
    5697 /*}}}*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r4978 r4983  
    175175                Tria*     SpawnTria(int g0, int g1, int g2);
    176176                void      SurfaceNormal(double* surface_normal, double xyz_list[3][3]);
    177                 void      VecExtrude(Vec vector,double* vector_serial,int iscollapsed);
    178177                /*}}}*/
    179178};
  • issm/trunk/src/c/objects/IoModel.cpp

    r4919 r4983  
    4444                xfree((void**)&this->elements2d);
    4545                xfree((void**)&this->deadgrids);
    46                 xfree((void**)&this->uppernodes);
    4746                xfree((void**)&this->upperelements);
    4847                xfree((void**)&this->lowerelements);
     
    243242        this->deadgrids=NULL;
    244243        this->numlayers=0;
    245         this->uppernodes=NULL;
    246244        this->upperelements=NULL;
    247245        this->lowerelements=NULL;
  • issm/trunk/src/c/objects/IoModel.h

    r4919 r4983  
    3939                double* deadgrids;
    4040                int     numlayers;
    41                 double* uppernodes;
    4241                double* upperelements;
    4342                double* lowerelements;
  • issm/trunk/src/c/objects/Node.cpp

    r4907 r4983  
    2424        this->inputs=NULL;
    2525        this->hvertex=NULL;
    26         this->hupper_node=NULL;
    2726        return;
    2827}
    2928/*}}}*/
    30 /*FUNCTION Node::Node(int id, int vertex_id, int uppernode_id, int numdofs, NodeProperties*) {{{1*/
    31 Node::Node(int node_id,int node_sid, int node_vertex_id, int node_upper_node_id, int node_numdofs):
     29/*FUNCTION Node::Node(int id, int vertex_id, int numdofs, NodeProperties*) {{{1*/
     30Node::Node(int node_id,int node_sid, int node_vertex_id, int node_numdofs):
    3231        indexing(node_numdofs){
    3332
     
    3534        this->sid=node_sid;
    3635        this->inputs=new Inputs();
    37        
    3836        this->hvertex=new Hook(&node_vertex_id,1);
    39     this->hupper_node=new Hook(&node_upper_node_id,1);
    40 
    41 }
    42 /*}}}*/
    43 /*FUNCTION Node::Node(int id, DofIndexing* indexing, Hook* vertex, Hook* uppernode,Inputs* inputs,int analysis_type){{{1*/
    44 Node::Node(int node_id,int node_sid, DofIndexing* node_indexing, Hook* node_vertex, Hook* node_upper_node,Inputs* node_inputs,int analysis_type):
     37
     38}
     39/*}}}*/
     40/*FUNCTION Node::Node(int id, DofIndexing* indexing, Hook* vertex, Inputs* inputs,int analysis_type){{{1*/
     41Node::Node(int node_id,int node_sid, DofIndexing* node_indexing, Hook* node_vertex,Inputs* node_inputs,int analysis_type):
    4542            indexing(node_indexing),
    46                 hvertex(node_vertex),
    47                 hupper_node(node_upper_node) {
    48 
    49             /*all the initialization has been done by the initializer, just fill in the id: */
    50             this->id=node_id;
    51             this->sid=node_sid;
    52                 this->analysis_type=analysis_type;
    53 
    54                 if(node_inputs){
    55                         this->inputs=(Inputs*)node_inputs->Copy();
    56                 }
    57                 else{
    58                         this->inputs=new Inputs();
    59                 }
     43                hvertex(node_vertex)
     44{
     45
     46        /*all the initialization has been done by the initializer, just fill in the id: */
     47        this->id=node_id;
     48        this->sid=node_sid;
     49        this->analysis_type=analysis_type;
     50
     51        if(node_inputs){
     52                this->inputs=(Inputs*)node_inputs->Copy();
     53        }
     54        else{
     55                this->inputs=new Inputs();
     56        }
    6057}
    6158/*}}}*/
     
    6663        int k;
    6764        int numdofs;
    68         int upper_node_id;
    6965
    7066        /*id: */
     
    7773        this->indexing.Init(numdofs);
    7874
    79         /*hooks: */
    80         if (iomodel->dim==3){
    81                 if (isnan(iomodel->uppernodes[io_index])){
    82                         upper_node_id=this->id; //nodes on surface do not have upper nodes, only themselves.
    83                 }
    84                 else{
    85                         upper_node_id=(int)iomodel->uppernodes[io_index];
    86                 }
    87         }
    88         else{
    89                 /*If we are running 2d, upper_node does not mean much. Just point towards itself!:*/
    90                 upper_node_id=this->id;
    91         }
    92 
     75        /*Hooks*/
    9376        this->hvertex=new Hook(&vertex_id,1); //node id is the same as the vertex id, continuous galerkin!
    94         this->hupper_node=new Hook(&upper_node_id,1);
    9577
    9678        //intialize inputs, and add as many inputs per element as requested:
     
    178160        delete inputs;
    179161        delete hvertex;
    180         delete hupper_node;
    181162        return;
    182163}
     
    193174        indexing.Echo();
    194175        printf("   hvertex:     not displayed\n");
    195         printf("   hupper_node: not displayed\n");
    196176        printf("   inputs:      %p\n",inputs);
    197177
     
    209189        printf("Vertex:\n");
    210190        hvertex->DeepEcho();
    211         printf("Upper node:\n");
    212         //Do not Deepecho the upper_node otherwise DeepEcho will go crazy!
    213         hupper_node->Echo();
    214191        printf("   inputs\n");
    215192        inputs->DeepEcho();
     
    252229        indexing.Marshall(&marshalled_dataset);
    253230        hvertex->Marshall(&marshalled_dataset);
    254         hupper_node->Marshall(&marshalled_dataset);
    255231
    256232        /*Marshall inputs: */
     
    274250                indexing.MarshallSize()+
    275251                hvertex->MarshallSize()+
    276                 hupper_node->MarshallSize()+
    277252                inputs->MarshallSize()+
    278253                sizeof(analysis_type)+
     
    298273        indexing.Demarshall(&marshalled_dataset);
    299274        hvertex=new Hook(); hvertex->Demarshall(&marshalled_dataset);
    300         hupper_node=new Hook(); hupper_node->Demarshall(&marshalled_dataset);
    301275
    302276        /*demarshall inputs: */
     
    318292Object* Node::copy() {
    319293               
    320         return new Node(this->id,this->sid,&this->indexing, this->hvertex,this->hupper_node,this->inputs,this->analysis_type);
     294        return new Node(this->id,this->sid,&this->indexing, this->hvertex,this->inputs,this->analysis_type);
    321295
    322296}
     
    333307         * datasets, using internal ids and offsets hidden in hooks: */
    334308        hvertex->configure(verticesin);
    335         hupper_node->configure(nodesin);
    336309
    337310}
     
    344317         * datasets, using internal ids and offsets hidden in hooks: */
    345318        hvertex->configure(verticesin);
    346         hupper_node->configure(nodesin);
    347319
    348320}
     
    502474}
    503475/*}}}*/
    504 /*FUNCTION Node::VecExtrude {{{1*/
    505 void  Node::VecExtrude(Vec vector,double* vector_serial){
    506                
    507         /* node data: */
    508         int   numberofdofspernode;
    509         Node* node=NULL;
    510         int   i;
    511 
    512         bool onbed;
    513 
    514         /*recover parameters: */
    515         inputs->GetParameterValue(&onbed,NodeOnBedEnum);
    516 
    517         /*Is this node on bed? :*/
    518         if (onbed){
    519 
    520                 /* node data: */
    521                 int          dof1;
    522                 double       vectorel;
    523 
    524                 //initilaize node and get dof1
    525                 node=this;
    526                 dof1=node->GetVertexDof();
    527 
    528                 /*get vector for this base node: */
    529                 vectorel=vector_serial[dof1];
    530 
    531                 //go throvectorn all nodes which sit on top of this node, until we reach the surface,
    532                 //and plvector  vector in vector
    533                 for(;;){
    534 
    535                         dof1=node->GetVertexDof();
    536                         VecSetValues(vector,1,&dof1,&vectorel,INSERT_VALUES);
    537 
    538                         if (node->IsOnSurface())break;
    539                         /*get next node: */
    540                         node=node->GetUpperNode();
    541                 }
    542         }
    543 }
    544 /*}}}*/
    545476/*FUNCTION Node::FreezeDof{{{1*/
    546477void  Node::FreezeDof(int dof){
     
    573504        vertex=(Vertex*)hvertex->delivers();
    574505        return vertex->sigma;
    575 }
    576 /*}}}*/
    577 /*FUNCTION Node::GetUpperNode {{{1*/
    578 Node* Node::GetUpperNode(){
    579         Node* upper_node=NULL;
    580         upper_node=(Node*)hupper_node->delivers();
    581         return upper_node;
    582506}
    583507/*}}}*/
  • issm/trunk/src/c/objects/Node.h

    r4907 r4983  
    2828                DofIndexing    indexing;
    2929                Hook*          hvertex;
    30                 Hook*          hupper_node;
    3130                Inputs*        inputs; //properties of this node
    3231                int            analysis_type;
     
    3635                /*Node constructors, destructors {{{1*/
    3736                Node();
    38                 Node(int id,int sid, int vertex_id, int upper_node_id, int numberofdofs);
    39                 Node(int id,int sid, DofIndexing* indexing, Hook* vertex, Hook* upper_node, Inputs* inputs,int analysis_type);
     37                Node(int id,int sid, int vertex_id,int numberofdofs);
     38                Node(int id,int sid, DofIndexing* indexing, Hook* vertex, Inputs* inputs,int analysis_type);
    4039                Node(int node_id,int node_sid, int vertex_id,int io_index, IoModel* iomodel,int analysis_type);
    4140                ~Node();
     
    8483                double GetZ();
    8584                double GetSigma();
    86                 Node* GetUpperNode();
    8785                int   IsOnBed();
    8886                int   IsOnSurface();
     
    9088                int   IsOnShelf();
    9189                int   IsOnSheet();
    92                 void  VecExtrude(Vec vector,double* vector_serial);
    9390                /*}}}*/
    9491                /*Dof Object routines {{{1*/
  • issm/trunk/src/m/classes/public/marshall.m

    r4739 r4983  
    4343        WriteData(fid,md.gridonpattyn,'Mat','gridonpattyn');
    4444end
    45 WriteData(fid,md.uppergrids,'Mat','uppergrids');
    4645WriteData(fid,md.upperelements,'Mat','upperelements');
    4746WriteData(fid,md.lowerelements,'Mat','lowerelements');
Note: See TracChangeset for help on using the changeset viewer.