| 241 | |
| 242 | |
| 243 | FacetSurfaceFESpace :: FacetSurfaceFESpace (shared_ptr<MeshAccess> ama, const Flags & flags, bool checkflags) |
| 244 | : FESpace(ama, flags) |
| 245 | { |
| 246 | name="FacetSurfaceFESpace(facet)"; |
| 247 | type = "facetsurface"; |
| 248 | // defined flags |
| 249 | DefineNumFlag("relorder"); |
| 250 | DefineDefineFlag("variableorder"); |
| 251 | |
| 252 | |
| 253 | if(checkflags) CheckFlags(flags); |
| 254 | |
| 255 | |
| 256 | // ndlevel.SetSize(0); |
| 257 | Flags loflags; |
| 258 | loflags.SetFlag("order",0.0); |
| 259 | if ( this->IsComplex() ) |
| 260 | loflags.SetFlag("complex"); |
| 261 | |
| 262 | // Variable order space: |
| 263 | // in case of (var_order && order) or (relorder) |
| 264 | var_order = flags.GetDefineFlag("variableorder"); |
| 265 | order = int (flags.GetNumFlag ("order",0)); |
| 266 | |
| 267 | if(flags.NumFlagDefined("relorder") && !flags.NumFlagDefined("order")) |
| 268 | var_order = 1; |
| 269 | |
| 270 | rel_order=int(flags.GetNumFlag("relorder",order-1)); |
| 271 | |
| 272 | |
| 273 | if(flags.NumFlagDefined("order") && flags.NumFlagDefined("relorder")) |
| 274 | { |
| 275 | if(var_order) |
| 276 | cerr << " WARNING: FacetSurfaceFESpace: inconsistent flags: variableorder, order and relorder " |
| 277 | << "-> variable order space with rel_order " << rel_order << "is used, but order is ignored " << endl; |
| 278 | else |
| 279 | cerr << " WARNING: FacetSurfaceFESpace: inconsistent flags: order and rel_order " |
| 280 | << "-> uniform order space with order " << order << " is used " << endl; |
| 281 | } |
| 282 | |
| 283 | if (flags.NumFlagDefined("order")) |
| 284 | { |
| 285 | if(var_order) |
| 286 | { |
| 287 | rel_order = int(flags.GetNumFlag("relorder",order-1)); |
| 288 | order = rel_order + 1; |
| 289 | } |
| 290 | else |
| 291 | order = int (flags.GetNumFlag ("order",0)); |
| 292 | } |
| 293 | else if(flags.NumFlagDefined("relorder")) |
| 294 | { |
| 295 | var_order=1; |
| 296 | rel_order = int (flags.GetNumFlag ("relorder",-1)); |
| 297 | order=1+rel_order; |
| 298 | } |
| 299 | else // neither rel_order nor order is given |
| 300 | { |
nothing calls this directly
no test coverage detected