Changeset 21401


Ignore:
Timestamp:
11/18/16 13:37:29 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: cosmetics

File:
1 edited

Legend:

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

    r20690 r21401  
    8484
    8585        /*Intermediaries */
    86         int     dim, domaintype, extrapolationcase;
    87         int     i,row,col,stabilization;
    88         bool    extrapolatebydiffusion;
    89         IssmDouble Jdet,D_scalar,h;
    90         IssmDouble norm_dlsf;
    91         IssmDouble hx,hy,hz,kappa;
    92         IssmDouble*     xyz_list = NULL;
    93         Element*                workelement=NULL;
     86        int           dim, domaintype, extrapolationcase;
     87        int           i,row,col,stabilization;
     88        bool          extrapolatebydiffusion;
     89        IssmDouble  Jdet,D_scalar,h;
     90        IssmDouble  norm_dlsf;
     91        IssmDouble  hx,hy,hz,kappa;
     92        IssmDouble *xyz_list    = NULL;
     93        Element    *workelement = NULL;
    9494
    9595        /*Get problem case*/
     
    102102                case 1: case 2: case 3: workelement=element; break;
    103103        }
     104
    104105        /* get extrapolation dimension */
    105106        workelement->FindParam(&domaintype,DomainTypeEnum);
    106107        switch(domaintype){
    107                 case Domain2DverticalEnum: dim=1; break;
     108                case Domain2DverticalEnum:   dim=1; break;
    108109                case Domain2DhorizontalEnum: dim=2; break;
    109                 case Domain3DEnum: dim=3; break;
     110                case Domain3DEnum:           dim=3; break;
     111      default: _error_("not supported yet");
    110112        }
    111113
     
    117119        IssmDouble*    B      = xNew<IssmDouble>(dim*numnodes);
    118120        IssmDouble*    Bprime = xNew<IssmDouble>(dim*numnodes);
    119         IssmDouble*             D         = xNew<IssmDouble>(dim*dim);
    120         IssmDouble*             dlsf = xNew<IssmDouble>(dim);
    121         IssmDouble*             normal= xNew<IssmDouble>(dim);
     121        IssmDouble*             dlsf   = xNew<IssmDouble>(dim);
     122        IssmDouble*             normal = xNew<IssmDouble>(dim);
     123   IssmDouble*          D           = xNewZeroInit<IssmDouble>(dim*dim);
    122124
    123125        /*Retrieve all inputs and parameters*/
     
    128130        /* Start  looping on the number of gaussian points: */
    129131        Gauss* gauss=workelement->NewGauss(2);
    130         for(int ig=gauss->begin();ig<gauss->end();ig++){/*{{{*/
     132        for(int ig=gauss->begin();ig<gauss->end();ig++){
    131133                gauss->GaussPoint(ig);
    132134
     
    139141                extrapolatebydiffusion=true;
    140142                if(extrapolatebydiffusion){
    141                         /* diffuse values outward */
    142                         for(row=0;row<dim;row++)
    143                                 for(col=0;col<dim;col++)
    144                                         if(row==col && row<2) //extrapolate only in xy-plane
    145                                                 D[row*dim+col] = D_scalar;
    146                                         else
    147                                                 D[row*dim+col] = 0.;
     143
     144                        /* diffuse values outward only along the xy-plane*/
     145         for(int i=0;i<2;i++) D[i*dim+i] = D_scalar;
    148146
    149147                        TripleMultiply(Bprime,dim,numnodes,1,
     
    180178                                                &Ke->values[0],1);
    181179
    182                         /* stabilization *//*{{{*/
     180                        /* stabilization */
    183181                        /* do not use streamline upwinding for extrapolation: it yields oscillating results due to diffusion along normal direction, but none across */
    184182                        stabilization=1;
     
    200198                                                        &Ke->values[0],1);
    201199                        }
    202                         /*}}}*/
    203200                }
    204         }/*}}}*/
     201        }
    205202
    206203        /*Clean up and return*/
     
    236233        /*Initialize Element vector*/
    237234        ElementVector* pe = workelement->NewElementVector();
    238         for(int i=0;i<numnodes;i++)
    239                 pe->values[i]=0.;
    240 
    241         if(extrapolationcase==0){workelement->DeleteMaterials(); delete workelement;};
     235
     236        if(extrapolationcase==0){
     237      workelement->DeleteMaterials();
     238      delete workelement;
     239   }
     240
    242241        return pe;
    243242}/*}}}*/
     
    326325        int domaintype, extrapolationvariable;
    327326        int extrapolationcase;
     327
    328328        element->FindParam(&domaintype,DomainTypeEnum);
    329329        switch(domaintype){
    330                 case Domain2DverticalEnum: extrapolationcase=0; break;
    331                 case Domain2DhorizontalEnum: extrapolationcase=1;break;
    332                 case Domain3DEnum:  
     330                case Domain2DverticalEnum:   extrapolationcase=0; break;
     331                case Domain2DhorizontalEnum: extrapolationcase=1; break;
     332                case Domain3DEnum:
    333333                        element->FindParam(&extrapolationvariable, ExtrapolationVariableEnum);
    334                         if(extrapolationvariable==ThicknessEnum) extrapolationcase=2; // scalar fields that are constant along z-axis
    335                         else extrapolationcase=3; // scalar fields that vary along z-axis
     334                        if(extrapolationvariable==ThicknessEnum){
     335            extrapolationcase=2; // scalar fields that are constant along z-axis
     336         }
     337                        else{
     338            extrapolationcase=3; // scalar fields that vary along z-axis
     339         }
    336340                        break;
    337341        }
Note: See TracChangeset for help on using the changeset viewer.