|
| | TMOPNewtonSolver (MPI_Comm comm, const IntegrationRule &irule, int type=0) |
| |
| | TMOPNewtonSolver (const IntegrationRule &irule, int type=0) |
| |
| void | SetIntegrationRules (IntegrationRules &irules, int order) |
| | Prescribe a set of integration rules; relevant for mixed meshes.
|
| |
| void | SetMinDetPtr (real_t *md_ptr) |
| |
| void | SetTempMemoryType (MemoryType mt) |
| | Set the memory type for temporary memory allocations.
|
| |
| real_t | ComputeScalingFactor (const Vector &d, const Vector &b) const override |
| |
| void | ProcessNewState (const Vector &dx) const override |
| |
| void | SetMinimumDeterminantThreshold (real_t threshold) |
| | Set minimum determinant enforced during line-search.
|
| |
| void | Mult (const Vector &b, Vector &x) const override |
| | Optimizes the mesh positions given by x.
|
| |
| void | SetSolver (Solver &solver) override |
| | Set the linear solver for inverting the Jacobian.
|
| |
| void | SetPreconditioner (Solver &pr) override |
| | This should be called before SetOperator.
|
| |
|
These methods control the behavior of the weight and the termination of the solver. (Experimental)
Adaptive fitting weight: The weight is modified after each TMOPNewtonSolver iteration as: w_{k+1} = w_{k} * surf_fit_scale_factor if the relative change in average fitting error < surf_fit_err_rel_change_limit. When converging based on the residual, we enforce the fitting weight to be at-most surf_fit_weight_limit, and increase it only if the fitting error is below user prescribed threshold (surf_fit_max_err_limit). See SetAdaptiveSurfaceFittingScalingFactor and SetAdaptiveSurfaceFittingRelativeChangeThreshold.
Note that the solver stops if the maximum surface fitting error does not sufficiently decrease for surf_fit_adapt_count_limit (default 10) consecutive increments of the fitting weight during weight adaptation. This typically occurs when the mesh cannot align with the level-set without degrading element quality. See SetMaxNumberofIncrementsForAdaptiveFitting.
Convergence criterion: There are two modes, residual- and error-based, which can be toggled using SetSurfaceFittingConvergenceBasedOnError.
(i) Residual based (default): Stop when the norm of the gradient of the TMOP objective reaches the prescribed tolerance. This method is best used with a reasonable value for surf_fit_weight_limit when the adaptive surface fitting scheme is used. See method SetSurfaceFittingWeightLimit.
(ii) Error based: Stop when the maximum fitting error reaches the user-prescribed threshold, surf_fit_max_err_limit. In this case, surf_fit_weight_limit is ignored during weight adaptation.
|
| void | SetAdaptiveSurfaceFittingScalingFactor (real_t factor) |
| |
| void | SetAdaptiveSurfaceFittingRelativeChangeThreshold (real_t threshold) |
| |
| void | SetMaxNumberofIncrementsForAdaptiveFitting (int count) |
| |
| void | SetTerminationWithMaxSurfaceFittingError (real_t max_error) |
| | Used for error-based surface fitting termination.
|
| |
| void | SetSurfaceFittingMaxErrorLimit (real_t max_error) |
| | Could be used with both error-based or residual-based convergence.
|
| |
| void | SetSurfaceFittingWeightLimit (real_t weight) |
| | Used for residual-based surface fitting termination.
|
| |
| void | SetSurfaceFittingConvergenceBasedOnError (bool mode) |
| | Toggle convergence based on residual or error.
|
| |
| | LBFGSSolver () |
| |
| | LBFGSSolver (MPI_Comm comm_) |
| |
| void | SetOperator (const Operator &op) override |
| | Also calls SetOperator for the preconditioner if there is one.
|
| |
| void | SetHistorySize (int dim) |
| |
| virtual | ~LBFGSSolver () |
| |
| | NewtonSolver () |
| |
| | NewtonSolver (MPI_Comm comm_) |
| |
| void | SetOperator (const Operator &op) override |
| | Also calls SetOperator for the preconditioner if there is one.
|
| |
| void | SetAdaptiveLinRtol (const int type=2, const real_t rtol0=0.5, const real_t rtol_max=0.9, const real_t alpha=0.5 *(1.0+sqrt(5.0)), const real_t gamma=1.0) |
| | Enable adaptive linear solver relative tolerance algorithm.
|
| |
| | IterativeSolver () |
| |
| | IterativeSolver (MPI_Comm comm_) |
| |
| void | SetMonitor (IterativeSolverMonitor &m) |
| | Set the iterative solver monitor.
|
| |
| MPI_Comm | GetComm () const |
| | Return the associated MPI communicator, or MPI_COMM_NULL if no communicator is set.
|
| |
| void | SetRelTol (real_t rtol) |
| |
| void | SetAbsTol (real_t atol) |
| |
| void | SetMaxIter (int max_it) |
| |
| virtual void | SetPrintLevel (int print_lvl) |
| | Legacy method to set the level of verbosity of the solver output.
|
| |
| virtual void | SetPrintLevel (PrintLevel) |
| | Set the level of verbosity of the solver output.
|
| |
| int | GetNumIterations () const |
| | Returns the number of iterations taken during the last call to Mult()
|
| |
| bool | GetConverged () const |
| | Returns true if the last call to Mult() converged successfully.
|
| |
| real_t | GetInitialNorm () const |
| | Returns the initial residual norm from the last call to Mult().
|
| |
| real_t | GetFinalNorm () const |
| | Returns the final residual norm after termination of the solver during the last call to Mult().
|
| |
| real_t | GetFinalRelNorm () const |
| | Returns the final residual norm after termination of the solver during the last call to Mult(), divided by the initial residual norm. Returns -1 if one of these norms is left undefined by the solver.
|
| |
| | Solver (int s=0, bool iter_mode=false) |
| | Initialize a square Solver with size s.
|
| |
| | Solver (int h, int w, bool iter_mode=false) |
| | Initialize a Solver with height h and width w.
|
| |
| void | InitTVectors (const Operator *Po, const Operator *Ri, const Operator *Pi, Vector &x, Vector &b, Vector &X, Vector &B) const |
| | Initializes memory for true vectors of linear system.
|
| |
| | Operator (int s=0) |
| | Construct a square Operator with given size s (default 0).
|
| |
| | Operator (int h, int w) |
| | Construct an Operator with the given height (output size) and width (input size).
|
| |
| int | Height () const |
| | Get the height (size of output) of the Operator. Synonym with NumRows().
|
| |
| int | NumRows () const |
| | Get the number of rows (size of output) of the Operator. Synonym with Height().
|
| |
| int | Width () const |
| | Get the width (size of input) of the Operator. Synonym with NumCols().
|
| |
| int | NumCols () const |
| | Get the number of columns (size of input) of the Operator. Synonym with Width().
|
| |
| virtual MemoryClass | GetMemoryClass () const |
| | Return the MemoryClass preferred by the Operator.
|
| |
| virtual void | MultTranspose (const Vector &x, Vector &y) const |
| | Action of the transpose operator: y=A^t(x). The default behavior in class Operator is to generate an error.
|
| |
| virtual void | AddMult (const Vector &x, Vector &y, const real_t a=1.0) const |
| | Operator application: y+=A(x) (default) or y+=a*A(x).
|
| |
| virtual void | AddMultTranspose (const Vector &x, Vector &y, const real_t a=1.0) const |
| | Operator transpose application: y+=A^t(x) (default) or y+=a*A^t(x).
|
| |
| virtual void | ArrayMult (const Array< const Vector * > &X, Array< Vector * > &Y) const |
| | Operator application on a matrix: Y=A(X).
|
| |
| virtual void | ArrayMultTranspose (const Array< const Vector * > &X, Array< Vector * > &Y) const |
| | Action of the transpose operator on a matrix: Y=A^t(X).
|
| |
| virtual void | ArrayAddMult (const Array< const Vector * > &X, Array< Vector * > &Y, const real_t a=1.0) const |
| | Operator application on a matrix: Y+=A(X) (default) or Y+=a*A(X).
|
| |
| virtual void | ArrayAddMultTranspose (const Array< const Vector * > &X, Array< Vector * > &Y, const real_t a=1.0) const |
| | Operator transpose application on a matrix: Y+=A^t(X) (default) or Y+=a*A^t(X).
|
| |
| virtual Operator & | GetGradient (const Vector &x) const |
| | Evaluate the gradient operator at the point x. The default behavior in class Operator is to generate an error.
|
| |
| virtual void | AssembleDiagonal (Vector &diag) const |
| | Computes the diagonal entries into diag. Typically, this operation only makes sense for linear Operators. In some cases, only an approximation of the diagonal is computed.
|
| |
| virtual const Operator * | GetProlongation () const |
| | Prolongation operator from linear algebra (linear system) vectors, to input vectors for the operator. NULL means identity.
|
| |
| virtual const Operator * | GetRestriction () const |
| | Restriction operator from input vectors for the operator to linear algebra (linear system) vectors. NULL means identity.
|
| |
| virtual const Operator * | GetOutputProlongation () const |
| | Prolongation operator from linear algebra (linear system) vectors, to output vectors for the operator. NULL means identity.
|
| |
| virtual const Operator * | GetOutputRestrictionTranspose () const |
| | Transpose of GetOutputRestriction, directly available in this form to facilitate matrix-free RAP-type operators.
|
| |
| virtual const Operator * | GetOutputRestriction () const |
| | Restriction operator from output vectors for the operator to linear algebra (linear system) vectors. NULL means identity.
|
| |
| void | FormLinearSystem (const Array< int > &ess_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B, int copy_interior=0) |
| | Form a constrained linear system using a matrix-free approach.
|
| |
| void | FormRectangularLinearSystem (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B) |
| | Form a column-constrained linear system using a matrix-free approach.
|
| |
| virtual void | RecoverFEMSolution (const Vector &X, const Vector &b, Vector &x) |
| | Reconstruct a solution vector x (e.g. a GridFunction) from the solution X of a constrained linear system obtained from Operator::FormLinearSystem() or Operator::FormRectangularLinearSystem().
|
| |
| void | FormSystemOperator (const Array< int > &ess_tdof_list, Operator *&A) |
| | Return in A a parallel (on truedofs) version of this square operator.
|
| |
| void | FormRectangularSystemOperator (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, Operator *&A) |
| | Return in A a parallel (on truedofs) version of this rectangular operator (including constraints).
|
| |
| void | FormDiscreteOperator (Operator *&A) |
| | Return in A a parallel (on truedofs) version of this rectangular operator.
|
| |
| void | PrintMatlab (std::ostream &out, int n, int m=0) const |
| | Prints operator with input size n and output size m in Matlab format.
|
| |
| virtual void | PrintMatlab (std::ostream &out) const |
| | Prints operator in Matlab format.
|
| |
| virtual | ~Operator () |
| | Virtual destructor.
|
| |
| Type | GetType () const |
| | Return the type ID of the Operator class.
|
| |
|
| const IntegrationRule & | GetIntegrationRule (const FiniteElement &el) const |
| |
| real_t | ComputeMinDet (const Vector &d_loc, const FiniteElementSpace &fes) const |
| |
| real_t | MinDetJpr_2D (const FiniteElementSpace *, const Vector &) const |
| |
| real_t | MinDetJpr_3D (const FiniteElementSpace *, const Vector &) const |
| |
| bool | IsSurfaceFittingEnabled () const |
| | Check if surface fitting is enabled.
|
| |
|
| virtual void | GetSurfaceFittingError (const Vector &d_loc, real_t &err_avg, real_t &err_max) const |
| |
| void | UpdateSurfaceFittingWeight (real_t factor) const |
| | Update surface fitting weight as surf_fit_weight *= factor.
|
| |
| void | GetSurfaceFittingWeight (Array< real_t > &weights) const |
| | Get the surface fitting weight for all the TMOP integrators.
|
| |
| void | DeleteStorageVectors () |
| |
| void | InitializeStorageVectors () |
| |
| void | AdaptiveLinRtolPreSolve (const Vector &x, const int it, const real_t fnorm) const |
| | Method for the adaptive linear solver rtol invoked before the linear solve.
|
| |
| void | AdaptiveLinRtolPostSolve (const Vector &x, const Vector &b, const int it, const real_t fnorm) const |
| | Method for the adaptive linear solver rtol invoked after the linear solve.
|
| |
| virtual real_t | Dot (const Vector &x, const Vector &y) const |
| | Return the standard (l2, i.e., Euclidean) inner product of x and y.
|
| |
| real_t | Norm (const Vector &x) const |
| | Return the inner product norm of x, using the inner product defined by Dot()
|
| |
| bool | Monitor (int it, real_t norm, const Vector &r, const Vector &x, bool final=false) const |
| | Monitor both the residual r and the solution x.
|
| |
| PrintLevel | FromLegacyPrintLevel (int) |
| | Convert a legacy print level integer to a PrintLevel object.
|
| |
| void | FormConstrainedSystemOperator (const Array< int > &ess_tdof_list, ConstrainedOperator *&Aout) |
| | see FormSystemOperator()
|
| |
| void | FormRectangularConstrainedSystemOperator (const Array< int > &trial_tdof_list, const Array< int > &test_tdof_list, RectangularConstrainedOperator *&Aout) |
| | see FormRectangularSystemOperator()
|
| |
| Operator * | SetupRAP (const Operator *Pi, const Operator *Po) |
| | Returns RAP Operator of this, using input/output Prolongation matrices Pi corresponds to "P", Po corresponds to "Rt".
|
| |