49#define _IFT_SUPG_Name "supg"
50#define _IFT_SUPG_deltat "deltat"
51#define _IFT_SUPG_deltatFunction "deltatltf"
52#define _IFT_SUPG_cmflag "cmflag"
53#define _IFT_SUPG_alpha "alpha"
54#define _IFT_SUPG_scaleflag "scaleflag"
55#define _IFT_SUPG_lscale "lscale"
56#define _IFT_SUPG_uscale "uscale"
57#define _IFT_SUPG_dscale "dscale"
58#define _IFT_SUPG_miflag "miflag"
59#define _IFT_SUPG_rtolv "rtolv"
60#define _IFT_SUPG_atolv "atolv"
61#define _IFT_SUPG_maxiter "maxiter"
62#define _IFT_SUPG_stopmaxiter "stopmaxiter"
63#define _IFT_SUPG_fsflag "fsflag"
68class SparseNonLinearSystemNM;
108 std :: unique_ptr< SparseLinearSystemNM >
nMethod;
113 std :: unique_ptr< SparseMtrx >
lhs;
bool renumberFlag
Renumbering flag (renumbers equations after each step, necessary if Dirichlet BCs change).
FluidModel(int i, EngngModel *master)
void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const override
SUPGInternalForceAssembler(double l, double d, double u)
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
SUPGTangentAssembler(MatResponseMode m, double l, double d, double u, double a)
const char * giveClassName() const override
Returns class name of the receiver.
int maxiter
Max number of iterations.
void printDofOutputAt(FILE *stream, Dof *iDof, TimeStep *tStep) override
MaterialInterface * giveMaterialInterface(int n) override
TimeStep * giveSolutionStepWhenIcApply(bool force=false) override
void saveContext(DataStream &stream, ContextMode mode) override
void updateInternalState(TimeStep *tStep)
std ::unique_ptr< SparseLinearSystemNM > nMethod
Numerical method used to solve the problem.
int requiresUnknownsDictionaryUpdate() override
std ::unique_ptr< SparseMtrx > lhs
void updateInternalRHS(FloatArray &answer, TimeStep *tStep, Domain *d, FloatArray *eNorm) override
SparseMtrxType sparseMtrxType
double Re
Reynolds number.
void updateDomainLinks() override
int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep) override
std ::unique_ptr< MaterialInterface > materialInterface
fMode giveFormulation() override
std ::unique_ptr< PrimaryField > VelocityPressureField
void updateSolution(FloatArray &solutionVector, TimeStep *tStep, Domain *d) override
void updateMatrix(SparseMtrx &mat, TimeStep *tStep, Domain *d) override
void initializeFrom(InputRecord &ir) override
void updateSolutionVectors(FloatArray &solutionVector, FloatArray &accelerationVector, FloatArray &incrementalSolutionVector, TimeStep *tStep)
void updateElementsForNewInterfacePosition(TimeStep *tStep)
LinSystSolverType solverType
void restoreContext(DataStream &stream, ContextMode mode) override
double alpha
Integration constant.
SUPG(int i, EngngModel *_master=nullptr)
const char * giveInputRecordName() const
FloatArray incrementalSolutionVector
FloatArray accelerationVector
void updateDofManVals(TimeStep *tStep)
void updateDofUnknownsDictionary(DofManager *dman, TimeStep *tStep) override
double giveReynoldsNumber() override
double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof) override
NumericalMethod * giveNumericalMethod(MetaStep *mStep) override
Returns reference to receiver's numerical method.
TimeStep * giveNextStep() override
Returns next time step (next to current step) of receiver.
FloatArray internalForces
void solveYourselfAt(TimeStep *tStep) override
double atolv
Convergence tolerance.
void updateDofUnknownsDictionary_predictor(TimeStep *tStep)
void updateYourself(TimeStep *tStep) override
void evaluateElementStabilizationCoeffs(TimeStep *tStep)
double giveVariableScale(VarScaleType varId) override
Returns the scale factor for given variable type.
bool giveEquationScalingFlag() override
Returns the Equation scaling flag, which is used to indicate that governing equation(s) are scaled,...
void updateComponent(TimeStep *tStep, NumericalCmpn cmpn, Domain *d) override
void updateSolutionVectors_predictor(FloatArray &solutionVector, FloatArray &accelerationVector, TimeStep *tStep)
void updateDofUnknownsDictionary_corrector(TimeStep *tStep)
int checkConsistency() override
void applyIC(TimeStep *tStep)
VarScaleType
Type determining the scale corresponding to particular variable.
@ SMT_Skyline
Symmetric skyline.