HermesCommon  2.0
Hermes::Solvers::DiscreteProblemInterface< Scalar > Class Template Referenceabstract

Minimalistic DiscreteProblem interface required by NoxProblemInterface. More...

#include <dp_interface.h>

+ Inheritance diagram for Hermes::Solvers::DiscreteProblemInterface< Scalar >:

Public Member Functions

virtual int get_num_dofs () const =0
 Get the number of unknowns.
 
virtual bool is_matrix_free () const =0
 Get info about presence of a matrix.
 
virtual void assemble (Scalar *coeff_vec, SparseMatrix< Scalar > *mat, Vector< Scalar > *rhs=NULL, bool force_diagonal_blocks=false, Table *block_weights=NULL)=0
 
virtual void assemble (Scalar *coeff_vec, Vector< Scalar > *rhs=NULL, bool force_diagonal_blocks=false, Table *block_weights=NULL)=0
 
- Public Member Functions inherited from Hermes::Mixins::SettableComputationTime
virtual void set_time (double time)
 set time information for time-dependent problems.
 
virtual void set_time_step (double time_step)
 

Protected Member Functions

virtual void create_sparse_structure ()=0
 
virtual void create_sparse_structure (SparseMatrix< Scalar > *mat, Vector< Scalar > *rhs=NULL)=0
 

Friends

template<typename T >
class DiscreteProblemNOX
 

Additional Inherited Members

- Public Attributes inherited from Hermes::Mixins::SettableComputationTime
double time
 
double time_step
 

Detailed Description

template<typename Scalar>
class Hermes::Solvers::DiscreteProblemInterface< Scalar >

Minimalistic DiscreteProblem interface required by NoxProblemInterface.

Definition at line 36 of file dp_interface.h.

Member Function Documentation

template<typename Scalar>
virtual void Hermes::Solvers::DiscreteProblemInterface< Scalar >::assemble ( Scalar *  coeff_vec,
SparseMatrix< Scalar > *  mat,
Vector< Scalar > *  rhs = NULL,
bool  force_diagonal_blocks = false,
Table block_weights = NULL 
)
pure virtual

Assembling. General assembling procedure for nonlinear problems. coeff_vec is the previous Newton vector. If force_diagonal_block == true, then (zero) matrix antries are created in diagonal blocks even if corresponding matrix weak forms do not exist. This is useful if the matrix is later to be merged with a matrix that has nonzeros in these blocks. The Table serves for optional weighting of matrix blocks in systems. The parameter add_dir_lift decides whether Dirichlet lift will be added while coeff_vec is converted into Solutions.

template<typename Scalar>
virtual void Hermes::Solvers::DiscreteProblemInterface< Scalar >::assemble ( Scalar *  coeff_vec,
Vector< Scalar > *  rhs = NULL,
bool  force_diagonal_blocks = false,
Table block_weights = NULL 
)
pure virtual

Assembling. Without the matrix.

template<typename Scalar>
virtual void Hermes::Solvers::DiscreteProblemInterface< Scalar >::create_sparse_structure ( )
protectedpure virtual

Preassembling. Precalculate matrix sparse structure. If force_diagonal_block == true, then (zero) matrix antries are created in diagonal blocks even if corresponding matrix weak forms do not exist. This is useful if the matrix is later to be merged with a matrix that has nonzeros in these blocks. The Table serves for optional weighting of matrix blocks in systems.


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