Changeset 16535


Ignore:
Timestamp:
10/23/13 15:55:06 (11 years ago)
Author:
seroussi
Message:

BUG: fixed problem with transient slope

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16529 r16535  
    555555        IssmDouble xyz_list[NUMVERTICES][3];
    556556        IssmDouble slopes[2];
     557        Input*     input  = NULL;
    557558        Input*     input2 = NULL;
    558559
     
    567568        GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
    568569        this->parameters->FindParam(&input_enum,InputToL2ProjectEnum);
    569         Input* input = inputs->GetInput(input_enum);
    570         if(!input){
    571                 switch(input_enum){
    572                         case SurfaceSlopeXEnum: input2 = inputs->GetInput(SurfaceEnum); _assert_(input2); break;
    573                         case SurfaceSlopeYEnum: input2 = inputs->GetInput(SurfaceEnum); _assert_(input2); break;
    574                         case BedSlopeXEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
    575                         case BedSlopeYEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
    576                         default: _error_("input not found in element");
    577                 }
     570        switch(input_enum){
     571                case SurfaceSlopeXEnum: input2 = inputs->GetInput(SurfaceEnum); _assert_(input2); break;
     572                case SurfaceSlopeYEnum: input2 = inputs->GetInput(SurfaceEnum); _assert_(input2); break;
     573                case BedSlopeXEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
     574                case BedSlopeYEnum:     input2 = inputs->GetInput(BedEnum);     _assert_(input2); break;
     575                default: input = inputs->GetInput(input_enum);
    578576        }
    579577
     
    587585                GetNodalFunctions(basis,gauss);
    588586
    589                 if(input){
    590                         input->GetInputValue(&value,gauss);
    591                 }
    592                 else{
    593                         input2->GetInputDerivativeValue(&slopes[0],&xyz_list[0][0],gauss);
    594                         switch(input_enum){
    595                                 case SurfaceSlopeXEnum: case BedSlopeXEnum: value = slopes[0]; break;
    596                                 case SurfaceSlopeYEnum: case BedSlopeYEnum: value = slopes[1]; break;
    597                                 default: _error_("case not supported");
    598                         }
     587                if(input2) input2->GetInputDerivativeValue(&slopes[0],&xyz_list[0][0],gauss);
     588                switch(input_enum){
     589                        case SurfaceSlopeXEnum: case BedSlopeXEnum: value = slopes[0]; break;
     590                        case SurfaceSlopeYEnum: case BedSlopeYEnum: value = slopes[1]; break;
     591                        default: input->GetInputValue(&value,gauss);
    599592                }
    600593
Note: See TracChangeset for help on using the changeset viewer.