/home/runner/work/kynema/kynema/kynema/src/step/update_constraint_variables.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/step/update_constraint_variables.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
update_constraint_variables.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Kokkos_Core.hpp>
4#include <Kokkos_Profiling_ScopedRegion.hpp>
5
8#include "state/state.hpp"
9
10namespace kynema::step {
11
12template <typename DeviceType>
15) {
16 auto region = Kokkos::Profiling::ScopedRegion("Update Constraint Variables");
17
18 if (constraints.num_constraints == 0) {
19 return;
20 }
21
22 constraints.UpdateViews();
23
24 using RangePolicy = Kokkos::RangePolicy<typename DeviceType::execution_space>;
25 auto range_policy = RangePolicy(0, constraints.num_constraints);
26 Kokkos::parallel_for(
27 "CalculateConstraintResidualGradient", range_policy,
29 constraints.type, constraints.base_node_index, constraints.target_node_index,
30 constraints.X0, constraints.axes, constraints.input, constraints.lambda, state.tangent,
31 state.q, constraints.residual_terms, constraints.base_lambda_residual_terms,
33 constraints.base_gradient_terms, constraints.target_gradient_terms,
35 }
36 );
37}
38
39} // namespace kynema::step
Definition assemble_constraints_matrix.hpp:11
void UpdateConstraintVariables(State< DeviceType > &state, Constraints< DeviceType > &constraints)
Definition update_constraint_variables.hpp:13
Container class for managing multiple constraints in a simulation.
Definition constraints.hpp:29
View< size_t * > base_node_index
Definition constraints.hpp:41
View< double *[6]> lambda
Definition constraints.hpp:60
View< size_t * > target_node_index
Definition constraints.hpp:42
View< double *[6]> residual_terms
Definition constraints.hpp:67
View< double *[6][6]> base_gradient_transpose_terms
Definition constraints.hpp:73
View< double *[6]> base_lambda_residual_terms
Definition constraints.hpp:68
View< double *[7]> input
Definition constraints.hpp:58
View< double *[6]> system_residual_terms
Definition constraints.hpp:70
View< double *[6][6]> base_gradient_terms
Definition constraints.hpp:71
void UpdateViews()
Transfers new prescribed displacements and control signals to Views.
Definition constraints.hpp:346
View< double *[3]> X0
Definition constraints.hpp:54
View< double *[3][3]> axes
Definition constraints.hpp:55
View< double *[6][6]> target_gradient_terms
Definition constraints.hpp:72
size_t num_constraints
Definition constraints.hpp:35
View< double *[6][6]> target_gradient_transpose_terms
Definition constraints.hpp:74
View< constraints::ConstraintType * > type
Definition constraints.hpp:39
View< double *[6]> target_lambda_residual_terms
Definition constraints.hpp:69
Container for storing the complete system state of the simulation at a given time increment.
Definition state.hpp:18
View< double *[6][6]> tangent
Definition state.hpp:38
View< double *[7]> q
Definition state.hpp:33
Top level kernel which calculates the residual and gradient contributions of a constraint.
Definition calculate_constraint_residual_gradient.hpp:30