Skip to content

Commit

Permalink
Merge pull request #192 from NCAR/main-formatting
Browse files Browse the repository at this point in the history
Auto-format code changes
  • Loading branch information
K20shores committed Aug 21, 2023
2 parents d2fc692 + 6bcf6f9 commit e3d6d47
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 184 deletions.
72 changes: 35 additions & 37 deletions include/micm/process/cuda_process_set.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,19 @@ namespace micm
CudaProcessSet(const std::vector<Process>& processes, const State<MatrixPolicy>& state);

template<template<class> typename MatrixPolicy>
requires VectorizableDense<MatrixPolicy<double>>
std::chrono::nanoseconds AddForcingTerms(
requires VectorizableDense<MatrixPolicy<double>> std::chrono::nanoseconds AddForcingTerms(
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
MatrixPolicy<double>& forcing) const;

MatrixPolicy<double>& forcing)
const;

template<template<class> class MatrixPolicy, template<class> class SparseMatrixPolicy>
requires VectorizableDense<MatrixPolicy<double>>&& VectorizableSparse<SparseMatrixPolicy<double>>
std::chrono::nanoseconds AddJacobianTerms(
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
SparseMatrixPolicy<double>& jacobian)const;
requires VectorizableDense<MatrixPolicy<double>> && VectorizableSparse<SparseMatrixPolicy<double>>
std::chrono::nanoseconds AddJacobianTerms(
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
SparseMatrixPolicy<double>& jacobian)
const;
};

template<template<class> class MatrixPolicy>
Expand All @@ -43,16 +44,14 @@ namespace micm
{
}


template<template<class> class MatrixPolicy>
requires VectorizableDense<MatrixPolicy<double>>
inline std::chrono::nanoseconds CudaProcessSet::AddForcingTerms(
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
MatrixPolicy<double>& forcing) const
{
std::chrono::nanoseconds kernel_duration =
micm::cuda::AddForcingTermsKernelDriver(
std::chrono::nanoseconds kernel_duration = micm::cuda::AddForcingTermsKernelDriver(
rate_constants.AsVector().data(),
state_variables.AsVector().data(),
forcing.AsVector().data(),
Expand All @@ -62,38 +61,37 @@ namespace micm
number_of_reactants_.data(),
reactant_ids_.data(),
reactant_ids_.size(),
number_of_products_.data(),
number_of_products_.data(),
product_ids_.data(),
product_ids_.size(),
yields_.data(),
yields_.size());
return kernel_duration; //time performance of kernel function
return kernel_duration; // time performance of kernel function
}
template<template<class> class MatrixPolicy, template<class> class SparseMatrixPolicy>
requires VectorizableDense<MatrixPolicy<double>>&& VectorizableSparse<SparseMatrixPolicy<double>>
requires VectorizableDense<MatrixPolicy<double>> && VectorizableSparse<SparseMatrixPolicy<double>>
inline std::chrono::nanoseconds CudaProcessSet::AddJacobianTerms(
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
SparseMatrixPolicy<double>& jacobian)const
{
std::chrono::nanoseconds kernel_duration =
micm::cuda::AddJacobianTermsKernelDriver(
rate_constants.AsVector().data(),
state_variables.AsVector().data(),
rate_constants.size(), //n_grids
rate_constants[0].size(), //n_reactions
state_variables[0].size(), //n_species
jacobian.AsVector().data(),
jacobian.AsVector().size(),
number_of_reactants_.data(),
reactant_ids_.data(),
reactant_ids_.size(),
number_of_products_.data(),
yields_.data(),
yields_.size(),
jacobian_flat_ids_.data(),
jacobian_flat_ids_.size());
return kernel_duration; //time performance of kernel function
const MatrixPolicy<double>& rate_constants,
const MatrixPolicy<double>& state_variables,
SparseMatrixPolicy<double>& jacobian) const
{
std::chrono::nanoseconds kernel_duration = micm::cuda::AddJacobianTermsKernelDriver(
rate_constants.AsVector().data(),
state_variables.AsVector().data(),
rate_constants.size(), // n_grids
rate_constants[0].size(), // n_reactions
state_variables[0].size(), // n_species
jacobian.AsVector().data(),
jacobian.AsVector().size(),
number_of_reactants_.data(),
reactant_ids_.data(),
reactant_ids_.size(),
number_of_products_.data(),
yields_.data(),
yields_.size(),
jacobian_flat_ids_.data(),
jacobian_flat_ids_.size());
return kernel_duration; // time performance of kernel function
}
} // namespace micm
#endif
8 changes: 4 additions & 4 deletions include/micm/process/process_set.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace micm
std::vector<std::size_t> product_ids_;
std::vector<double> yields_;
std::vector<std::size_t> jacobian_flat_ids_;

public:
/// @brief Default constructor
ProcessSet() = default;
Expand Down Expand Up @@ -236,8 +236,8 @@ namespace micm
// loop over grid cells
for (std::size_t i_cell = 0; i_cell < state_variables.size(); ++i_cell)
{
auto cell_rate_constants = rate_constants[i_cell];
auto cell_state = state_variables[i_cell];
auto cell_rate_constants = rate_constants[i_cell];
auto cell_state = state_variables[i_cell];

auto react_id = reactant_ids_.begin();
auto yield = yields_.begin();
Expand Down Expand Up @@ -290,7 +290,7 @@ namespace micm
std::size_t offset_rc = i_group * rate_constants.GroupSize();
std::size_t offset_state = i_group * state_variables.GroupSize();
std::size_t offset_jacobian = i_group * jacobian.GroupSize(jacobian.FlatBlockSize());

auto flat_id = jacobian_flat_ids_.begin();
for (std::size_t i_rxn = 0; i_rxn < number_of_reactants_.size(); ++i_rxn)
{
Expand Down
Loading

0 comments on commit e3d6d47

Please sign in to comment.