38 void Foam::expressions::patchExprFieldBase::readExpressions
40 const dictionary&
dict,
41 enum expectedTypes expectedType,
54 string exprValue, exprGrad, exprFrac;
55 bool evalValue =
false, evalGrad =
false, evalFrac =
false;
57 if (expectedTypes::VALUE_TYPE == expectedType)
62 else if (expectedTypes::GRADIENT_TYPE == expectedType)
76 if (!evalValue && !evalGrad)
79 <<
"Entries 'valueExpr' and 'gradientExpr' "
80 "(mixed-conditon) not found in dictionary "
89 Info<<
"Mixed with no valueExpr" <<
nl;
93 Info<<
"Mixed with no gradientExpr" <<
nl;
102 if (evalValue && evalGrad &&
dict.readIfPresent(
"fractionExpr", exprFrac))
106 if (exprFrac ==
"0" || exprFrac ==
"1")
111 else if (!exprFrac.empty())
116 exprFrac =
"toPoint(" + exprFrac +
")";
144 evalOnConstruct_(false),
158 debug_(
dict.getOrDefault(
"debug",
false)),
159 evalOnConstruct_(
dict.getOrDefault(
"evalOnConstruct",
false)),
164 readExpressions(
dict, expectedType, wantPointData);
172 os.writeEntryIfDifferent<
bool>(
"evalOnConstruct",
false, evalOnConstruct_);
177 valueExpr_.writeEntry(
"valueExpr",
os,
false);
178 gradExpr_.writeEntry(
"gradientExpr",
os,
false);
179 fracExpr_.writeEntry(
"fractionExpr",
os,
false);