Files
MeanField_SERiF/docs/man/man3/value.hpp.3

137 lines
5.0 KiB
Groff
Raw Normal View History

.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\&.