DOLFIN
DOLFIN C++ interface
Classes | Public Member Functions | List of all members
dolfin::SystemAssembler Class Reference

#include <SystemAssembler.h>

Inheritance diagram for dolfin::SystemAssembler:
Inheritance graph
[legend]
Collaboration diagram for dolfin::SystemAssembler:
Collaboration graph
[legend]

Public Member Functions

 SystemAssembler (std::shared_ptr< const Form > a, std::shared_ptr< const Form > L, std::vector< std::shared_ptr< const DirichletBC >> bcs)
 Constructor.
 
 SystemAssembler (std::vector< std::shared_ptr< const Form >> a, std::vector< std::shared_ptr< const Form >> L, std::vector< std::vector< std::shared_ptr< const DirichletBC >>> bcs)
 
 SystemAssembler (std::vector< std::shared_ptr< const Form >> a, std::vector< std::shared_ptr< const Form >> L, std::vector< std::shared_ptr< const DirichletBC >> bcs0, std::vector< std::shared_ptr< const DirichletBC >> bcs1)
 
void assemble (GenericMatrix &A, GenericVector &b)
 Assemble system (A, b)
 
void assemble (GenericMatrix &A)
 Assemble matrix A.
 
void assemble (GenericVector &b)
 Assemble vector b.
 
void assemble (GenericMatrix &A, GenericVector &b, const GenericVector &x0)
 
void assemble (GenericVector &b, const GenericVector &x0)
 
void assemble (std::vector< std::shared_ptr< GenericMatrix >> A, std::vector< std::shared_ptr< GenericVector >> b)
 Assemble row of matrices and associated RHS vector.
 
- Public Member Functions inherited from dolfin::AssemblerBase
 AssemblerBase ()
 Constructor.
 
void init_global_tensor (GenericTensor &A, const Form &a)
 

Additional Inherited Members

- Public Attributes inherited from dolfin::AssemblerBase
bool add_values
 
bool finalize_tensor
 
bool keep_diagonal
 
- Static Protected Member Functions inherited from dolfin::AssemblerBase
static void check (const Form &a)
 Check form.
 
static std::string progress_message (std::size_t rank, std::string integral_type)
 Pretty-printing for progress bar.
 

Detailed Description

This class provides an assembler for systems of the form Ax = b. It differs from the default DOLFIN assembler in that it applies boundary conditions at the time of assembly, which preserves any symmetries in A.

Constructor & Destructor Documentation

◆ SystemAssembler() [1/2]

SystemAssembler::SystemAssembler ( std::vector< std::shared_ptr< const Form >>  a,
std::vector< std::shared_ptr< const Form >>  L,
std::vector< std::vector< std::shared_ptr< const DirichletBC >>>  bcs 
)

Constructor with multiple LHS forms, matching a common RHS form with BCs defined for the column space of each LHS form

◆ SystemAssembler() [2/2]

SystemAssembler::SystemAssembler ( std::vector< std::shared_ptr< const Form >>  a,
std::vector< std::shared_ptr< const Form >>  L,
std::vector< std::shared_ptr< const DirichletBC >>  bcs0,
std::vector< std::shared_ptr< const DirichletBC >>  bcs1 
)

FIXME: Constructor with two sets of BCs (for 2x2 system) Need to figure out how to wrap vector<vector<shared_ptr<TYPE>>> in SWIG

Member Function Documentation

◆ assemble() [1/2]

void SystemAssembler::assemble ( GenericMatrix A,
GenericVector b,
const GenericVector x0 
)

Assemble system (A, b) for (negative) increment dx, where x = x0 - dx is solution to system a == -L subject to bcs. Suitable for use inside a (quasi-)Newton solver.

◆ assemble() [2/2]

void SystemAssembler::assemble ( GenericVector b,
const GenericVector x0 
)

Assemble rhs vector b for (negative) increment dx, where x = x0 - dx is solution to system a == -L subject to bcs. Suitable for use inside a (quasi-)Newton solver.


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