summaryrefslogtreecommitdiff
path: root/td_constraints_template.c
diff options
context:
space:
mode:
Diffstat (limited to 'td_constraints_template.c')
-rw-r--r--td_constraints_template.c43
1 files changed, 32 insertions, 11 deletions
diff --git a/td_constraints_template.c b/td_constraints_template.c
index df09290..5770617 100644
--- a/td_constraints_template.c
+++ b/td_constraints_template.c
@@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define L 1.0
-#define R_0 0.0
+#define L 1
+#define R_0 5.0
static void EQNAME(double a,
unsigned int nb_coords[2], double *coords[2],
@@ -53,9 +53,14 @@ static void EQNAME(double a,
//const double K_rtheta_val = K_rtheta(a, r, theta);
//const double dK_rtheta_r_val = K_rtheta_dr(a, r, theta);
//const double dK_rtheta_theta_val = K_rtheta_dtheta(a, r, theta);
- const double K_rtheta_val = eval_K_rtheta(a, L, R_0, coord0, coord1);
- const double dK_rtheta_r_val = eval_dK_rtheta_r(a, L, R_0, coord0, coord1);
- const double dK_rtheta_theta_val = eval_dK_rtheta_theta(a, L, R_0, coord0, coord1);
+ double K_rtheta_val = eval_K_rtheta(a, L, R_0, coord0, coord1);
+ double dK_rtheta_r_val = eval_dK_rtheta_r(a, L, R_0, coord0, coord1);
+ double dK_rtheta_theta_val = eval_dK_rtheta_theta(a, L, R_0, coord0, coord1);
+ if (fabs(r - R_0) > L) {
+ K_rtheta_val = 0.0;
+ dK_rtheta_r_val = 0.0;
+ dK_rtheta_theta_val = 0.0;
+ }
const double Km[3][3] = {{ K_rr, K_rtheta_val, 0 },
{ K_rtheta_val / SQR(r), -(K_rr + K_phiphi), 0 },
@@ -157,8 +162,14 @@ static void EQNAME(double a,
#endif
if (EQUATION == TD_CONSTRAINT_EQ_HAM) {
- double Rscal = eval_R_scalar(a, L, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
- K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ double Rscal;
+ if (fabs(r - R_0) < L) {
+ Rscal = eval_R_scalar(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ } else {
+ Rscal = eval_R_scalar1(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ }
double K2 = 0.0;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
@@ -166,11 +177,21 @@ static void EQNAME(double a,
out[idx] = Rscal - K2;
} else if (EQUATION == TD_CONSTRAINT_EQ_MOM_0) {
- out[idx] = eval_Dcurv_m_r(a, L, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
- K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ if (fabs(r - R_0) < L) {
+ out[idx] = eval_Dcurv_m_r(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ } else {
+ out[idx] = eval_Dcurv_m_r1(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ }
} else {
- out[idx] = eval_Dcurv_m_t(a, L, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
- K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ if (fabs(r - R_0) < L) {
+ out[idx] = eval_Dcurv_m_t(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ } else {
+ out[idx] = eval_Dcurv_m_t1(a, L, R_0, coord0, coord1, psi, dpsi_01, dpsi_02, dpsi_10, dpsi_11, dpsi_20,
+ K_rr, dK_rr_01, dK_rr_10, K_phiphi, dK_phiphi_01, dK_phiphi_10);
+ }
}
#if 0
} else {