PyTrilinos::NOX::Epetra::LinearSystem Class Reference

Inheritance diagram for PyTrilinos::NOX::Epetra::LinearSystem:

Inheritance graph
[legend]
Collaboration diagram for PyTrilinos::NOX::Epetra::LinearSystem:

Collaboration graph
[legend]

List of all members.

Public Member Functions

def __init__
def applyJacobian
def applyJacobianTranspose
def applyJacobianInverse
def applyRightPreconditioning
def getScaling
def resetScaling
def computeJacobian
def createPreconditioner
def destroyPreconditioner
def recomputePreconditioner
def getPreconditionerPolicy
def isPreconditionerConstructed
def hasPreconditioner
def getJacobianOperator
def getGeneratedPrecOperator
def setJacobianOperatorForSolve
def setPrecOperatorForSolve
def __disown__
def __init__
def applyJacobian
def applyJacobianTranspose
def applyJacobianInverse
def applyRightPreconditioning
def getScaling
def resetScaling
def computeJacobian
def createPreconditioner
def destroyPreconditioner
def recomputePreconditioner
def getPreconditionerPolicy
def isPreconditionerConstructed
def hasPreconditioner
def getJacobianOperator
def getGeneratedPrecOperator
def setJacobianOperatorForSolve
def setPrecOperatorForSolve
def __disown__

Public Attributes

 this

Static Public Attributes

 PRPT_REBUILD = ___init__.LinearSystem_PRPT_REBUILD
 PRPT_RECOMPUTE = ___init__.LinearSystem_PRPT_RECOMPUTE
 PRPT_REUSE = ___init__.LinearSystem_PRPT_REUSE


Detailed Description

Pure virtual class interface for allowing different linear solvers to
be used by the NOX::Epetra::Group.

C++ includes: NOX_Epetra_LinearSystem.H 

Member Function Documentation

def PyTrilinos::NOX::Epetra::LinearSystem::__init__ (   self,
  args 
)

__init__(self) -> LinearSystem

NOX::Epetra::LinearSystem::LinearSystem()

Constructor. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::__init__ (   self,
  args 
)

__init__(self) -> LinearSystem

NOX::Epetra::LinearSystem::LinearSystem()

Constructor. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobian (   self,
  args 
)

applyJacobian(self, Vector input, Vector nox_result) -> bool

