MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / VectorFESpace

Method VectorFESpace

comp/fespace.hpp:1193–1223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 6

GetDimensionMethod · 0.45
SetFlagMethod · 0.45
SizeMethod · 0.45
SetMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected