Changeset 11189


Ignore:
Timestamp:
01/24/12 10:42:41 (13 years ago)
Author:
schlegel
Message:

Added 3d Mass Flux calculation

Location:
issm/trunk-jpl/src/c/objects/Elements
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/objects/Elements/Penta.cpp

    r11001 r11189  
    29642964/*FUNCTION Penta::MassFlux {{{1*/
    29652965double Penta::MassFlux( double* segment,bool process_units){
    2966         _error_(" not supported yet!");
     2966
     2967        double mass_flux=0;
     2968
     2969        if(!IsOnBed()) return mass_flux;
     2970
     2971        /*Depth Averaging Vx and Vy*/
     2972        this->InputDepthAverageAtBase(VxEnum,VxAverageEnum);
     2973        this->InputDepthAverageAtBase(VyEnum,VyAverageEnum);
     2974
     2975        /*Spawn Tria element from the base of the Penta: */
     2976        Tria* tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria.
     2977        mass_flux=tria->MassFlux(segment,process_units);
     2978        delete tria->matice; delete tria;
     2979
     2980        /*Delete Vx and Vy averaged*/
     2981        this->inputs->DeleteInput(VxAverageEnum);
     2982        this->inputs->DeleteInput(VyAverageEnum);
     2983
     2984        /*clean up and return*/
     2985        return mass_flux;
    29672986}
    29682987/*}}}*/
  • issm/trunk-jpl/src/c/objects/Elements/Tria.cpp

    r11070 r11189  
    24152415        const int    numdofs=2;
    24162416
    2417         int        i;
     2417        int        i,dim;
    24182418        double     mass_flux=0;
    24192419        double     xyz_list[NUMVERTICES][3];
     
    24492449
    24502450        Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input);
    2451         Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
    2452         Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
     2451        this->parameters->FindParam(&dim,MeshDimensionEnum);
     2452        Input* vx_input=NULL;
     2453        Input* vy_input=NULL;
     2454        if(dim==2){
     2455                vx_input=inputs->GetInput(VxEnum); _assert_(vx_input);
     2456                vy_input=inputs->GetInput(VyEnum); _assert_(vy_input);
     2457        }
     2458        else{
     2459                vx_input=inputs->GetInput(VxAverageEnum); _assert_(vx_input);
     2460                vy_input=inputs->GetInput(VyAverageEnum); _assert_(vy_input);
     2461        }
    24532462
    24542463        thickness_input->GetInputValue(&h1, gauss_1);
Note: See TracChangeset for help on using the changeset viewer.