.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 \fP .br \fR#include \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" .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 using \fBserif::discretization::forms::OperandValue\fP = \fBOperandResult\fP::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 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 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 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 constexpr int \fBserif::discretization::forms::component_count\fP = \fBValueComponents\fP>::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\&.