137 lines
5.0 KiB
Groff
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\&.
|