| 1191 | { |
| 1192 | public: |
| 1193 | VectorFESpace (shared_ptr<MeshAccess> ama, const Flags & flags, |
| 1194 | bool checkflags = false) |
| 1195 | : CompoundFESpace (ama, flags) |
| 1196 | { |
| 1197 | Array<string> dirichlet_comp; |
| 1198 | string dirnames[] = { "dirichletx", "dirichlety", "dirichletz" }; |
| 1199 | for (int i = 0; i < ma->GetDimension(); i++) |
| 1200 | { |
| 1201 | Flags tmpflags = flags; |
| 1202 | if (flags.StringFlagDefined(dirnames[i])) |
| 1203 | tmpflags.SetFlag ("dirichlet", flags.GetStringFlag(dirnames[i])); |
| 1204 | if (flags.StringFlagDefined(dirnames[i]+"_bbnd")) |
| 1205 | tmpflags.SetFlag ("dirichlet_bbnd", flags.GetStringFlag(dirnames[i]+"_bbnd")); |
| 1206 | AddSpace (make_shared<BASESPACE> (ama, tmpflags)); |
| 1207 | } |
| 1208 | |
| 1209 | for (auto vb : { VOL, BND, BBND, BBBND }) |
| 1210 | { |
| 1211 | if (auto eval = spaces[0] -> GetEvaluator(vb)) |
| 1212 | evaluator[vb] = make_shared<VectorDifferentialOperator> (eval, ma->GetDimension()); |
| 1213 | if (auto fluxeval = spaces[0] -> GetFluxEvaluator(vb)) |
| 1214 | flux_evaluator[vb] = make_shared<VectorDifferentialOperator> (fluxeval, ma->GetDimension()); |
| 1215 | } |
| 1216 | |
| 1217 | auto additional = spaces[0]->GetAdditionalEvaluators(); |
| 1218 | for (int i = 0; i < additional.Size(); i++) |
| 1219 | additional_evaluators.Set (additional.GetName(i), |
| 1220 | make_shared<VectorDifferentialOperator>(additional[i], ma->GetDimension())); |
| 1221 | |
| 1222 | type = "Vector"+(*this)[0]->type; |
| 1223 | } |
| 1224 | |
| 1225 | virtual string GetClassName () const override |
| 1226 | { |
nothing calls this directly
no test coverage detected