Changeset 1984 for XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp
- Timestamp:
- 12/06/20 22:14:56 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp
r1974 r1984 1 1 #include "domain.hpp" 2 3 2 #include "attribute_template.hpp" 4 3 #include "object_template.hpp" … … 25 24 #include "grid_scatterer_connector.hpp" 26 25 #include "grid_gatherer_connector.hpp" 26 #include "transformation_path.hpp" 27 27 28 28 … … 77 77 CDomain* domain = CDomainGroup::get("domain_definition")->createChild(); 78 78 return domain; 79 }80 CATCH81 82 std::map<StdString, ETranformationType> CDomain::transformationMapList_ = std::map<StdString, ETranformationType>();83 bool CDomain::_dummyTransformationMapList = CDomain::initializeTransformationMap(CDomain::transformationMapList_);84 85 bool CDomain::initializeTransformationMap(std::map<StdString, ETranformationType>& m)86 TRY87 {88 m["zoom_domain"] = TRANS_ZOOM_DOMAIN;89 m["interpolate_domain"] = TRANS_INTERPOLATE_DOMAIN;90 m["generate_rectilinear_domain"] = TRANS_GENERATE_RECTILINEAR_DOMAIN;91 m["compute_connectivity_domain"] = TRANS_COMPUTE_CONNECTIVITY_DOMAIN;92 m["expand_domain"] = TRANS_EXPAND_DOMAIN;93 m["reorder_domain"] = TRANS_REORDER_DOMAIN;94 m["extract_domain"] = TRANS_EXTRACT_DOMAIN;95 79 } 96 80 CATCH … … 2179 2163 CATCH_DUMP_ATTR 2180 2164 2181 2165 ///////////////////////////////////////////////////////////////////////// 2166 /////////////// TRANSFORMATIONS ////////// 2167 ///////////////////////////////////////////////////////////////////////// 2168 2169 std::map<StdString, ETranformationType> CDomain::transformationMapList_ = std::map<StdString, ETranformationType>(); 2170 bool CDomain::dummyTransformationMapList_ = CDomain::initializeTransformationMap(CDomain::transformationMapList_); 2171 2172 bool CDomain::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 2173 TRY 2174 { 2175 m["zoom_domain"] = TRANS_ZOOM_DOMAIN; 2176 m["interpolate_domain"] = TRANS_INTERPOLATE_DOMAIN; 2177 m["generate_rectilinear_domain"] = TRANS_GENERATE_RECTILINEAR_DOMAIN; 2178 m["compute_connectivity_domain"] = TRANS_COMPUTE_CONNECTIVITY_DOMAIN; 2179 m["expand_domain"] = TRANS_EXPAND_DOMAIN; 2180 m["reorder_domain"] = TRANS_REORDER_DOMAIN; 2181 m["extract_domain"] = TRANS_EXTRACT_DOMAIN; 2182 } 2183 CATCH 2184 2185 2182 2186 CTransformation<CDomain>* CDomain::addTransformation(ETranformationType transType, const StdString& id) 2183 2187 TRY … … 2188 2192 CATCH_DUMP_ATTR 2189 2193 2194 CTransformation<CDomain>* CDomain::addTransformation(ETranformationType transType, CTransformation<CDomain>* transformation) 2195 TRY 2196 { 2197 transformationMap_.push_back(std::make_pair(transType, transformation)); 2198 return transformationMap_.back().second; 2199 } 2200 CATCH_DUMP_ATTR 2190 2201 /*! 2191 2202 Check whether a domain has transformation … … 2234 2245 * Go through the hierarchy to find the domain from which the transformations must be inherited 2235 2246 */ 2236 void CDomain::solveInheritanceTransformation ()2247 void CDomain::solveInheritanceTransformation_old() 2237 2248 TRY 2238 2249 { … … 2253 2264 } 2254 2265 CATCH_DUMP_ATTR 2266 2267 2268 void CDomain::solveInheritanceTransformation() 2269 TRY 2270 { 2271 if (solveInheritanceTransformation_done_) return; 2272 else solveInheritanceTransformation_done_=true ; 2273 2274 CDomain* domain = this; 2275 CDomain* Lastdomain ; 2276 std::list<CDomain*> refDomains; 2277 bool out=false ; 2278 vector<StdString> excludedAttr; 2279 excludedAttr.push_back("domain_ref"); 2280 2281 refDomains.push_front(domain) ; 2282 while (domain->hasDirectDomainReference() && !out) 2283 { 2284 CDomain* lastDomain=domain ; 2285 domain = domain->getDirectDomainReference(); 2286 domain->solveRefInheritance() ; 2287 if (!domain->SuperClass::isEqual(lastDomain,excludedAttr)) out=true ; 2288 refDomains.push_front(domain) ; 2289 } 2290 2291 CTransformationPaths::TPath path ; 2292 auto& pathList = std::get<2>(path) ; 2293 std::get<0>(path) = EElement::DOMAIN ; 2294 std::get<1>(path) = refDomains.front()->getId() ; 2295 for (auto& domain : refDomains) 2296 { 2297 CDomain::TransMapTypes transformations = domain->getAllTransformations(); 2298 for(auto& transformation : transformations) pathList.push_back({transformation.second->getTransformationType(), 2299 transformation.second->getId()}) ; 2300 } 2301 transformationPaths_.addPath(path) ; 2302 2303 } 2304 CATCH_DUMP_ATTR 2305 2306 ///////////////////////////////////////////////////////////////////////////////////////////// 2307 ///////////////////////////////////////////////////////////////////////////////////////////// 2255 2308 2256 2309 void CDomain::setContextClient(CContextClient* contextClient)
Note: See TracChangeset
for help on using the changeset viewer.