30 #ifndef OOMPH_COMMON_YOUNG_LAPLACE_STUFF_DOC 31 #define OOMPH_COMMON_YOUNG_LAPLACE_STUFF_DOC 64 double Gamma = MathematicalConstants::Pi/4.0;
111 double Alpha_min = MathematicalConstants::Pi/2.0;
114 double Alpha_max = MathematicalConstants::Pi/2.0;
137 if ((N_x%2!=0)||(N_y%2!=0))
139 cout <<
"n_x n_y should even" << endl;
144 Control_element=N_y*N_x/2+N_x/2;
155 Alpha_min=MathematicalConstants::Pi/2.0;
156 Alpha_max=MathematicalConstants::Pi/2.0*0.5;
157 Rotate_spines_in_both_directions=
true;
162 Alpha_min=MathematicalConstants::Pi/2.0*1.5;
163 Alpha_max=MathematicalConstants::Pi/2.0*0.5;
164 Rotate_spines_in_both_directions=
true;
169 Alpha_min=MathematicalConstants::Pi/2.0*1.5;
170 Alpha_max=MathematicalConstants::Pi/2.0*0.5;
171 Rotate_spines_in_both_directions=
false;
176 Alpha_min=MathematicalConstants::Pi/2.0*1.5;
177 Alpha_max=MathematicalConstants::Pi/2.0*0.5;
178 Rotate_spines_in_both_directions=
false;
182 std::cout <<
"Never get here: Case = " << Case << std::endl;
187 Cos_gamma = cos(Gamma);
200 Vector<double>& spine_B,
201 Vector< Vector<double> >& dspine_B)
208 dspine_B[0][0] = 1.0 ;
209 dspine_B[1][0] = 0.0 ;
210 dspine_B[0][1] = 0.0 ;
211 dspine_B[1][1] = 1.0 ;
212 dspine_B[0][2] = 0.0 ;
213 dspine_B[1][2] = 0.0 ;
222 Vector<double>& spine,
223 Vector< Vector<double> >& dspine)
227 Vector<double> x(2,0.0);
232 if (!Rotate_spines_in_both_directions)
240 spine[1]=cos(Alpha_min+(Alpha_max-Alpha_min)*x[1]);
242 dspine[1][1]=-sin(Alpha_min+(Alpha_max-Alpha_min)*x[1])
245 spine[2]=sin(Alpha_min+(Alpha_max-Alpha_min)*x[1]);
247 dspine[1][2]=cos(Alpha_min+(Alpha_max-Alpha_min)*x[1])
253 spine[0]=cos(Alpha_min+(Alpha_max-Alpha_min)*x[0]);
254 dspine[0][0]=-sin(Alpha_min+(Alpha_max-Alpha_min)*x[0])*
258 spine[1]=cos(Alpha_min+(Alpha_max-Alpha_min)*x[1]);
260 dspine[1][1]=-sin(Alpha_min+(Alpha_max-Alpha_min)*x[1])*
275 if (Use_height_control)
282 return 4.0*Controlled_height/
283 (Controlled_height*Controlled_height+1.0);
289 return 2.0*Controlled_height/
290 (Controlled_height*Controlled_height+L_y*L_y/4.0);
294 std::cout <<
"No exact solution for this case..." << std::endl;
double L_x
Length and width of the domain.
double Controlled_height
Height control value.
bool Rotate_spines_in_both_directions
Should the spines rotate in the x and y directions (true)?
double Alpha_min
Min. spine angle against horizontal plane.
unsigned Nsteps
Number of steps.
void spine_function(const Vector< double > &x, Vector< double > &spine, Vector< Vector< double > > &dspine)
Spine: The spine vector field as a function of the two coordinates x_1 and x_2, and its derivatives w...
Namespace for "global" problem parameters.
Data * Kappa_pt
Pointer to Data object that stores the prescribed curvature.
unsigned N_x
Number of elements in the mesh.
double Gamma
Contact angle and its cos (dependent parameter – is reassigned)
void spine_base_function(const Vector< double > &x, Vector< double > &spine_B, Vector< Vector< double > > &dspine_B)
Spine basis: The position vector to the basis of the spine as a function of the two coordinates x_1 a...
bool Use_spines
Use spines (true) or not (false)
void setup_dependent_parameters_and_sanity_check()
Setup dependent parameters and perform sanity check.
double Cos_gamma
Cos of contact angle.
double Alpha_max
Max. spine angle against horizontal plane.
double L_y
Width of domain.
int Case
What case are we considering: Choose one from the enumeration Cases.
int Step_sign
Increase or decrease the value of the control parameters?
double Kappa_increment
Increment for prescribed curvature.
double Beta_min
Min. second spine angle against horizontal plane.
double Beta_max
Max. second pine angle against horizontal plane.
Cases
Enumeration for the possible cases.
double get_exact_kappa()
Exact kappa.
bool Use_height_control
Use height control (true) or not (false)?
double Kappa_initial
Initial value for kappa.
double Controlled_height_increment
Increment for height control.