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

Method BilinearForm

comp/bilinearform.cpp:88–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86
87
88 BilinearForm ::
89 BilinearForm (shared_ptr<FESpace> afespace,
90 const string & aname,
91 const Flags & flags)
92 : NGS_Object(afespace->GetMeshAccess(), flags, aname), fespace(afespace)
93 {
94 fespace2 = NULL;
95
96 multilevel = true;
97 symmetric = flags.GetDefineFlag ("symmetric");
98
99 // low_order_bilinear_form = NULL;
100 linearform = NULL;
101
102
103 SetGalerkin( flags.GetDefineFlag( "project" ) );
104 SetNonAssemble (flags.GetDefineFlag ("nonassemble"));
105 SetDiagonal (flags.GetDefineFlag ("diagonal"));
106 if (flags.GetDefineFlag ("nonsym")) SetSymmetric (0);
107 if (flags.GetDefineFlag ("nonmultilevel")) SetMultiLevel (0);
108 SetHermitean (flags.GetDefineFlag ("hermitean"));
109 SetHermitean (flags.GetDefineFlag ("hermitian"));
110 SetUnusedDiag (flags.GetNumFlag ("unuseddiag",0.0));
111 SetEpsRegularization (flags.GetNumFlag ("regularization",0));
112
113 SetPrint (flags.GetDefineFlag ("print"));
114 SetPrintElmat (flags.GetDefineFlag ("printelmat"));
115 SetElmatEigenValues (flags.GetDefineFlag ("elmatev"));
116 SetTiming (flags.GetDefineFlag ("timing"));
117 SetEliminateInternal (flags.GetDefineFlag ("eliminate_internal") || flags.GetDefineFlag("condense"));
118
119
120 bool has_private_space = false;
121 fespace->TraverseTree([&has_private_space](const FESpace& fes) {
122 if (dynamic_cast<const HiddenFESpace*>(&fes))
123 has_private_space = true;
124 });
125 SetEliminateHidden(has_private_space);
126 if (!flags.GetDefineFlagX("eliminate_hidden").IsMaybe())
127 SetEliminateHidden (flags.GetDefineFlag ("eliminate_hidden"));
128
129
130 SetKeepInternal (eliminate_internal &&
131 !flags.GetDefineFlagX ("keep_internal").IsFalse() &&
132 !flags.GetDefineFlag ("nokeep_internal"));
133 SetStoreInner (flags.GetDefineFlag ("store_inner"));
134 precompute = flags.GetDefineFlag ("precompute");
135 checksum = flags.GetDefineFlag ("checksum");
136 spd = flags.GetDefineFlag ("spd");
137 geom_free = flags.GetDefineFlag("geom_free");
138 matrix_free_bdb = flags.GetDefineFlag("matrix_free_bdb");
139 nonlinear_matrix_free_bdb = flags.GetDefineFlag("nonlinear_matrix_free_bdb");
140 if (spd) symmetric = true;
141 SetCheckUnused (!flags.GetDefineFlagX("check_unused").IsFalse());
142 if (flags.NumFlagDefined("delete_zero_elements"))
143 delete_zero_elements = flags.GetNumFlag("delete_zero_elements", 0.0);
144 }
145

Callers

nothing calls this directly

Calls 15

SetGalerkinFunction · 0.85
SetNonAssembleFunction · 0.85
SetDiagonalFunction · 0.85
SetMultiLevelFunction · 0.85
SetHermiteanFunction · 0.85
SetUnusedDiagFunction · 0.85
SetEpsRegularizationFunction · 0.85
SetTimingFunction · 0.85
SetEliminateInternalFunction · 0.85
SetEliminateHiddenFunction · 0.85
SetKeepInternalFunction · 0.85
SetStoreInnerFunction · 0.85

Tested by

no test coverage detected