Ignore:
Timestamp:
03/10/15 10:49:02 (9 years ago)
Author:
mhnguyen
Message:

Implementing a grid formed by only one axis or group of axis

+) Add several new attributes to axis. From now on, each axis can be distributed on client side
+) Modify mask of grid to make it more flexible to different dimension
+) Fix some bugs relating to calculation of local data index on client
+) Clean some redundant codes

Test
+) On Curie, only test_new_features.f90
+) Test cases:

  • Grid composed of: 1 domain and 1 axis, 3 axis, 1 axis
  • Mode: Attached and connected
  • No of client-server: 6-2(Connected), 2 (Attached)

+) All tests passed and results are correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/axis.hpp

    r551 r567  
    1111#include "attribute_enum.hpp" 
    1212#include "attribute_enum_impl.hpp" 
     13#include "server_distribution_description.hpp" 
    1314 
    1415namespace xios { 
     
    3334      , public CAxisAttributes 
    3435   { 
     36         enum EEventId 
     37         { 
     38           EVENT_ID_SERVER_ATTRIBUT 
     39         } ; 
     40 
    3541         /// typedef /// 
    3642         typedef CObjectTemplate<CAxis>   SuperClass; 
     
    6672         static StdString GetName(void); 
    6773         static StdString GetDefName(void); 
    68  
    6974         static ENodeType GetType(void); 
    7075 
     76         void sendServerAttribut(void); 
     77         static bool dispatchEvent(CEventServer& event); 
     78         static void recvServerAttribut(CEventServer& event); 
     79         void recvServerAttribut(CBufferIn& buffer) ; 
     80         void checkAttributesOnClient(const std::vector<int>& globalDim, int orderPositionInGrid, 
     81                                      CServerDistributionDescription::ServerDistributionType disType = CServerDistributionDescription::BAND_DISTRIBUTION); 
     82         void sendCheckedAttributes(const std::vector<int>& globalDim, int orderPositionInGrid, 
     83                                    CServerDistributionDescription::ServerDistributionType disType = CServerDistributionDescription::BAND_DISTRIBUTION); 
     84      public: 
     85        int zoom_begin_srv, zoom_end_srv, zoom_size_srv; 
     86        int ni_srv, begin_srv, end_srv; 
    7187      private : 
    7288         void checkData(); 
    7389         void checkMask(); 
     90         void checkZoom(); 
     91         void computeServerIndex(const std::vector<int>& globalDim, int orderPositionInGrid, 
     92                                 CServerDistributionDescription::ServerDistributionType disType); 
     93      private: 
     94 
    7495         bool isChecked; 
     96         bool areClientAttributesChecked_; 
    7597         std::set<StdString> relFiles; 
    7698 
Note: See TracChangeset for help on using the changeset viewer.