.TH "src/include/serif/discretization/forms/forms.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*- .ad l .nh .SH NAME src/include/serif/discretization/forms/forms.hpp \- This file defines the forms used in the discretization framework, including mass, divergence, source, force, boundary flux, and projection forms\&. .SH SYNOPSIS .br .PP \fR#include \fP .br \fR#include \fP .br \fR#include 'serif/discretization/blocks/concepts\&.hpp'\fP .br \fR#include 'serif/discretization/forms/operands\&.hpp'\fP .br \fR#include 'serif/utils/types/type_list\&.hpp'\fP .br \fR#include 'serif/meta/names\&.hpp'\fP .br .SS "Classes" .in +1c .ti -1c .RI "struct \fBserif::discretization::forms::form\fP" .br .RI "The form struct is a tag type that is used to identify a form in the discretization\&. It is used to group together forms that belong to the same mathematical operation\&. Each form should have a unique name and a list of operand types that belong to it\&. " .ti -1c .RI "struct \fBserif::discretization::forms::mass< TrialT, TestT >\fP" .br .RI "The mass form represents the mass matrix operation in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the mass operation\&. " .ti -1c .RI "struct \fBserif::discretization::forms::divergence< TrialT, TestT >\fP" .br .RI "The divergence form represents the divergence operation in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the divergence operation\&. " .ti -1c .RI "struct \fBserif::discretization::forms::source< TrialT, TestT >\fP" .br .RI "The source form represents the source term in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the source operation\&. " .ti -1c .RI "struct \fBserif::discretization::forms::force< TrialT, TestT >\fP" .br .RI "The force form represents the force term in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the force operation\&. " .ti -1c .RI "struct \fBserif::discretization::forms::boundary_flux< TrialT, TestT >\fP" .br .RI "The \fBboundary_flux\fP form represents the boundary flux operation in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the boundary flux operation\&. " .ti -1c .RI "struct \fBserif::discretization::forms::projection< TrialT, TestT >\fP" .br .RI "The projection form represents the projection operation in the discretization framework\&. It takes a trial term and a test term as template parameters and defines the operand types for the projection operation\&. " .in -1c .SS "Namespaces" .in +1c .ti -1c .RI "namespace \fBserif\fP" .br .ti -1c .RI "namespace \fBserif::discretization\fP" .br .ti -1c .RI "namespace \fBserif::discretization::forms\fP" .br .in -1c .SH "Detailed Description" .PP This file defines the forms used in the discretization framework, including mass, divergence, source, force, boundary flux, and projection forms\&. .PP \fBAuthor\fP .RS 4 Emily M\&. Boudreaux .RE .PP \fBNote\fP .RS 4 If you are a developer tasked with the likely horrid task of adding some new equation that cannot be represented within the current framework that SERiF provides, this should probably be your first stop\&. This file essentially defines the mathematical operations that SERiF can perform\&. As you can see below none of these forms are particularly complex, and they certainly do not actually describe \fIhow\fP to perform these operations\&. Rather, these form the base of a chain of compile-time probability that SERiF \fIknows\fP how to do something\&. Effectively this file is a contract with the rest of the code that says "If someone asks for the divergence of a trial field against some test field that is okay because I have claimed in this file that I know how to do that"\&. The actual implementation lives elsewhere\&. .RE .PP \fBTodo\fP .RS 4 Come back and fill in more information about elsewhere\&. If you are the developer from above and you are reading this todo, then I am, and I mean this truly, very sorry\&.\&.\&.\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for SERiF from the source code\&.