-
Notifications
You must be signed in to change notification settings - Fork 0
/
input.h
98 lines (59 loc) · 3.69 KB
/
input.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef INPUT_H
#define INPUT_H
#include "grid.h"
#include "pb.h"
// to define the PDE, need DBC, f, epsilonp/m, a, sigma, tau
// sigma, tau is function smoothly extended off the interface, also need Dtau, D2tau, Dsigma
double DBC(double *x, int thedim, double thetime);
double getf(double *x, double thesign, PBData &pb, GridData &grid);
double getf(int *index, int rstar, int sstar, double alpha, double thesign, PBData &pb, GridData &grid);
double geta(double *x, double thesign, PBData& pb, GridData& grid);
void geta(double ***a, double ***S, PBData &pb, GridData &grid);
double gettau(double *x, GridData &grid);
void gettau(double &tau, int *index, int rstar, int sstar, double alpha, GridData &grid);
void getDtau(double *Dtau, double *x, GridData &grid);
void getDtau(double *Dtau, int *index, int rstar, int sstar, double alpha, GridData &grid);
void getD2tau(double **D2tau, double *x, GridData &grid);
void getD2tau(double **D2tau, int *index, int rstar, int sstar, double alpha, GridData &grid);
double getsigma(double *x, double *normal, PBData &pb, GridData &grid);
void getsigma(double &sigma, int *index, int rstar, int sstar, double alpha, double *normal, PBData &pb, GridData &grid);
void getDsigma(double *Dsigma, double *x, double *normal, double **Dnormal, PBData &pb, GridData &grid);
void getDsigma(double *Dsigma, int *index, int rstar, int sstar, double alpha, double *normal, double **Dnormal, PBData &pb, GridData &grid);
// for testing, known u,
double getu(double *x, double thesign, GridData &grid);
double getu(int *index, int rstar, int sstar, double alpha, double thesign, GridData &grid);
double getDu(double *x, int s, double thesign, GridData &grid);
double getDu(int *index, int s, int rstar, int sstar, double alpha, double thesign, GridData &grid);
double getD2u(double *x, int r, int s, double thesign, GridData &grid);
double getD2u(int *index, int r, int s, int rstar, int sstar, double alpha, double thesign, GridData &grid);
double getexactnormalTest(double *x, int r);
// initialize surface
void init_surf(double ***S, double radius, GridData &grid, int surfopt);
void init_surf_protein_paper(double ***S, GridData& grid);
void checkanswer(double ***u, double ***S, GridData &grid);
void checkwithexactvn(double ***vn, double ***S, PBData &pb, GridData& grid);
double getexactradius(double thetime, double radius0, double x0, double tol, int Nstep,GridData &grid);
void setgriddt(PBData &pb, GridData &grid);
// perturb surface, move interface away from grid point
void perturbelt(double ***S, int *index, double tol);
void perturb(double ***S, double tol, GridData &grid);
void perturbelt(double ***S, int *index, double tol, PBData &pb);
void perturb(double ***S, double tol, PBData &pb, GridData &grid);
double evalcoef(double u0, double ***ucoef, double *uxcoef, double *uxxcoef,
int *index, int rstar, int sstar, double alpha, int mid,
double ***S,
GridData grid);
double evalcoef(double u0, double ***ucoef, double *uxxcoef, int *index, double ***S,
GridData grid);
double evalcoef(double u0, double ***ucoef, double *uxcoef, double *uxxcoef,
double **jumpuxxcoef,
int *index, int rstar, int sstar, double alpha,
double ***S,
GridData grid);
double evalcoef(double u0, double ***ucoef, double *uxcoef, double *uxxcoef,
int *index, int rstar, int sstar, double alpha, int mid,
double thesign, GridData grid);
double evalcoef(double u0, double ***ucoef, double *uxcoef, double **uxxcoef,
int *index, int rstar, int sstar, double alpha, int mid,
double thesign, GridData grid);
#endif