Changeset 87


Ignore:
Timestamp:
04/28/09 15:11:08 (16 years ago)
Author:
Eric.Larour
Message:

Added upper node for VelocityExtrude capability. Added deadgrids.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/ModelProcessorx/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp

    r72 r87  
    6666        double tria_meanvel;/*!scaling ratio for velocities*/
    6767        double tria_epsvel; /*!minimum velocity to avoid infinite velocity ratios*/
    68         double tria_viscosity_overshoot;
    6968
    7069        /*matice constructor input: */
     
    118117        int node_onbed;
    119118        int node_onsurface;
     119        int node_upper_node_id;
    120120        int node_numdofs;
    121121
     
    274274                        tria_epsvel=model->epsvel;
    275275
    276                         /*viscosity_overshoot*/
    277                         tria_viscosity_overshoot=model->viscosity_overshoot;
    278 
    279276                        /*Create tria element using its constructor:*/
    280                         tria=new Tria(tria_id, tria_mid, tria_mparid, tria_g, tria_h, tria_s, tria_b, tria_k, tria_friction_type, tria_p, tria_q, tria_shelf, tria_meanvel, tria_epsvel, tria_viscosity_overshoot);
     277                        tria=new Tria(tria_id, tria_mid, tria_mparid, tria_g, tria_h, tria_s, tria_b, tria_k, tria_friction_type, tria_p, tria_q, tria_shelf, tria_meanvel, tria_epsvel);
    281278
    282279                        /*Add tria element to elements dataset: */
     
    537534        if (strcmp(model->meshtype,"3d")==0){
    538535                ModelFetchData((void**)&model->deadgrids,NULL,NULL,model_handle,"deadgrids","Matrix","Mat");
     536                ModelFetchData((void**)&model->uppernodes,NULL,NULL,model_handle,"uppergrids","Matrix","Mat");
    539537        }
    540538        ModelFetchData((void**)&model->x,NULL,NULL,model_handle,"x","Matrix","Mat");
     
    576574                node_onbed=(int)model->gridonbed[i];
    577575                node_onsurface=(int)model->gridonsurface[i];
     576               
     577                if (strcmp(model->meshtype,"3d")==0){
     578                        if (isnan(model->uppernodes[i])){
     579                                node_upper_node_id=node_id;  //nodes on surface do not have upper nodes, only themselves.
     580                        }
     581                        else{
     582                                node_upper_node_id=(int)model->uppernodes[i];
     583                        }
     584                }
     585                else{
     586                        /*If we are running 2d, upper_node does not mean much. Just point towards itself!:*/
     587                        node_upper_node_id=node_id;
     588                }
    578589
    579590                /*Create node using its constructor: */
    580                 node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface);
     591                node=new Node(node_id,node_partitionborder,node_numdofs,node_x,node_onbed,node_onsurface,node_upper_node_id);
    581592
    582593                /*set single point constraints.: */
    583594                if (strcmp(model->meshtype,"3d")==0){
    584                         /*On a 3d mesh, we may have collapsed grids. Spc all their dofs: */
     595                        /*On a 3d mesh, we may have collapsed elements, hence dead grids. Freeze them out: */
    585596                        if (model->deadgrids[i]){
    586                                 for(k=0;k<node_numdofs;k++){
    587                                         node->DofInSSet(k);
     597                                for(k=1;k<=node_numdofs;k++){
     598                                        node->FreezeDof(k);
    588599                                }
    589600                        }
     
    610621        xfree((void**)&model->gridonbed);
    611622        xfree((void**)&model->gridonsurface);
     623        xfree((void**)&model->uppernodes);
    612624               
    613625        cleanup_and_return:
Note: See TracChangeset for help on using the changeset viewer.