Documentation 6b54b78464
Loading...
Searching...
No Matches
CNewtonIntegration Class Referencefinal

Class for time integration using a Newton-Krylov method, based on matrix-free products with the true Jacobian via finite differences. More...

#include <CNewtonIntegration.hpp>

Inheritance diagram for CNewtonIntegration:
[legend]

Public Types

using Scalar = passivedouble
 
using MixedScalar = su2mixedfloat
 

Public Member Functions

 CNewtonIntegration ()=default
 Constructor.
 
 ~CNewtonIntegration ()
 Destructor.
 
void MultiGrid_Iteration (CGeometry ****geometry, CSolver *****solver_container, CNumerics ******numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iZone, unsigned short iInst) override
 This class overrides this method to make it a drop-in replacement for CMultigridIntegration.
 
void MatrixFreeProduct (const CSysVector< Scalar > &u, CSysVector< Scalar > &v)
 Implementation of matrix-vector product with the real Jacobian of the nonlinear residuals.
 
void Preconditioner (const CSysVector< Scalar > &u, CSysVector< Scalar > &v) const
 Wrapper for the preconditioner.
 
- Public Member Functions inherited from CIntegration
 CIntegration ()
 Constructor of the class.
 
virtual ~CIntegration (void)=default
 Destructor of the class.
 
void SetDualTime_Geometry (CGeometry *geometry, CSolver *mesh_solver, const CConfig *config, unsigned short iMesh)
 Save the geometry at different time steps.
 
virtual void SetDualTime_Solver (const CGeometry *geometry, CSolver *solver, const CConfig *config, unsigned short iMesh)
 Save the solution at different time steps, and reset certain fields for the next timestep.
 
virtual void MonitorFullMG_Startup (const vector< pair< string, passivedouble > > &convFields, const CConfig *config)
 Report the convergence fields on the active mesh level to a Full-MG startup.
 
virtual bool GetFullMG_CFLRamp () const
 Whether the Full-MG startup is still ramping the CFL of the finest grid.
 
virtual unsigned long GetLevelStartIter () const
 InnerIter at which the currently active Full-MG level became active.
 
virtual void SingleGrid_Iteration (CGeometry ****geometry, CSolver *****solver_container, CNumerics ******numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iZone, unsigned short iInst)
 A virtual member.
 
virtual void Structural_Iteration (CGeometry ****geometry, CSolver *****solver_container, CNumerics ******numerics_container, CConfig **config, unsigned short RunTime_EqSystem, unsigned short iZone, unsigned short iInst)
 A virtual member.
 

Additional Inherited Members

- Protected Member Functions inherited from CIntegration
void Space_Integration (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem)
 Do the space integration of the numerical system.
 
void Time_Integration (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, unsigned short RunTime_EqSystem)
 Do the time integration (explicit or implicit) of the numerical system.
 
- Protected Attributes inherited from CIntegration
int rank
 MPI Rank.
 
int size
 MPI Size.
 

Detailed Description

Class for time integration using a Newton-Krylov method, based on matrix-free products with the true Jacobian via finite differences.

Author
P. Gomes

Member Typedef Documentation

◆ MixedScalar

◆ Scalar

Constructor & Destructor Documentation

◆ CNewtonIntegration()

CNewtonIntegration::CNewtonIntegration ( )
default

Constructor.

◆ ~CNewtonIntegration()

CNewtonIntegration::~CNewtonIntegration ( )

Destructor.

Member Function Documentation

◆ MatrixFreeProduct()

void CNewtonIntegration::MatrixFreeProduct ( const CSysVector< Scalar > &  u,
CSysVector< Scalar > &  v 
)

Implementation of matrix-vector product with the real Jacobian of the nonlinear residuals.

◆ MultiGrid_Iteration()

void CNewtonIntegration::MultiGrid_Iteration ( CGeometry ****  geometry,
CSolver *****  solver_container,
CNumerics ******  numerics_container,
CConfig **  config,
unsigned short  RunTime_EqSystem,
unsigned short  iZone,
unsigned short  iInst 
)
overridevirtual

This class overrides this method to make it a drop-in replacement for CMultigridIntegration.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]numerics_container- Description of the numerical method (the way in which the equations are solved).
[in]config- Definition of the particular problem.
[in]RunTime_EqSystem- System of equations which is going to be solved.
[in]iZone- Current zone.
[in]iInst- Current instance.

TODO: Clever back-tracking and CFL adaptation based on residual reduction.

Reimplemented from CIntegration.

◆ Preconditioner()

void CNewtonIntegration::Preconditioner ( const CSysVector< Scalar > &  u,
CSysVector< Scalar > &  v 
) const

Wrapper for the preconditioner.


The documentation for this class was generated from the following files: