WaveBEM: Unsteady Nonlinear Potential Flow Solver for Ship-Wave Interaction.
RestartNonlinearProblemAlg Class Reference

#include <restart_nonlinear_problem_alg.h>

Inheritance diagram for RestartNonlinearProblemAlg:
NewtonArgument

Public Member Functions

 RestartNonlinearProblemAlg (FreeSurface< 3 > &free_surface, const NumericalTowingTank &comp_dom, const double &time, Vector< double > &free_surf_y, Vector< double > &free_surf_y_dot, const SparseMatrix< double > &free_surf_jacobian)
 
virtual unsigned int n_dofs () const
 Returns the number of degrees of freedom. More...
 
virtual void output_step (Vector< double > &solution, const unsigned int step_number)
 This function is called at the end of each iteration step for the newton solver. More...
 
virtual int residual (Vector< double > &dst, const Vector< double > &src_yy)
 For newton solver, we need a residual function. More...
 
virtual int jacobian (Vector< double > &dst, const Vector< double > &src_yy, const Vector< double > &src)
 Jacobian vector product for newton solver. More...
 
virtual int setup_jacobian_prec (const Vector< double > &src_yy)
 Setup Jacobian preconditioner for Newton. More...
 
virtual int jacobian_prec (Vector< double > &dst, const Vector< double > &src_yy, const Vector< double > &src)
 Jacobian inverse preconditioner vector product for newton solver. More...
 
virtual int jacobian_prec_prod (Vector< double > &dst, const Vector< double > &src_yy, const Vector< double > &src)
 Jacobian preconditioner vector product for newton solver. More...
 
- Public Member Functions inherited from NewtonArgument
virtual ~NewtonArgument ()
 

Public Attributes

std::map< unsigned int, unsigned int > indices_map
 

Private Attributes

FreeSurface< 3 > & free_surface
 
const NumericalTowingTankcomp_dom
 
const double & time
 
Vector< double > & free_surf_y
 
Vector< double > & free_surf_y_dot
 
const SparseMatrix< double > & free_surf_jacobian
 
Vector< double > free_surf_jac_x_delta
 
Vector< double > free_surf_res
 
std::set< unsigned int > dphi_dn_indices
 
SparsityPattern jacobian_sparsity_pattern
 
SparseMatrix< double > jacobian_matrix
 

Detailed Description

Definition at line 15 of file restart_nonlinear_problem_alg.h.

Constructor & Destructor Documentation

RestartNonlinearProblemAlg::RestartNonlinearProblemAlg ( FreeSurface< 3 > &  free_surface,
const NumericalTowingTank comp_dom,
const double &  time,
Vector< double > &  free_surf_y,
Vector< double > &  free_surf_y_dot,
const SparseMatrix< double > &  free_surf_jacobian 
)
inline

Definition at line 19 of file restart_nonlinear_problem_alg.h.

Member Function Documentation

int RestartNonlinearProblemAlg::jacobian ( Vector< double > &  dst,
const Vector< double > &  src_yy,
const Vector< double > &  src 
)
virtual

Jacobian vector product for newton solver.

Reimplemented from NewtonArgument.

Definition at line 51 of file restart_nonlinear_problem_alg.cc.

int RestartNonlinearProblemAlg::jacobian_prec ( Vector< double > &  dst,
const Vector< double > &  src_yy,
const Vector< double > &  src 
)
virtual

Jacobian inverse preconditioner vector product for newton solver.

Inverse preconditioner vector product for newton solver.

Reimplemented from NewtonArgument.

Definition at line 88 of file restart_nonlinear_problem_alg.cc.

int RestartNonlinearProblemAlg::jacobian_prec_prod ( Vector< double > &  dst,
const Vector< double > &  src_yy,
const Vector< double > &  src 
)
virtual

Jacobian preconditioner vector product for newton solver.

Preconditioner vector product for newton solver.

Reimplemented from NewtonArgument.

Definition at line 100 of file restart_nonlinear_problem_alg.cc.

unsigned int RestartNonlinearProblemAlg::n_dofs ( ) const
virtual

Returns the number of degrees of freedom.

Pure virtual function.

Implements NewtonArgument.

Definition at line 3 of file restart_nonlinear_problem_alg.cc.

void RestartNonlinearProblemAlg::output_step ( Vector< double > &  solution,
const unsigned int  step_number 
)
virtual

This function is called at the end of each iteration step for the newton solver.

Once again, the conversion between pointers and other forms of vectors need to be done inside the inheriting class.

Implements NewtonArgument.

Definition at line 11 of file restart_nonlinear_problem_alg.cc.

int RestartNonlinearProblemAlg::residual ( Vector< double > &  dst,
const Vector< double > &  src_yy 
)
virtual

For newton solver, we need a residual function.

This one is computed with sacado to allow computations of derivatives for jacobian

Implements NewtonArgument.

Definition at line 20 of file restart_nonlinear_problem_alg.cc.

int RestartNonlinearProblemAlg::setup_jacobian_prec ( const Vector< double > &  src_yy)
virtual

Setup Jacobian preconditioner for Newton.

Preconditioner is the jacobian itself, so this matrix has nothing to do.

Reimplemented from NewtonArgument.

Definition at line 110 of file restart_nonlinear_problem_alg.cc.

Member Data Documentation

const NumericalTowingTank& RestartNonlinearProblemAlg::comp_dom
private

Definition at line 139 of file restart_nonlinear_problem_alg.h.

std::set<unsigned int> RestartNonlinearProblemAlg::dphi_dn_indices
private

Definition at line 147 of file restart_nonlinear_problem_alg.h.

Vector<double> RestartNonlinearProblemAlg::free_surf_jac_x_delta
private

Definition at line 145 of file restart_nonlinear_problem_alg.h.

const SparseMatrix<double>& RestartNonlinearProblemAlg::free_surf_jacobian
private

Definition at line 143 of file restart_nonlinear_problem_alg.h.

Vector<double> RestartNonlinearProblemAlg::free_surf_res
private

Definition at line 146 of file restart_nonlinear_problem_alg.h.

Vector<double>& RestartNonlinearProblemAlg::free_surf_y
private

Definition at line 141 of file restart_nonlinear_problem_alg.h.

Vector<double>& RestartNonlinearProblemAlg::free_surf_y_dot
private

Definition at line 142 of file restart_nonlinear_problem_alg.h.

FreeSurface<3>& RestartNonlinearProblemAlg::free_surface
private

Definition at line 138 of file restart_nonlinear_problem_alg.h.

std::map<unsigned int,unsigned int> RestartNonlinearProblemAlg::indices_map

Definition at line 152 of file restart_nonlinear_problem_alg.h.

SparseMatrix<double> RestartNonlinearProblemAlg::jacobian_matrix
private

Definition at line 149 of file restart_nonlinear_problem_alg.h.

SparsityPattern RestartNonlinearProblemAlg::jacobian_sparsity_pattern
private

Definition at line 148 of file restart_nonlinear_problem_alg.h.

const double& RestartNonlinearProblemAlg::time
private

Definition at line 140 of file restart_nonlinear_problem_alg.h.


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