![]() |
MFEM v4.10.0
Finite element discretization library
|
#include <complex_fem.hpp>
Public Member Functions | |
| ParMixedSesquilinearForm (ParFiniteElementSpace *trial_fes, ParFiniteElementSpace *test_fes, ComplexOperator::Convention convention=ComplexOperator::HERMITIAN) | |
| ParMixedSesquilinearForm (ParFiniteElementSpace *trial_fes, ParFiniteElementSpace *test_fes, ParMixedBilinearForm *pbfr, ParMixedBilinearForm *pbfi, ComplexOperator::Convention convention=ComplexOperator::HERMITIAN) | |
| Create a ParMixedSesquilinearForm on the given trial and test ParFiniteElementSpaces, using the same integrators as the ParMixedBilinearForms pbfr and pbfi. | |
| ComplexOperator::Convention | GetConvention () const |
| void | SetConvention (const ComplexOperator::Convention &convention) |
| void | SetAssemblyLevel (AssemblyLevel assembly_level) |
| Set the desired assembly level. | |
| ParMixedBilinearForm & | real () |
| ParMixedBilinearForm & | imag () |
| const ParMixedBilinearForm & | real () const |
| const ParMixedBilinearForm & | imag () const |
| void | AddDomainIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Adds new Domain Integrator. | |
| void | AddDomainIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag, Array< int > &elem_marker) |
| Adds new Domain Integrator, restricted to specific attributes. | |
| void | AddBoundaryIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Adds new Boundary Integrator. | |
| void | AddBoundaryIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag, Array< int > &bdr_marker) |
| Adds new boundary Integrator, restricted to specific boundary attributes. | |
| void | AddInteriorFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Adds new interior Face Integrator. Assumes ownership of bfi. | |
| void | AddBdrFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Adds new boundary Face Integrator. Assumes ownership of bfi. | |
| void | AddBdrFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag, Array< int > &bdr_marker) |
| Adds new boundary Face Integrator, restricted to specific boundary attributes. | |
| void | AddTraceFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Add a trace face integrator. Assumes ownership of bfi. | |
| void | AddBdrTraceFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag) |
| Adds a boundary trace face integrator. Assumes ownership of bfi. | |
| void | AddBdrTraceFaceIntegrator (BilinearFormIntegrator *bfi_real, BilinearFormIntegrator *bfi_imag, Array< int > &bdr_marker) |
| Adds a boundary trace face integrator. Assumes ownership of bfi. | |
| void | Assemble (int skip_zeros=1) |
| Assemble the local matrix. | |
| void | Finalize (int skip_zeros=1) |
| Finalizes the matrix initialization. | |
| virtual void | Update () |
| Updates the internal mixed forms with the new finite element space. | |
| ComplexHypreParMatrix * | ParallelAssemble () |
| Returns the matrix assembled on the true dofs, i.e. P^t A P. | |
| void | FormRectangularLinearSystem (const Array< int > &ess_trial_tdof_list, const Array< int > &ess_test_tdof_list, Vector &x, Vector &b, OperatorHandle &A, Vector &X, Vector &B) |
| void | FormRectangularSystemMatrix (const Array< int > &ess_trial_tdof_list, const Array< int > &ess_test_tdof_list, OperatorHandle &A) |
| virtual | ~ParMixedSesquilinearForm () |
Class for a parallel mixed sesquilinear form
A mixed sesquilinear form is a generalization of a mixed bilinear form to complex-valued fields. Mixed sesquilinear forms are linear in the second argument but the first argument involves a complex conjugate in the sense that:
a(alpha u, beta v) = conj(alpha) beta a(u, v)
The convention argument in the class's constructor is documented in the mfem::ComplexOperator class found in linalg/complex_operator.hpp.
When supplying integrators to the ParMixedSesquilinearForm either the real or imaginary integrator can be NULL. This indicates that the corresponding portion of the complex-valued material coefficient is equal to zero.
Definition at line 1129 of file complex_fem.hpp.
| mfem::ParMixedSesquilinearForm::ParMixedSesquilinearForm | ( | ParFiniteElementSpace * | trial_fes, |
| ParFiniteElementSpace * | test_fes, | ||
| ComplexOperator::Convention | convention = ComplexOperator::HERMITIAN ) |
Definition at line 2157 of file complex_fem.cpp.
| mfem::ParMixedSesquilinearForm::ParMixedSesquilinearForm | ( | ParFiniteElementSpace * | trial_fes, |
| ParFiniteElementSpace * | test_fes, | ||
| ParMixedBilinearForm * | pbfr, | ||
| ParMixedBilinearForm * | pbfi, | ||
| ComplexOperator::Convention | convention = ComplexOperator::HERMITIAN ) |
Create a ParMixedSesquilinearForm on the given trial and test ParFiniteElementSpaces, using the same integrators as the ParMixedBilinearForms pbfr and pbfi.
The ParFiniteElementSpace pointers are not owned by the newly constructed object.
The integrators are copied as pointers and they are not owned by the newly constructed ParMixedSesquilinearForm.
Definition at line 2167 of file complex_fem.cpp.
|
virtual |
Definition at line 2179 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBdrFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Adds new boundary Face Integrator. Assumes ownership of bfi.
Definition at line 2261 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBdrFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag, | ||
| Array< int > & | bdr_marker ) |
Adds new boundary Face Integrator, restricted to specific boundary attributes.
Assumes ownership of bfi.
The mfem::array bdr_marker is stored internally as a pointer to the given mfem::Array<int> object.
Definition at line 2276 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBdrTraceFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Adds a boundary trace face integrator. Assumes ownership of bfi.
Definition at line 2305 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBdrTraceFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag, | ||
| Array< int > & | bdr_marker ) |
Adds a boundary trace face integrator. Assumes ownership of bfi.
Definition at line 2319 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBoundaryIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Adds new Boundary Integrator.
Definition at line 2215 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddBoundaryIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag, | ||
| Array< int > & | bdr_marker ) |
Adds new boundary Integrator, restricted to specific boundary attributes.
Assumes ownership of bfi.
The mfem::array bdr_marker is stored internally as a pointer to the given mfem::Array<int> object.
Definition at line 2230 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddDomainIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Adds new Domain Integrator.
Definition at line 2186 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddDomainIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag, | ||
| Array< int > & | elem_marker ) |
Adds new Domain Integrator, restricted to specific attributes.
Definition at line 2200 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddInteriorFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Adds new interior Face Integrator. Assumes ownership of bfi.
Definition at line 2246 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::AddTraceFaceIntegrator | ( | BilinearFormIntegrator * | bfi_real, |
| BilinearFormIntegrator * | bfi_imag ) |
Add a trace face integrator. Assumes ownership of bfi.
This type of integrator assembles terms over all faces of the mesh using the face FE from the trial space and the two adjacent volume FEs from the test space.
Definition at line 2291 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::Assemble | ( | int | skip_zeros = 1 | ) |
Assemble the local matrix.
Definition at line 2335 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::Finalize | ( | int | skip_zeros = 1 | ) |
Finalizes the matrix initialization.
Definition at line 2342 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::FormRectangularLinearSystem | ( | const Array< int > & | ess_trial_tdof_list, |
| const Array< int > & | ess_test_tdof_list, | ||
| Vector & | x, | ||
| Vector & | b, | ||
| OperatorHandle & | A, | ||
| Vector & | X, | ||
| Vector & | B ) |
Definition at line 2356 of file complex_fem.cpp.
| void mfem::ParMixedSesquilinearForm::FormRectangularSystemMatrix | ( | const Array< int > & | ess_trial_tdof_list, |
| const Array< int > & | ess_test_tdof_list, | ||
| OperatorHandle & | A ) |
Definition at line 2511 of file complex_fem.cpp.
|
inline |
Definition at line 1164 of file complex_fem.hpp.
|
inline |
Definition at line 1184 of file complex_fem.hpp.
|
inline |
Definition at line 1186 of file complex_fem.hpp.
| ComplexHypreParMatrix * mfem::ParMixedSesquilinearForm::ParallelAssemble | ( | ) |
Returns the matrix assembled on the true dofs, i.e. P^t A P.
The returned matrix has to be deleted by the caller.
Definition at line 2349 of file complex_fem.cpp.
|
inline |
Definition at line 1183 of file complex_fem.hpp.
|
inline |
Definition at line 1185 of file complex_fem.hpp.
|
inline |
Set the desired assembly level.
Valid choices are:
This method must be called before assembly.
Definition at line 1177 of file complex_fem.hpp.
|
inline |
Definition at line 1165 of file complex_fem.hpp.
|
virtual |
Updates the internal mixed forms with the new finite element space.
Definition at line 2559 of file complex_fem.cpp.