|
| template<typename BindingT> |
| CoefficientView< BindingT > | bind (const BindingT &binding, const ::mfem::Vector &values) |
| | Borrow a term binding and its coefficients without extending their lifetimes.
|
| |
| template<typename BindingT> |
| void | bind (const BindingT &, ::mfem::Vector &&)=delete |
| |
| template<typename BindingT> |
| void | bind (const BindingT &, const ::mfem::Vector &&)=delete |
| |
| template<typename BindingT> |
| void | bind (const BindingT &&, const ::mfem::Vector &)=delete |
| |
| template<typename... BindingTs> |
| auto | make_term_coefficients (BindingTs... bindings) |
| | Associate each physical term with its bound coefficients in an ordinary dependency context.
|
| |
| LinearizedBlock | linearized_action (int rows, int columns, MatrixAction action, MatrixAction transpose) |
| | Wrap owned callbacks with checked dimensions, finite results, and overlap-safe application.
|
| |
| LinearizedBlock | linearized_action (int rows, int columns, MatrixAction action, MatrixAction transpose, MatrixArrayAction batch) |
| | As above, with a batched forward action used by the operator's ArrayMult.
|
| |
| void | apply_many (const ::mfem::Operator &action, std::span< const ::mfem::Vector *const > inputs, std::span<::mfem::Vector *const > outputs) |
| | Apply an operator to several directions; ArrayMult for SERiF actions, otherwise one Mult per direction.
|
| |
| LinearizedBlock | transpose_block (LinearizedBlock block) |
| | Transpose a linearized block without discarding efficient assembly and diagonal operations.
|
| |
| LinearizedBlock | compose_blocks (LinearizedBlock left, LinearizedBlock right) |
| | Compose linearized blocks in their written mathematical order.
|
| |
| LinearizedBlock | sum_blocks (int rows, int columns, std::vector< LinearizedBlock > blocks) |
| | Sum compatible linearized blocks while retaining their native diagonal and sparse assembly operations.
|
| |
| template<typename ContributionT, std::size_t Count> |
| void | element_residual (const ElementData< Count > &data, ::mfem::Vector &result, BasisWorkspace &workspace) |
| | Integrate the cached scalar/vector physics against its actual test operation.
|
| |
| template<VolumeEquation EquationT, typename ContributionT, bool Fields, bool Geometry> |
| void | finish_element_action (const ElementData< EquationPlan< EquationT >::operand_count > &data, const ::mfem::DenseMatrix &geometry_derivatives, Workspace &workspace, ::mfem::Vector &result) |
| | Finish an element action from its field part (workspace.quadrature_values) and, with Geometry, the displacement samples (workspace.displacement_samples): contract the geometry derivatives and integrate.
|
| |
| template<VolumeEquation EquationT, typename ContributionT, bool Fields = true, bool Geometry = true> |
| void | element_jacobian_action (const ElementData< EquationPlan< EquationT >::operand_count > &data, const ::mfem::DenseMatrix &geometry_derivatives, const std::array< discretization::backend::mfem::DofMap::Elements, EquationPlan< EquationT >::column_count > &columns, const std::array< const ::mfem::Vector *, EquationPlan< EquationT >::column_count > &directions, const discretization::backend::mfem::DofMap::Elements &displacement_binding, const ::mfem::Vector &displacement_direction, Workspace &workspace, ::mfem::Vector &result) |
| | Apply the accepted field derivatives and local displacement derivatives.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| void | element_geometry_actions (const ElementData< EquationPlan< EquationT >::operand_count > &data, const ::mfem::DenseMatrix &geometry_derivatives, const discretization::backend::mfem::DofMap::Elements &displacement_binding, std::span< const ::mfem::Vector *const > displacement_directions, Workspace &workspace, std::span<::mfem::Vector *const > results) |
| | element_jacobian_action<false, true> for several displacement directions of one element.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| std::expected< ElementBasis< EquationPlan< EquationT >::operand_count >, PreparationRejection > | sample_element_basis (const ContributionT &equation, int element, const discretization::backend::mfem::DofMap &row, const discretization::backend::mfem::DofMap &displacement_binding, const std::array< const discretization::backend::mfem::DofMap *, EquationPlan< EquationT >::column_count > &columns, const mapping::DomainMapper &mapper, const discretization::quadrature::Policy &policy, TensorBasisCache &basis_cache, ContractionMode contraction_mode) |
| | Sample the contribution's quadrature rule and bases on the fixed computational mesh.
|
| |
| elements | element_values (basis.element, input.values, workspace.element_values) |
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| std::expected< ElementGeometry< EquationPlan< EquationT >::operand_count >, PreparationRejection > | map_element_geometry (const ElementBasis< EquationPlan< EquationT >::operand_count > &basis, const discretization::backend::mfem::DofMap &displacement_binding, const discretization::backend::mfem::DofMap::Elements &displacement_elements, const ::mfem::Vector &displacement, const MappingCoefficients &compactification, const mapping::DomainMapper &mapper, Workspace &workspace) |
| | Freeze displacement and compactification, then map quadrature points and bases to physical space.
|
| |
| template<EvaluableOperand OperandT, std::size_t Count> |
| ::mfem::Vector | map_element_operand (const ::mfem::Vector &reference, const ElementGeometry< Count > &geometry, Workspace &workspace) |
| | Apply an operand's physical transformation to its cached fixed-mesh samples.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| equations::EquationPoint< typename ContributionT::Operands > | element_equation_point (const std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > &physical_values, const mapping::MappingPointContext &context, int point) |
| | Pack the physical samples requested by this contribution at one quadrature point.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| bool | store_element_linearization (const equations::PointLinearization< typename ContributionT::Operands, typename OperandEvaluator< equations::TestOperandOf< ContributionT > >::Value > &physics, int point, double weight, ElementData< EquationPlan< EquationT >::operand_count > &data) |
| | Weight a point's residual and derivatives; reject any non-finite stored component.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| std::expected< ElementData< EquationPlan< EquationT >::operand_count >, PreparationRejection > | evaluate_element_equation (const ContributionT &equation, double coefficient, std::shared_ptr< const ElementBasis< EquationPlan< EquationT >::operand_count > > basis, std::shared_ptr< const ElementGeometry< EquationPlan< EquationT >::operand_count > > geometry, std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > reference_values, const std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > &physical_values, Workspace &workspace) |
| | Evaluate and weight the equation while retaining its immutable preparation inputs.
|
| |
| template<VolumeEquation EquationT, typename ContributionT> |
| void | element_jacobian_transpose (const ElementData< EquationPlan< EquationT >::operand_count > &data, const ::mfem::DenseMatrix &geometry_derivatives, const discretization::backend::mfem::DofMap::Elements &row, const ::mfem::Vector &residual_dual, Workspace &workspace, std::array<::mfem::Vector, EquationPlan< EquationT >::column_count > &column_duals, ::mfem::Vector &displacement_dual) |
| | Transpose the same accepted field and geometry contractions used by the forward action.
|
| |
| template<VolumeEquation Equation, typename Contribution> |
| auto | geometry_integrand_variation (const ElementData< EquationPlan< Equation >::operand_count > &data, int point, const mapping::VolumeMappingContext &context, const mapping::VolumeMappingVariation &variation) |
| | Differentiate the weighted physics through position, operand mappings and the volume measure.
|
| |
| template<VolumeEquation Equation, typename Contribution> |
| std::expected<::mfem::DenseMatrix, PreparationRejection > | element_geometry_derivatives (const ElementData< EquationPlan< Equation >::operand_count > &data, const discretization::backend::mfem::DofMap &displacement_binding, const ::mfem::FiniteElementSpace &compactification_space, const mapping::DomainMapper &mapper, Workspace &workspace) |
| | Differentiate one weighted integrand with respect to local displacement values and gradients.
|
| |
| std::vector< double > | checked_diagonal (const LinearizedBlock &block) |
| | Extract a diagonal and reject a callback that violates its declared physical block dimensions.
|
| |
| std::shared_ptr< const ::mfem::SparseMatrix > | checked_assembly (const LinearizedBlock &block) |
| | Assemble a non-null finalized sparse matrix whose dimensions match its declared physical action.
|
| |
| LinearizedBlock | linearized_block (std::shared_ptr< const ::mfem::SparseMatrix > matrix) |
| | Retain an already assembled physical block without copying its matrix.
|
| |
| LinearizedBlock | linearized_block (std::shared_ptr< const ::mfem::DenseMatrix > matrix) |
| | Retain a small assembled physical block, such as a generated scalar constraint.
|
| |
| template<typename CacheT, typename PrepareT> |
| std::expected< void, PreparationRejection > | try_prepare_validated (CacheT &cache, PrepareT &&prepare) |
| | A failed validation or calculation must make the previous accepted result inaccessible.
|
| |
| template<VolumeEquation RowEquationT, typename ContributionT> |
| const ::mfem::IntegrationRule & | equation_rule (const ContributionT &equation, const discretization::quadrature::Policy &policy, ::mfem::ElementTransformation &transformation, const ::mfem::FiniteElement &displacement_element, discretization::quadrature::MappingKind mapping_kind=discretization::quadrature::MappingKind::general, int reconstruction_order=0) |
| | Resolve one rule covering all operand forms and the geometry weight.
|
| |
| LinearizedBlock | replace_block_rows (LinearizedBlock original, std::vector< int > selected_rows, std::shared_ptr< const ::mfem::SparseMatrix > replacement) |
| | Replace selected physical equation rows with an immutable sparse row block in the same unknown coordinates.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | validate_volume_data (const VolumeData< EquationT, SchemaT > &data) |
| | Reject changes to discretization objects borrowed by an accepted linearization.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename VisitT> |
| void | for_each_volume_element (const VolumeData< EquationT, SchemaT > &data, VisitT &&visit) |
| | Visit each contribution's own batch in equation order, without scanning other contributions.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename VisitT> |
| void | for_each_volume_linearization (const VolumeData< EquationT, SchemaT > &data, VisitT &&visit) |
| | Visit equation data together with its graph-owned local geometry derivative matrix.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | volume_height (const VolumeData< EquationT, SchemaT > &data) |
| | Return the supported residual size.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | volume_width (const VolumeData< EquationT, SchemaT > &data) |
| | Packed directions contain unique coefficient terms followed by displacement.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| std::size_t | tensor_element_count (const VolumeData< EquationT, SchemaT > &data) |
| | Count contribution-elements using tensor contractions for any sampled basis.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | integration_order (const VolumeData< EquationT, SchemaT > &data, int element) |
| | Return the largest contribution quadrature order on a supported mesh element.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | volume_residual (const VolumeData< EquationT, SchemaT > &data, ::mfem::Vector &result) |
| | Copy the residual already assembled and checked when this result was accepted.
|
| |
| template<std::size_t Count> |
| std::array< discretization::backend::mfem::DofMap::Elements, Count > | column_elements (const std::array< const discretization::backend::mfem::DofMap *, Count > &columns) |
| | Validate coefficient bindings once before a complete element traversal.
|
| |
| template<bool Fields = true, bool Geometry = true, VolumeEquation EquationT, typename SchemaT> |
| void | apply_volume_direction (const VolumeData< EquationT, SchemaT > &data, const std::array< const ::mfem::Vector *, EquationPlan< EquationT >::column_count > &directions, const ::mfem::Vector &displacement_direction, Workspace &workspace, ::mfem::Vector &result) |
| | Apply only the requested directions and assemble their supported residual contribution.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | apply_volume_displacements (const VolumeData< EquationT, SchemaT > &data, std::span< const ::mfem::Vector *const > displacement_directions, std::span<::mfem::Vector *const > results) |
| | apply_volume_direction<false, true> for several displacement directions in one traversal.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename CoefficientsT> |
| void | apply_jacobian (const VolumeData< EquationT, SchemaT > &data, const CoefficientsT &direction, const ::mfem::Vector &displacement_direction, Workspace &workspace, ::mfem::Vector &result) |
| | Apply a direction whose terms explicitly name the accepted coefficient bindings.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | apply_jacobian (const VolumeData< EquationT, SchemaT > &data, const ::mfem::Vector &direction, Workspace &workspace, ::mfem::Vector &result) |
| | Unpack unique coefficient terms and displacement, then use the same numerical action.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | apply_jacobian_transpose (const VolumeData< EquationT, SchemaT > &data, const ::mfem::Vector &residual_dual, Workspace &workspace, ::mfem::Vector &result) |
| | Assemble the full coordinate transpose in the same packed order as the forward action.
|
| |
| template<std::size_t Contribution, typename OperandT, VolumeEquation EquationT, typename SchemaT, typename Scope = void> |
| auto | make_operand_computations (const std::shared_ptr< VolumeScratch > &scratch) |
| | Declare one coefficient contraction, followed by a physical mapping when the space requires it.
|
| |
| template<std::size_t Index, typename Scope, VolumeEquation EquationT, typename SchemaT, typename ContributionT, typename... Operands> |
| auto | make_contribution_computations (const std::shared_ptr< const VolumeConfiguration< EquationT, SchemaT > > &configuration, const std::shared_ptr< VolumeScratch > &scratch, ContributionBinding< ContributionT > contribution, utils::types::TypeList< Operands... >) |
| | Build one contribution's branch in the same order as its numerical description.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, std::size_t... Indices> |
| auto | connect_volume_contributions (const std::shared_ptr< const VolumeConfiguration< EquationT, SchemaT > > &configuration, std::index_sequence< Indices... >) |
| | Expose contribution computations so deformation and equations can share one dependency graph.
|
| |
| template<VolumeEquation EquationT, std::size_t Index, typename Scope = void, typename CacheT> |
| void | report_contribution_preparation (const CacheT &cache, NumericalWork &report) |
| | Convert the dependency engine's node statuses to numerical work counts for one contribution.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> |
| auto | make_volume_equation_computations (std::shared_ptr< const EquationT > equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, VolumeOptions options={}) |
| | Declare reusable volume computations without selecting their source of displacement.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> |
| auto | make_volume_equation_computations (EquationT equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, VolumeOptions options={}) |
| | Own standalone equations while allowing complete models to share their existing immutable members.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, typename InputsT> |
| auto | make_volume_equation_cache (EquationT equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const InputsT &inputs, VolumeOptions options={}) |
| | Construct a standalone cache from the same computations used by a coupled deformation graph.
|
| |
| template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> |
| std::expected< void, PreparationRejection > | try_prepare_volume (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients, PreparationMode mode=PreparationMode::reuse_unchanged) |
| | Validate current inputs and atomically publish a complete volume linearization.
|
| |
| template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> |
| void | prepare_volume (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients, PreparationMode mode=PreparationMode::reuse_unchanged) |
| | Throw a caller-visible numerical error when a complete preparation cannot be accepted.
|
| |
| template<typename Scope = void, typename CacheT> |
| NumericalWork | volume_work_report (const CacheT &cache) |
| | Derive work counts from accepted node statuses; no second report lifecycle is stored.
|
| |
| template<typename TestT, typename SchemaT> |
| | VolumeDiscretization (const discretization::backend::mfem::TermBinding< TestT, SchemaT > &, const discretization::backend::mfem::TermBinding< discretization::blocks::displacement::vector, SchemaT > &, const ::mfem::GridFunction &, const mapping::DomainMapper &) -> VolumeDiscretization< TestT, SchemaT > |
| |
| template<typename Field, VolumeEquation Equation, typename Schema> |
| std::shared_ptr< const ::mfem::SparseMatrix > | assemble_volume_field (const VolumeData< Equation, Schema > &data) |
| | Assemble a selected field block from accepted weighted derivatives, never by probing the whole system.
|
| |
| template<typename Field, VolumeEquation Equation, typename Schema> |
| std::vector< double > | volume_field_diagonal (const VolumeData< Equation, Schema > &data) |
| | Extract exact physical diagonals, retaining constraint cross terms when hanging nodes are present.
|
| |
| template<typename Field, VolumeEquation Equation, typename Schema> |
| LinearizedBlock | volume_field_block (std::shared_ptr< const VolumeData< Equation, Schema > > data) |
| | Expose efficient physical block operations from an owning accepted dependency result.
|
| |
| template<typename TestT, typename SchemaT> |
| void | validate_volume_discretization (const VolumeDiscretization< TestT, SchemaT > &discretization) |
| | Check borrowed mesh objects before sampling or applying accepted results.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT, typename... Columns> |
| auto | make_volume_binding_input (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients, utils::types::TypeList< Columns... >) |
| | Validate one equation's bindings without constructing duplicate coefficient resources.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT> |
| auto | make_volume_binding_input (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| | Share equation metadata with a model's common physical coefficient context.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT, typename... Columns> |
| auto | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients, utils::types::TypeList< Columns... > columns) |
| | Supply precisely the consumed terms for a standalone equation.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT> |
| auto | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| | Bind equation and reference inputs when displacement will be produced inside the dependency graph.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT, typename... Columns> |
| auto | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients, utils::types::TypeList< Columns... > columns) |
| | Append a checked external displacement while preserving each original resource's tracking policy.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT> |
| auto | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients) |
| | Build a checked source context without retaining the coefficient vectors.
|
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT> |
| void | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &, const CoefficientsT &, ::mfem::Vector &&)=delete |
| |
| template<VolumeEquation EquationT, typename Scope = void, typename SchemaT, typename CoefficientsT> |
| void | make_volume_inputs (const VolumeDiscretization< typename EquationT::Test, SchemaT > &, const CoefficientsT &, const ::mfem::Vector &&)=delete |
| |
| template<VolumeEquation EquationT, typename SchemaT, typename ContributionT> |
| std::expected< ElementBatch< ElementBasis< EquationPlan< EquationT >::operand_count > >, PreparationRejection > | sample_contribution_basis (const VolumeConfiguration< EquationT, SchemaT > &configuration, const ContributionBinding< ContributionT > &contribution, const BasisBindings< EquationPlan< EquationT >::column_count > &bindings, TensorBasisCache &cache) |
| | Sample the reference discretization once for each supported element of this contribution.
|
| |
| template<VolumeEquation EquationT, typename OperandT, typename BindingT> |
| OperandSamples | sample_contribution_operand (const ElementBatch< ElementBasis< EquationPlan< EquationT >::operand_count > > &basis, const CoefficientView< BindingT > &input, Workspace &workspace) |
| | Only this operand's coefficients and reference basis determine its reference samples.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename ContributionT> |
| std::expected< ElementBatch< ElementGeometry< EquationPlan< EquationT >::operand_count > >, PreparationRejection > | map_contribution_geometry (const VolumeConfiguration< EquationT, SchemaT > &configuration, const ElementBatch< ElementBasis< EquationPlan< EquationT >::operand_count > > &basis, const CoefficientView< typename VolumeConfiguration< EquationT, SchemaT >::DisplacementBinding > &displacement, const MappingCoefficients &compactification, Workspace &workspace) |
| | Freeze mapping data and mapped bases independently of the equation's coefficient inputs.
|
| |
| template<typename OperandT, std::size_t OperandCount> |
| OperandSamples | map_contribution_operand (const OperandSamples &samples, const ElementBatch< ElementGeometry< OperandCount > > &geometry, Workspace &workspace) |
| | Map only operands whose physical representation depends on deformation.
|
| |
| template<VolumeEquation Equation, typename Schema, typename Contribution> |
| std::expected< ElementBatch<::mfem::DenseMatrix >, PreparationRejection > | differentiate_contribution_geometry (const VolumeConfiguration< Equation, Schema > &configuration, const ContributionData< EquationPlan< Equation >::operand_count > &contribution, Workspace &workspace) |
| | Compute local displacement derivatives as an immutable graph result for this contribution.
|
| |
| template<VolumeEquation EquationT, typename ContributionT, typename... Operands> |
| std::expected< ContributionData< EquationPlan< EquationT >::operand_count >, PreparationRejection > | evaluate_contribution_equation (const ContributionBinding< ContributionT > &contribution, const ElementBatch< ElementBasis< EquationPlan< EquationT >::operand_count > > &basis, const ElementBatch< ElementGeometry< EquationPlan< EquationT >::operand_count > > &geometry, Workspace &workspace, const SamplesFor< Operands > &... samples) |
| | Evaluate one equation contribution; its basis, mapping and individual operand samples are already prepared.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename... Contributions> |
| std::expected< VolumeData< EquationT, SchemaT >, PreparationRejection > | collect_volume_results (const std::shared_ptr< const VolumeConfiguration< EquationT, SchemaT > > &configuration, const BasisBindings< EquationPlan< EquationT >::column_count > &bindings, Workspace &workspace, const Contributions &... contributions) |
| | Collect the results of all contributions into a single VolumeData. This contains the residuals due to each contribution for all degrees of freedom as well as data needed for subsequent jacobian calculations.
|
| |