Changeset 16721


Ignore:
Timestamp:
11/12/13 16:38:58 (11 years ago)
Author:
seroussi
Message:

NEW: working on mass transport analyses for extrusion of solution

Location:
issm/trunk-jpl/src/c
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r16720 r16721  
    217217void MasstransportAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
    218218
    219         int        i,hydroadjustment;
     219        int        i,hydroadjustment,meshtype;
    220220        int*       doflist=NULL;
    221221        IssmDouble rho_ice,rho_water,minthickness;
    222         //Element* basalelement=element->SpawnBasalElement();
    223         Element* basalelement=element;
     222        Element*   basalelement=NULL;
     223
     224        element->FindParam(&meshtype,MeshTypeEnum);
     225        if(meshtype!=Mesh2DhorizontalEnum){
     226                if(!element->IsOnBed()) return;
     227                basalelement=element->SpawnBasalElement();
     228        }
     229        else{
     230                basalelement = element;
     231        }
    224232
    225233        /*Fetch number of nodes for this finite element*/
     
    289297        xDelete<IssmDouble>(phi);
    290298        xDelete<int>(doflist);
    291         if(basalelement!=element) delete element;
    292 }/*}}}*/
     299        if(meshtype!=Mesh2DhorizontalEnum) delete element;
     300}/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.h

    r16720 r16721  
    101101                virtual void   PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm)=0;
    102102                virtual void   Delta18oParameterization(void)=0;
    103                 virtual void   SmbGradients()=0;
     103                virtual void   SmbGradients(void)=0;
     104           virtual Element*   SpawnBasalElement(void)=0;
    104105                virtual IssmDouble TMeltingPoint(IssmDouble pressure)=0;
    105106                virtual void   ResetCoordinateSystem()=0;
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r16720 r16721  
    31493149
    31503150        /*Return new Tria*/
     3151        return tria;
     3152}
     3153/*}}}*/
     3154/*FUNCTION Penta::SpawnBasalElement{{{*/
     3155Element*  Penta::SpawnBasalElement(void){
     3156
     3157        _assert_(this->IsOnBed());
     3158        Tria* tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1.
    31513159        return tria;
    31523160}
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r16720 r16721  
    114114                void   ResetCoordinateSystem(void);
    115115                void   SmbGradients();
     116           Element* SpawnBasalElement(void);
    116117                IssmDouble  TMeltingPoint(IssmDouble pressure);
    117118                IssmDouble SurfaceArea(void);
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r16720 r16721  
    104104                bool        IsFloating(){_error_("not implemented yet");};
    105105                bool        IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");};
     106                bool        NoIceInElement(){_error_("not implemented yet");};
    106107                int         NumberofNodesVelocity(void){_error_("not implemented yet");};
    107108                int         NumberofNodesPressure(void){_error_("not implemented yet");};
     109           Element*    SpawnBasalElement(void){_error_("not implemented yet");};
     110                int         PressureInterpolation(void){_error_("not implemented yet");};
    108111                int         VelocityInterpolation(void){_error_("not implemented yet");};
    109                 int         PressureInterpolation(void){_error_("not implemented yet");};
    110                 bool        NoIceInElement(){_error_("not implemented yet");};
    111112                Input*      GetInput(int inputenum){_error_("not implemented yet");};
    112113                void        GetInputListOnVertices(IssmDouble* pvalue,int enumtype){_error_("not implemented yet");};
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16720 r16721  
    27202720        /*Return new Seg*/
    27212721        return seg;
     2722}
     2723/*}}}*/
     2724/*FUNCTION Tria::SpawnBasalElement{{{*/
     2725Element*  Tria::SpawnBasalElement(void){
     2726
     2727        int meshtype;
     2728
     2729        /*go into parameters and get the analysis_counter: */
     2730        this->parameters->FindParam(&meshtype,MeshTypeEnum);
     2731
     2732        if(meshtype==Mesh2DhorizontalEnum){
     2733                return this;
     2734        }
     2735        else _error_("not implemented yet");
    27222736}
    27232737/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r16720 r16721  
    120120                void        ResetCoordinateSystem(void);
    121121                void          SmbGradients();
     122           Element*    SpawnBasalElement(void);
    122123                IssmDouble  TMeltingPoint(IssmDouble pressure);
    123124                int         VelocityInterpolation();
Note: See TracChangeset for help on using the changeset viewer.