virtual bool NOX::Epetra::LinearSystem::applyJacobian(const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Applies Jacobian to the given input vector and puts the answer in the
result.

Computes \\[ v = J u, \\] where $J$ is the Jacobian, $u$ is the
input vector, and $v$ is the result vector. Returns true if
successful. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobian (   self,
  args 
)

applyJacobian(self, Vector input, Vector nox_result) -> bool

virtual bool NOX::Epetra::LinearSystem::applyJacobian(const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Applies Jacobian to the given input vector and puts the answer in the
result.

Computes \\[ v = J u, \\] where $J$ is the Jacobian, $u$ is the
input vector, and $v$ is the result vector. Returns true if
successful. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobianInverse (   self,
  args 
)

applyJacobianInverse(self, ParameterList params, Vector input, Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyJacobianInverse(Teuchos::ParameterList
&params, const NOX::Epetra::Vector &input, NOX::Epetra::Vector
&result)=0

Applies the inverse of the Jacobian matrix to the given input vector
and puts the answer in result.

Computes \\[ v = J^{-1} u, \\] where $J$ is the Jacobian, $u$ is
the input vector, and $v$ is the result vector.

The parameter list contains the linear solver options. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobianInverse (   self,
  args 
)

applyJacobianInverse(self, ParameterList params, Vector input, Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyJacobianInverse(Teuchos::ParameterList
&params, const NOX::Epetra::Vector &input, NOX::Epetra::Vector
&result)=0

Applies the inverse of the Jacobian matrix to the given input vector
and puts the answer in result.

Computes \\[ v = J^{-1} u, \\] where $J$ is the Jacobian, $u$ is
the input vector, and $v$ is the result vector.

The parameter list contains the linear solver options. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobianTranspose (   self,
  args 
)

applyJacobianTranspose(self, Vector input, Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyJacobianTranspose(const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Applies Jacobian-Transpose to the given input vector and puts the
answer in the result.

Computes \\[ v = J^T u, \\] where $J$ is the Jacobian, $u$ is the
input vector, and $v$ is the result vector. Returns true if
successful. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyJacobianTranspose (   self,
  args 
)

applyJacobianTranspose(self, Vector input, Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyJacobianTranspose(const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Applies Jacobian-Transpose to the given input vector and puts the
answer in the result.

Computes \\[ v = J^T u, \\] where $J$ is the Jacobian, $u$ is the
input vector, and $v$ is the result vector. Returns true if
successful. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyRightPreconditioning (   self,
  args 
)

applyRightPreconditioning(self, bool useTranspose, ParameterList params, Vector input, 
    Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyRightPreconditioning(bool
useTranspose, Teuchos::ParameterList &params, const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Apply right preconditiong to the given input vector.

Let $M$ be a right preconditioner for the Jacobian $J$; in other
words, $M$ is a matrix such that \\[ JM \\approx I. \\]

Compute \\[ u = M^{-1} v, \\] where $u$ is the input vector and
$v$ is the result vector.

If useTranspose is true, then the transpose of the preconditioner is
applied: \\[ u = {M^{-1}}^T v, \\] The transpose preconditioner is
currently only required for Tensor methods.

The parameter list contains the linear solver options. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::applyRightPreconditioning (   self,
  args 
)

applyRightPreconditioning(self, bool useTranspose, ParameterList params, Vector input, 
    Vector nox_result) -> bool

virtual bool
NOX::Epetra::LinearSystem::applyRightPreconditioning(bool
useTranspose, Teuchos::ParameterList &params, const
NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0

Apply right preconditiong to the given input vector.

Let $M$ be a right preconditioner for the Jacobian $J$; in other
words, $M$ is a matrix such that \\[ JM \\approx I. \\]

Compute \\[ u = M^{-1} v, \\] where $u$ is the input vector and
$v$ is the result vector.

If useTranspose is true, then the transpose of the preconditioner is
applied: \\[ u = {M^{-1}}^T v, \\] The transpose preconditioner is
currently only required for Tensor methods.

The parameter list contains the linear solver options. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::computeJacobian (   self,
  args 
)

computeJacobian(self, Vector x) -> bool

virtual bool NOX::Epetra::LinearSystem::computeJacobian(const
NOX::Epetra::Vector &x)=0

Evaluates the Jacobian based on the solution vector x. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::computeJacobian (   self,
  args 
)

computeJacobian(self, Vector x) -> bool

virtual bool NOX::Epetra::LinearSystem::computeJacobian(const
NOX::Epetra::Vector &x)=0

Evaluates the Jacobian based on the solution vector x. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::createPreconditioner (   self,
  args 
)

createPreconditioner(self, Vector x, ParameterList p, bool recomputeGraph) -> bool

virtual bool NOX::Epetra::LinearSystem::createPreconditioner(const
NOX::Epetra::Vector &x, Teuchos::ParameterList &p, bool
recomputeGraph) const =0

Explicitly constructs a preconditioner based on the solution vector x
and the parameter list p.

The user has the option of recomputing the graph when a new
preconditioner is created. The NOX::Epetra::Group controls the isValid
flag for the preconditioner and will control when to call this. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::createPreconditioner (   self,
  args 
)

createPreconditioner(self, Vector x, ParameterList p, bool recomputeGraph) -> bool

virtual bool NOX::Epetra::LinearSystem::createPreconditioner(const
NOX::Epetra::Vector &x, Teuchos::ParameterList &p, bool
recomputeGraph) const =0

Explicitly constructs a preconditioner based on the solution vector x
and the parameter list p.

The user has the option of recomputing the graph when a new
preconditioner is created. The NOX::Epetra::Group controls the isValid
flag for the preconditioner and will control when to call this. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::destroyPreconditioner (   self,
  args 
)

destroyPreconditioner(self) -> bool

virtual bool
NOX::Epetra::LinearSystem::destroyPreconditioner() const =0

Deletes the preconditioner.

The NOX::Epetra::Group controls the isValid flag for the
preconditioner and will control when to call this. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::destroyPreconditioner (   self,
  args 
)

destroyPreconditioner(self) -> bool

virtual bool
NOX::Epetra::LinearSystem::destroyPreconditioner() const =0

Deletes the preconditioner.

The NOX::Epetra::Group controls the isValid flag for the
preconditioner and will control when to call this. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getGeneratedPrecOperator (   self,
  args 
)

getGeneratedPrecOperator(self) -> Teuchos::RCP<(q(const).Epetra_Operator)>
getGeneratedPrecOperator(self) -> Teuchos::RCP<(Epetra_Operator)>

virtual
Teuchos::RCP<Epetra_Operator>
NOX::Epetra::LinearSystem::getGeneratedPrecOperator()=0

Return preconditioner operator. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getGeneratedPrecOperator (   self,
  args 
)

getGeneratedPrecOperator(self) -> Teuchos::RCP<(q(const).Epetra_Operator)>
getGeneratedPrecOperator(self) -> Teuchos::RCP<(Epetra_Operator)>

virtual
Teuchos::RCP<Epetra_Operator>
NOX::Epetra::LinearSystem::getGeneratedPrecOperator()=0

Return preconditioner operator. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getJacobianOperator (   self,
  args 
)

getJacobianOperator(self) -> Teuchos::RCP<(q(const).Epetra_Operator)>
getJacobianOperator(self) -> Teuchos::RCP<(Epetra_Operator)>

virtual Teuchos::RCP<Epetra_Operator>
NOX::Epetra::LinearSystem::getJacobianOperator()=0

Return Jacobian operator. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getJacobianOperator (   self,
  args 
)

getJacobianOperator(self) -> Teuchos::RCP<(q(const).Epetra_Operator)>
getJacobianOperator(self) -> Teuchos::RCP<(Epetra_Operator)>

virtual Teuchos::RCP<Epetra_Operator>
NOX::Epetra::LinearSystem::getJacobianOperator()=0

Return Jacobian operator. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getPreconditionerPolicy (   self,
  args 
)

getPreconditionerPolicy(self, bool advanceReuseCounter = True) -> PreconditionerReusePolicyType

virtual
PreconditionerReusePolicyType
NOX::Epetra::LinearSystem::getPreconditionerPolicy(bool
advanceReuseCounter=true)=0

Evaluates the preconditioner policy at the current state.

NOTE: This can change values between nonlienar iterations. It is not a
static value. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getPreconditionerPolicy (   self,
  args 
)

getPreconditionerPolicy(self, bool advanceReuseCounter = True) -> PreconditionerReusePolicyType

virtual
PreconditionerReusePolicyType
NOX::Epetra::LinearSystem::getPreconditionerPolicy(bool
advanceReuseCounter=true)=0

Evaluates the preconditioner policy at the current state.

NOTE: This can change values between nonlienar iterations. It is not a
static value. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getScaling (   self,
  args 
)

getScaling(self) -> Teuchos::RCP<(NOX::Epetra::Scaling)>

virtual
Teuchos::RCP<NOX::Epetra::Scaling>
NOX::Epetra::LinearSystem::getScaling()=0

Get the scaling object. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::getScaling (   self,
  args 
)

getScaling(self) -> Teuchos::RCP<(NOX::Epetra::Scaling)>

virtual
Teuchos::RCP<NOX::Epetra::Scaling>
NOX::Epetra::LinearSystem::getScaling()=0

Get the scaling object. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::hasPreconditioner (   self,
  args 
)

hasPreconditioner(self) -> bool

virtual bool NOX::Epetra::LinearSystem::hasPreconditioner() const =0

Indicates whether the linear system has a preconditioner. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::hasPreconditioner (   self,
  args 
)

hasPreconditioner(self) -> bool

virtual bool NOX::Epetra::LinearSystem::hasPreconditioner() const =0

Indicates whether the linear system has a preconditioner. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::isPreconditionerConstructed (   self,
  args 
)

isPreconditionerConstructed(self) -> bool

virtual bool
NOX::Epetra::LinearSystem::isPreconditionerConstructed() const =0

Indicates whether a preconditioner has been constructed. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::isPreconditionerConstructed (   self,
  args 
)

isPreconditionerConstructed(self) -> bool

virtual bool
NOX::Epetra::LinearSystem::isPreconditionerConstructed() const =0

Indicates whether a preconditioner has been constructed. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::recomputePreconditioner (   self,
  args 
)

recomputePreconditioner(self, Vector x, ParameterList linearSolverParams) -> bool

virtual bool
NOX::Epetra::LinearSystem::recomputePreconditioner(const
NOX::Epetra::Vector &x, Teuchos::ParameterList &linearSolverParams)
const =0

Recalculates the preconditioner using an already allocated graph.

Use this to compute a new preconditioner while using the same graph
for the preconditioner. This avoids deleting and reallocating the
memory required for the preconditioner and results in a big speed-up
for large-scale jobs. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::recomputePreconditioner (   self,
  args 
)

recomputePreconditioner(self, Vector x, ParameterList linearSolverParams) -> bool

virtual bool
NOX::Epetra::LinearSystem::recomputePreconditioner(const
NOX::Epetra::Vector &x, Teuchos::ParameterList &linearSolverParams)
const =0

Recalculates the preconditioner using an already allocated graph.

Use this to compute a new preconditioner while using the same graph
for the preconditioner. This avoids deleting and reallocating the
memory required for the preconditioner and results in a big speed-up
for large-scale jobs. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::resetScaling (   self,
  args 
)

resetScaling(self, Teuchos::RCP<(NOX::Epetra::Scaling)> s)

virtual void NOX::Epetra::LinearSystem::resetScaling(const
Teuchos::RCP< NOX::Epetra::Scaling > &s)=0

Sets the diagonal scaling vector(s) used in scaling the linear system.

See NOX::Epetra::Scaling for details on how to specify scaling of the
linear system. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::resetScaling (   self,
  args 
)

resetScaling(self, Teuchos::RCP<(NOX::Epetra::Scaling)> s)

virtual void NOX::Epetra::LinearSystem::resetScaling(const
Teuchos::RCP< NOX::Epetra::Scaling > &s)=0

Sets the diagonal scaling vector(s) used in scaling the linear system.

See NOX::Epetra::Scaling for details on how to specify scaling of the
linear system. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::setJacobianOperatorForSolve (   self,
  args 
)

setJacobianOperatorForSolve(self, Teuchos::RCP<(q(const).Epetra_Operator)> solveJacOp)

virtual void
NOX::Epetra::LinearSystem::setJacobianOperatorForSolve(const
Teuchos::RCP< const Epetra_Operator > &solveJacOp)=0

Set Jacobian operator for solve. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::setJacobianOperatorForSolve (   self,
  args 
)

setJacobianOperatorForSolve(self, Teuchos::RCP<(q(const).Epetra_Operator)> solveJacOp)

virtual void
NOX::Epetra::LinearSystem::setJacobianOperatorForSolve(const
Teuchos::RCP< const Epetra_Operator > &solveJacOp)=0

Set Jacobian operator for solve. 

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::setPrecOperatorForSolve (   self,
  args 
)

setPrecOperatorForSolve(self, Teuchos::RCP<(q(const).Epetra_Operator)> solvePrecOp)

virtual void
NOX::Epetra::LinearSystem::setPrecOperatorForSolve(const Teuchos::RCP<
const Epetra_Operator > &solvePrecOp)=0

Set preconditioner operator for solve.

Note: This should only be called if hasPreconditioner() returns true.

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.

def PyTrilinos::NOX::Epetra::LinearSystem::setPrecOperatorForSolve (   self,
  args 
)

setPrecOperatorForSolve(self, Teuchos::RCP<(q(const).Epetra_Operator)> solvePrecOp)

virtual void
NOX::Epetra::LinearSystem::setPrecOperatorForSolve(const Teuchos::RCP<
const Epetra_Operator > &solvePrecOp)=0

Set preconditioner operator for solve.

Note: This should only be called if hasPreconditioner() returns true.

Reimplemented in PyTrilinos::NOX::Epetra::LinearSystemAztecOO, and PyTrilinos::NOX::Epetra::LinearSystemAztecOO.


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

Generated on Thu Dec 17 11:00:22 2009 for PyTrilinos by  doxygen 1.5.9