Changeset 13874


Ignore:
Timestamp:
11/05/12 13:00:00 (12 years ago)
Author:
Mathieu Morlighem
Message:

CHG: moved some modules to FemModel.cpp

Location:
issm/trunk-jpl/src/c
Files:
4 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r13855 r13874  
    482482#}}}
    483483#Responses sources  {{{
    484 responses_sources = ./modules/MinVelx/MinVelx.h\
    485                                              ./modules/MinVelx/MinVelx.cpp\
    486                                              ./modules/MinVxx/MinVxx.h\
    487                                              ./modules/MinVxx/MinVxx.cpp\
    488                                              ./modules/MinVyx/MinVyx.h\
    489                                              ./modules/MinVyx/MinVyx.cpp\
    490                                              ./modules/MinVzx/MinVzx.h\
    491                                              ./modules/MinVzx/MinVzx.cpp\
    492                                              ./modules/TotalSmbx/TotalSmbx.h\
     484responses_sources = ./modules/TotalSmbx/TotalSmbx.h\
    493485                                             ./modules/TotalSmbx/TotalSmbx.cpp\
    494486                                             ./modules/IceVolumex/IceVolumex.h\
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r13855 r13874  
    405405                #ifdef _HAVE_RESPONSES_
    406406                case IceVolumeEnum:              IceVolumex(               responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
    407                 case MinVelEnum:                 MinVelx(                  responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
     407                case MinVelEnum:                 this->MinVelx(responses,process_units); break;
    408408                case MaxVelEnum:                 this->MaxVelx(                  responses,process_units); break;
    409                 case MinVxEnum:                  MinVxx(                   responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
     409                case MinVxEnum:                  this->MinVxx(responses,process_units); break;
    410410                case MaxVxEnum:                  this->MaxVxx(                   responses,process_units); break;
    411411                case MaxAbsVxEnum:               this->MaxAbsVxx(                responses,process_units); break;
    412                 case MinVyEnum:                  MinVyx(                   responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
     412                case MinVyEnum:                  this->MinVyx(responses,process_units); break;
    413413                case MaxVyEnum:                  this->MaxVyx(                   responses,process_units); break;
    414414                case MaxAbsVyEnum:               this->MaxAbsVyx(                responses,process_units); break;
    415                 case MinVzEnum:                  MinVzx(                   responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
     415                case MinVzEnum:                  this->MinVzx(responses,process_units); break;
    416416                case MaxVzEnum:                  this->MaxVzx(                   responses,process_units); break;
    417417                case MaxAbsVzEnum:               this->MaxAbsVzx(                responses,process_units); break;
     
    793793
    794794}/*}}}*/
     795void FemModel::MinVelx(IssmDouble* pminvel,bool process_units){/*{{{*/
     796
     797        int i;
     798        IssmDouble minvel;
     799        IssmDouble node_minvel;
     800        IssmDouble element_minvel;
     801
     802        /*Go through elements, and request velocity: */
     803        minvel=INFINITY;
     804        for(i=0;i<this->elements->Size();i++){
     805                Element* element=(Element*)this->elements->GetObjectByOffset(i);
     806                element->MinVel(&element_minvel,process_units);
     807                if(element_minvel<minvel) minvel=element_minvel;
     808        }
     809
     810        /*Figure out minimum across the cluster: */
     811#ifdef _HAVE_MPI_
     812        MPI_Reduce(&minvel,&node_minvel,1,MPI_DOUBLE,MPI_MAX,0,IssmComm::GetComm() );
     813        MPI_Bcast(&node_minvel,1,MPI_DOUBLE,0,IssmComm::GetComm());   
     814        minvel=node_minvel;
     815#endif
     816
     817        /*Assign output pointers:*/
     818        *pminvel=minvel;
     819
     820}/*}}}*/
     821void FemModel::MinVxx(IssmDouble* pminvx,bool process_units){/*{{{*/
     822
     823        int i;
     824        IssmDouble minvx;
     825        IssmDouble node_minvx;
     826        IssmDouble element_minvx;
     827
     828        /*Go through elements, and request velocity: */
     829        minvx=INFINITY;
     830        for(i=0;i<this->elements->Size();i++){
     831                Element* element=(Element*)this->elements->GetObjectByOffset(i);
     832                element->MinVx(&element_minvx,process_units);
     833                if(element_minvx<minvx) minvx=element_minvx;
     834        }
     835
     836        /*Figure out minimum across the cluster: */
     837#ifdef _HAVE_MPI_
     838        MPI_Reduce(&minvx,&node_minvx,1,MPI_DOUBLE,MPI_MAX,0,IssmComm::GetComm() );
     839        MPI_Bcast(&node_minvx,1,MPI_DOUBLE,0,IssmComm::GetComm());   
     840        minvx=node_minvx;
     841#endif
     842
     843        /*Assign output pointers:*/
     844        *pminvx=minvx;
     845
     846}/*}}}*/
     847void FemModel::MinVyx(IssmDouble* pminvy,bool process_units){/*{{{*/
     848
     849        int i;
     850        IssmDouble minvy;
     851        IssmDouble node_minvy;
     852        IssmDouble element_minvy;
     853
     854        /*Go through elements, and request velocity: */
     855        minvy=INFINITY;
     856        for(i=0;i<this->elements->Size();i++){
     857                Element* element=(Element*)this->elements->GetObjectByOffset(i);
     858                element->MinVy(&element_minvy,process_units);
     859                if(element_minvy<minvy) minvy=element_minvy;
     860        }
     861
     862        /*Figure out minimum across the cluster: */
     863#ifdef _HAVE_MPI_
     864        MPI_Reduce(&minvy,&node_minvy,1,MPI_DOUBLE,MPI_MAX,0,IssmComm::GetComm() );
     865        MPI_Bcast(&node_minvy,1,MPI_DOUBLE,0,IssmComm::GetComm());   
     866        minvy=node_minvy;
     867#endif
     868
     869        /*Assign output pointers:*/
     870        *pminvy=minvy;
     871
     872}/*}}}*/
     873void FemModel::MinVzx(IssmDouble* pminvz,bool process_units){/*{{{*/
     874
     875        int i;
     876        IssmDouble minvz;
     877        IssmDouble node_minvz;
     878        IssmDouble element_minvz;
     879
     880        /*Go through elements, and request velocity: */
     881        minvz=INFINITY;
     882        for(i=0;i<this->elements->Size();i++){
     883                Element* element=(Element*)this->elements->GetObjectByOffset(i);
     884                element->MinVz(&element_minvz,process_units);
     885                if(element_minvz<minvz) minvz=element_minvz;
     886        }
     887
     888        /*Figure out minimum across the cluster: */
     889#ifdef _HAVE_MPI_
     890        MPI_Reduce(&minvz,&node_minvz,1,MPI_DOUBLE,MPI_MAX,0,IssmComm::GetComm() );
     891        MPI_Bcast(&node_minvz,1,MPI_DOUBLE,0,IssmComm::GetComm());   
     892        minvz=node_minvz;
     893#endif
     894
     895        /*Assign output pointers:*/
     896        *pminvz=minvz;
     897
     898}/*}}}*/
    795899#endif
    796900#ifdef _HAVE_CONTROL_
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r13722 r13874  
    7070                void MaxVyx(IssmDouble* presponse,bool process_units);
    7171                void MaxVzx(IssmDouble* presponse,bool process_units);
     72                void MinVelx(IssmDouble* presponse,bool process_units);
     73                void MinVxx(IssmDouble* presponse,bool process_units);
     74                void MinVyx(IssmDouble* presponse,bool process_units);
     75                void MinVzx(IssmDouble* presponse,bool process_units);
    7276                #endif
    7377                #ifdef  _HAVE_DAKOTA_
  • issm/trunk-jpl/src/c/modules/modules.h

    r13722 r13874  
    6767#include "./MeshPartitionx/MeshPartitionx.h"
    6868#include "./MeshProfileIntersectionx/MeshProfileIntersectionx.h"
    69 #include "./MinVelx/MinVelx.h"
    70 #include "./MinVxx/MinVxx.h"
    71 #include "./MinVyx/MinVyx.h"
    72 #include "./MinVzx/MinVzx.h"
    7369#include "./SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.h"
    7470#include "./SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.h"
Note: See TracChangeset for help on using the changeset viewer.