Adding essential BC elimination documentation#341
Conversation
| | Symbol | Description | | ||
| |--------|-------------| | ||
| | $D_0$ | The zero matrix | | ||
| | $D_1$ | Matrix with ones on the diagonal entries associates with essential DoFs and zeros elsewhere | |
| |--------|-------------| | ||
| | $D_0$ | The zero matrix | | ||
| | $D_1$ | Matrix with ones on the diagonal entries associates with essential DoFs and zeros elsewhere | | ||
| | $D_K$ | Matrix with $A_\{ii}$ on the diagonal entries associates with essential DoFs and zeros elsewhere | |
| | $D_K$ | Matrix with $A_\{ii}$ on the diagonal entries associates with essential DoFs and zeros elsewhere | | ||
| | $C_1$ | Matrix $(I - D_1)$ where $I$ is the identity matrix | | ||
|
|
||
| Note that MFEM does actually not form these matrices. They are merely |
There was a problem hiding this comment.
does actually not --> does not actually
|
|
||
| $$\begin{align\*} | ||
| A &\rightarrow C_1 A C_1 + D_p \\\\ | ||
| b &\rightarrow C_1 b - A D_1 x_\{bc} + D_p x_\{bc} |
There was a problem hiding this comment.
I think this is missing a bracket
| enumeration defined in | ||
| [linalg/operator.hpp](https://github.com/mfem/mfem/blob/master/linalg/operator.hpp#L47) | ||
| with values `DIAG_ZERO`, `DIAG_ONE`, or `DIAG_KEEP` which respectively | ||
| replace the diagonal entries with 0, 1, or leaves them unchanged. |
There was a problem hiding this comment.
Regarding the diagonal policy, this applies only to the legacy and serial assembly. Since HypreParMatrix doesn't support DIAG_KEEP, pbilinearform doesn't support it either. Maybe we should clarify it somewhere. MF/PA/FA operators also don't provide this option.
|
|
||
| For a block system: | ||
|
|
||
| $$\left(\begin{array}{3} |
There was a problem hiding this comment.
Since this equation (and the other 2 above) are not referred to in the text, their numbering can be omitted.
| b_1 \rightarrow & C_1 b_1 - A_\{11} D_1 x_\{bc} - A_\{12} D_1 y_\{bc} + D_p x_\{bc}, \\\\ | ||
| b_2 \rightarrow & C_1 b_2 - A_\{21}D_1 x_\{bc} - A_\{22} D_1 y_\{bc} + D_p y_\{bc}, \\\\ | ||
| b_3 \rightarrow & b_3 - A_\{31}D_1 x_\{bc} - A_\{32}D_1 y_\{bc} | ||
| \end{align\*}$$ |
There was a problem hiding this comment.
Same as above,
| a &\rightarrow C_1 a - A D_1 x_\{bc} + B D_1 y_\{bc} + D_p x_\{bc}\\\\ | ||
| b &\rightarrow C_1 b - A D_1 y_\{bc} - B D_1 x_\{bc} + D_p y_\{bc} | ||
| \end{align\*}$$ | ||
|
|
There was a problem hiding this comment.
I think this is also missing a bracket. It should be
|
thanks for reviewing, @psocratis ! |
| systems of real-valued operators. There are two equivalent | ||
| representations distinguished by the `Convention` enumeration | ||
| described in | ||
| [linalg/complex_operator.hpp](https://github.com/mfem/mfem/blob/master/linalg/complex_operator.hpp#L71). Both |
There was a problem hiding this comment.
It is likely that linking to a particular line of a source file in master will go stale at some point. Is there more stable documentation we can link to for the ComplexOperator. Maybe just call out the object name.
acfisher
left a comment
There was a problem hiding this comment.
Once the comments are address this looks good to me.
This is an expanded and improved description of the essential BC elimination scheme mentioned in issue #5017.