Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions include/Definitions/geometry_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
#include "../InputFunctions/domainGeometry.h"

#include <cmath>
#include <Kokkos_Core.hpp>

template <concepts::DomainGeometry DomainGeometry>
inline void compute_jacobian_elements(const DomainGeometry& domain_geometry, double r, double theta, double coeff_alpha,
double& arr, double& att, double& art, double& detDF)
KOKKOS_INLINE_FUNCTION void compute_jacobian_elements(const DomainGeometry& domain_geometry, double r, double theta,
double coeff_alpha, double& arr, double& att, double& art,
double& detDF)
{
/* Calculate the elements of the Jacobian matrix for the transformation mapping */
/* The Jacobian matrix is: */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class PoissonCoefficients
PoissonCoefficients() = default;
explicit PoissonCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class SonnendruckerCoefficients
SonnendruckerCoefficients() = default;
explicit SonnendruckerCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class SonnendruckerGyroCoefficients
SonnendruckerGyroCoefficients() = default;
explicit SonnendruckerGyroCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class ZoniCoefficients
ZoniCoefficients() = default;
explicit ZoniCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class ZoniGyroCoefficients
ZoniGyroCoefficients() = default;
explicit ZoniGyroCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class ZoniShiftedCoefficients
ZoniShiftedCoefficients() = default;
explicit ZoniShiftedCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../densityProfileCoefficients.h"

Expand All @@ -13,10 +14,10 @@ class ZoniShiftedGyroCoefficients
ZoniShiftedGyroCoefficients() = default;
explicit ZoniShiftedGyroCoefficients(double Rmax, double alpha);

double alpha(double r, double theta) const;
double beta(double r, double theta) const;
KOKKOS_FUNCTION double alpha(double r, double theta) const;
KOKKOS_FUNCTION double beta(double r, double theta) const;

double getAlphaJump() const;
KOKKOS_FUNCTION double getAlphaJump() const;

private:
const double Rmax = 1.3;
Expand Down
13 changes: 7 additions & 6 deletions include/InputFunctions/DomainGeometry/circularGeometry.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include <cmath>
#include <Kokkos_Core.hpp>

#include "../domainGeometry.h"

Expand All @@ -13,12 +14,12 @@ class CircularGeometry
CircularGeometry() = default;
explicit CircularGeometry(double Rmax);

double Fx(double r, double theta) const;
double Fy(double r, double theta) const;
double dFx_dr(double r, double theta) const;
double dFy_dr(double r, double theta) const;
double dFx_dt(double r, double theta) const;
double dFy_dt(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double Fx(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double Fy(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFx_dr(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFy_dr(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFx_dt(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFy_dt(double r, double theta) const;

private:
const double Rmax = 1.3;
Expand Down
12 changes: 6 additions & 6 deletions include/InputFunctions/DomainGeometry/circularGeometry.inl
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,37 @@
#include "circularGeometry.h"

// In earlier versions denoted by 'x'
inline double CircularGeometry::Fx(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::Fx(double r, double theta) const
{
return (r / Rmax) * std::cos(theta);
}

// In earlier versions denoted by 'y'
inline double CircularGeometry::Fy(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::Fy(double r, double theta) const
{
return (r / Rmax) * std::sin(theta);
}

// In earlier versions denoted by 'Jrr'
inline double CircularGeometry::dFx_dr(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::dFx_dr(double r, double theta) const
{
return (std::cos(theta)) / Rmax;
}

// In earlier versions denoted by 'Jtr'
inline double CircularGeometry::dFy_dr(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::dFy_dr(double r, double theta) const
{
return (std::sin(theta)) / Rmax;
}

// In earlier versions denoted by 'Jrt'
inline double CircularGeometry::dFx_dt(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::dFx_dt(double r, double theta) const
{
return (-(r / Rmax)) * std::sin(theta);
}

// In earlier versions denoted by 'Jtt'
inline double CircularGeometry::dFy_dt(double r, double theta) const
KOKKOS_INLINE_FUNCTION double CircularGeometry::dFy_dt(double r, double theta) const
{
return (r / Rmax) * std::cos(theta);
}
46 changes: 24 additions & 22 deletions include/InputFunctions/DomainGeometry/culhamGeometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <memory>
#include <array>
#include <cstdint>
#include <Kokkos_Core.hpp>

#include "../domainGeometry.h"

Expand All @@ -16,34 +17,35 @@ class CulhamGeometry
CulhamGeometry();
explicit CulhamGeometry(double Rmax);

double Fx(double r, double theta) const;
double Fy(double r, double theta) const;
double dFx_dr(double r, double theta) const;
double dFy_dr(double r, double theta) const;
double dFx_dt(double r, double theta) const;
double dFy_dt(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double Fx(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double Fy(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFx_dr(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFy_dr(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFx_dt(double r, double theta) const;
KOKKOS_INLINE_FUNCTION double dFy_dt(double r, double theta) const;

private:
const double Rmax = 1.3;

void initializeGeometry();

double my_sum(std::array<double, 1001>& f, int64_t start_idx, int64_t end_idx) const;
double q(double rr) const;
double dq(double rr) const;
double p(double rr) const;
double dp(double rr) const;
double dg(double rr, double g) const;
double double_deriv(double rr, double c, double g, double dg, double val, double d_val) const;
double g(double rr) const;
double Delta(double rr) const;
double Delta_prime(double rr) const;
double E(double rr) const;
double T(double rr) const;
double E_prime(double rr) const;
double T_prime(double rr) const;
double P(double rr) const;
double dP(double rr) const;
KOKKOS_INLINE_FUNCTION double my_sum(std::array<double, 1001>& f, int64_t start_idx, int64_t end_idx) const;
KOKKOS_INLINE_FUNCTION double q(double rr) const;
KOKKOS_INLINE_FUNCTION double dq(double rr) const;
KOKKOS_INLINE_FUNCTION double p(double rr) const;
KOKKOS_INLINE_FUNCTION double dp(double rr) const;
KOKKOS_INLINE_FUNCTION double dg(double rr, double g) const;
KOKKOS_INLINE_FUNCTION double double_deriv(double rr, double c, double g, double dg, double val,
double d_val) const;
KOKKOS_INLINE_FUNCTION double g(double rr) const;
KOKKOS_INLINE_FUNCTION double Delta(double rr) const;
KOKKOS_INLINE_FUNCTION double Delta_prime(double rr) const;
KOKKOS_INLINE_FUNCTION double E(double rr) const;
KOKKOS_INLINE_FUNCTION double T(double rr) const;
KOKKOS_INLINE_FUNCTION double E_prime(double rr) const;
KOKKOS_INLINE_FUNCTION double T_prime(double rr) const;
KOKKOS_INLINE_FUNCTION double P(double rr) const;
KOKKOS_INLINE_FUNCTION double dP(double rr) const;

double rr;
double dr;
Expand Down
Loading
Loading