Files
MeanField_SERiF/docs/man/man3/value.hpp.3
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

137 lines
5.0 KiB
Groff

.TH "src/include/serif/discretization/forms/value.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
src/include/serif/discretization/forms/value.hpp \- Encode compile time information about the shape (rank) and data type of the result of various Operations\&.
.SH SYNOPSIS
.br
.PP
\fR#include <array>\fP
.br
\fR#include <type_traits>\fP
.br
\fR#include 'serif/discretization/blocks/traits\&.hpp'\fP
.br
\fR#include 'serif/discretization/forms/operands\&.hpp'\fP
.br
.SS "Classes"
.in +1c
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 0, Operation::Value >\fP"
.br
.RI "The value of a rank 0 tensor is a scalar, a double in the case of SERiF where we restrict ourselves to double precision\&. "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 1, Operation::Value >\fP"
.br
.RI "The value of a rank 1 tensor is a rank 1 tensor (a vector of doubles in SERiF) "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 1, Operation::Divergence >\fP"
.br
.RI "The divergence of a rank one tensor is a scalar (a double) "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 0, Operation::Gradient >\fP"
.br
.RI "The gradient of a rank 0 tensor is a rank 1 tensor (a vector of doubles) "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 1, Operation::Gradient >\fP"
.br
.RI "\fBVector\fP gradients use G[component][derivative] = partial_derivative(u_component, x_derivative)\&. "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 1, Operation::Curl >\fP"
.br
.RI "The curl of a rank 1 tensor is a rank 1 tensor (a vector of doubles) "
.ti -1c
.RI "struct \fBserif::discretization::forms::OperationValue< 1, Operation::NormalTrace >\fP"
.br
.ti -1c
.RI "struct \fBserif::discretization::forms::OperandResult< OperandT >\fP"
.br
.RI "Specialization of the \fBOperandResult\fP struct for operands that are valid operands (satisfy the \fBIsOperand\fP concept) and are spatial terms (e\&.g defined over the domain, think mass density)\&. This specialization uses the \fBOperationValue\fP struct to determine the value type of the result of the operand based on its term type and operation type\&. "
.ti -1c
.RI "struct \fBserif::discretization::forms::ValueComponents< double >\fP"
.br
.ti -1c
.RI "struct \fBserif::discretization::forms::ValueComponents< void >\fP"
.br
.ti -1c
.RI "struct \fBserif::discretization::forms::ValueComponents< std::array< Entry, Size > >\fP"
.br
.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
.SS "Typedefs"
.in +1c
.ti -1c
.RI "using \fBserif::discretization::forms::VectorValue\fP = std::array<double, 3>"
.br
.RI "Alias for a rank 1 tensor of dimension 3 with elements doubles\&. "
.ti -1c
.RI "using \fBserif::discretization::forms::MatrixValue\fP = std::array<\fBVectorValue\fP, 3>"
.br
.RI "Alias for a rank 2 tensor of dimension 3 with cells as doubles\&. "
.ti -1c
.RI "template<IsOperand OperandT> using \fBserif::discretization::forms::OperandValue\fP = \fBOperandResult\fP<OperandT>::type"
.br
.RI "Alias for the value type of an operand\&. This is a convenience alias that allows you to easily access the value type of an operand without having to explicitly use the \fBOperandResult\fP struct\&. "
.ti -1c
.RI "template<typename OutputT, typename InputT> using \fBserif::discretization::forms::PartialDerivative\fP"
.br
.RI "Alias for the partial derivative of some output type with respect to some input type\&. This is a convenience alias that allows you to easily access the partial derivative type without having to explicitly use the \fBOperandResult\fP struct\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "template<typename ValueT> decltype(auto) \fBserif::discretization::forms::component\fP (ValueT &value, int index)"
.br
.RI "Read one entry of a scalar/vector/matrix value\&. This is a convenience function that allows you to easily access the components of a value type without having to explicitly use the \fBOperandResult\fP struct\&. "
.ti -1c
.RI "template<typename OutputT, typename InputT> double \fBserif::discretization::forms::derivative_component\fP (const \fBPartialDerivative\fP< OutputT, InputT > &value, int output, int input)"
.br
.RI "Read one entry of a scalar/vector/matrix local derivative\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "template<typename ValueT> constexpr int \fBserif::discretization::forms::component_count\fP = \fBValueComponents\fP<std::remove_cv_t<ValueT>>::value"
.br
.in -1c
.SH "Detailed Description"
.PP
Encode compile time information about the shape (rank) and data type of the result of various Operations\&.
.PP
\fBAuthor\fP
.RS 4
Emily M\&. Boudreaux
.RE
.PP
.PP
\fBTodo\fP
.RS 4
This should be consolidated and removed\&. This information could be injected into the Operation itself\&.
.RE
.PP
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.