Physics 229& 100 Homework #9
Name: Nasser Abbasi

1. Use dimensional reasoning and the tools described in Dimensional Analysis  to determine the order of magnitude of several physical quantities.
a) determine the pressure at the center of the earth.

Remove["Global`*"]
<<"MMHTools`DimTools`"
Needs["Miscellaneous`PhysicalConstants`"]

TableForm[Thread[{constantsymbols,symboldefs,symbUnits/constantsymbols}]]

Let d=Radius of earth, ρ denity of earth body, and G is the gravitional constant

dimanal[{ρ  ((( Kilogram)/(Meter^3))),d (Meter),ReduceUnits[ToSymbolsUnits[G]]},{Kilogram,Meter,Second},(Newton/((Meter^2) ))//ReduceUnits]

Hence the order of magnitude of pressure at center of earth is

First[%]

b) Cooking times for meat are typically given in units such as minutes/pound. This is a fiction devised for the numerically challenged. Using dimensional reasoning, how do you expect the cooking time of a turkey to scale with the mass?

Cooking time should depend on specific heat of turkey (Subscript[c, v]) (amount of heat to raise its temp by one degree), thermal conductivity of turkey k (how easily heat can flow within the turkey from one spot to another) and size of turkey L

params={cv(Joule/((Meter^3) Kelvin)),k (Watt/(Meter Kelvin)),L Meter}//ReduceUnits

dimanal[params,{Kilogram,Meter,Second},Second]

So cooking time depends on the square of the charaterstic length of the turkey. But we are asked to find how cooking time depend on the mass.
Since mass = Volume * density. Taking the density to be uniform and the same among all turkies, we see that the mass is propertional to the volume of the turkey

Hence mass ~ ρ (L^3)  where ρ is the density

i.e. ((((mass/ρ)))^(1/3))~ L

But cooking time ~ ((cv )/k)(L^2)

therefore cooking time is ~ ((((k/(Subscript[C, v]))(mass/ρ)))^(2/3))

In otherwords, cooking time is ~ (M^(2/3))

c) What is the speed of sound in a monotomic gas ?

monatomic gas is one in which atoms are not bound to each other.
Ask the question: What does the speed of sound in such a gas depend on? Answer: Density of gas, Temp. of gas, Pressure P

params={T(Kelvin),ρ (Kilogram/(Meter^3)), P(Newton/(Meter^2))}//ReduceUnits

dimanal[params,{Kilogram,Meter,Second},Meter/Second]

So sound speed ~ ((Sqrt[P])/(Sqrt[ρ]))* f[T]  where f[T] is some function of the temprature of the gass. It is a scalar function, so a f[T] should have some non-dimensional value as a result. I did some research on this and found that for monotomic gas this value is about 1.3 and f[t]=(Sqrt[((Subscript[C, p])/(Subscript[C, v]))]). where (Subscript[C, p]) is the specific heat of the gas at constant pressure, and (Subscript[C, v]) is the specific heat of the gas at constant volume

d) Determine the relation between the speed of waves in deep water ( like the ocean) and the wavelength of the waves. (Hint: what is the restoring force for big waves in the ocean?)

Speed of a wave  C = Wave Length (λ) * frequency (f)

i.e. C = λ f

But 2πf=ω

And if we model the wave going up and down as a mass/spring system, with stiffness K, then this leads to the standard formula that ω=(Sqrt[(K/m)]) where K is the stiffness of the wave as it goes up and down, and M is the mass of each wave.

and we know that  from the mass/spring model that 

                      restoring Force = K * displacement
                      
Here the displacement is the average wave hight.

For deep water waves, it is gravity that causes a wave to fall down again after it goes up. Hence the restoring Force is the weight of the wave

                     M g = K * wave height

K= ((M g)/h)    hence  ω=(Sqrt[(k/M)])=(Sqrt[(g/h)])
So f=(ω/(2π))=(Sqrt[(g/h)])(1/(2π))

so C = λ f
     C= λ (Sqrt[(g/h)])(1/(2π))
     
But 2πh = λ  (since one full cycle over the circle of radius h gives the length of the circumeference, which is the wave length).
So       C=  (Sqrt[((gλ)/(2π))])

e) Black holes have a characteristic scale known as the event horizon. Use dimensional reasoning to estimate its size.

What does event horizon depends on?  The event horizon is the distance from the black hole where light does not escape (escape velocity equals the speed of light). Mass of the black hole must be involved, and the universal gravtional constant as well. Therefore, I expect that the size must involve G, Mass, and c

params={m (Kilogram), G ((((Meter^2) Newton)/(Kilogram^2))), c (Meter/Second)}//ReduceUnits

dimanal[params,{Kilogram,Meter,Second},Meter]

Therefore event horizon ~ ((G m)/(c^2))

2. Boundary value problem : bound states of a quantum particle of mass m in a gravitational field on a hard surface. The Schrodinger equation is  -((ℏ^2)/(2 m))ψ''[x] + m g x ψ[x] == E ψ[x] . Because the particle is on a hard, impenetrable surface, the boundary condition at x=0 is ψ[0]=0. The other boundary condition is that ψ[x] is square integrable, i.e. (∫_0^∞)ψ (SuperStar[ψ])dx=1.  The boundary value problem has solutions only for special values of the energy E. Find the 4 lowest values of E and the associated wave function ψ[x]. 
a) Use dimanal from MMHTools`DimTools` to determine the natural units of length and energy for this problem. Perform a change of variables ( using Change Variables from MMHTools`DETools`) to express the Schrödinger equation in terms of dimensionless variables.

Remove["Global`*"];
<<"MMHTools`DimTools`"
<<"MMHTools`DETools`"
<<Miscellaneous`PhysicalConstants`

Make symbols for the dimensionless quantities for ease of reading

Needs["Utilities`Notation`"];
DynamicSymbolize[f_,k_]:=Symbolize[NotationBoxTag[SubscriptBox[f,k]]]
DynamicSymbolize["x","r"];
DynamicSymbolize["ψ","r"];

Now defined the ODE

ode= -(( (ℏ^2))/(2 m))ψ''[x] + m g x ψ[x] == En ψ[x]

The parameters involved in the ODE are m,g,  ℏ and E

condp={m Kilogram,g ,  ℏ}//ToSymbolsUnits//ReduceUnits

Find what is the length x is propertional to (this is the independent variable)

dimanal[condp,{Kilogram,Meter,Second,Coulomb},Meter]

mainTerm=First[%]

Hence Δx= xr(((ℏ^(2/3))/((g^(1/3)) (m^(2/3)))))  where xr is the constant of propertionality
Do a change of variable to change x in the ODE to the above

ode1=ChangeVariable[ode,x->(Subscript[x, r]) (mainTerm),ψ,ψ,x,(Subscript[x, r])]

Now change the energy E  to be dimensionless

dimanal[condp,{Kilogram,Meter,Second,Coulomb},ReduceUnits[Joule]]

mainTerm=First[%]

So E~ er * (g^(2/3)) (m^(1/3)) (ℏ^(2/3))

ode2=ChangeVariable[ode1,En->λ (mainTerm) ,ψ,(Subscript[ψ, r]),(Subscript[x, r]),(Subscript[x, r])]

We see from the above that we get (g^(2/3)) (m^(1/3)) (ℏ^(2/3))  Times expression of the reduced ODE ==0. Hence we can divide both sides by (g^(2/3)) (m^(1/3)) (ℏ^(2/3)) to remove it, we get

ode2=ode2/.mainTerm->1

ode2=Simplify[ode2]

The above represents the ODE in its dimensionless form. λ is now the eigenvalue of the ODE

b) Use finite differences to estimate  the first few eigenvalues, and plot the first 4 eigenfunctions.  ( use finitedifEVP from the Boundary Value Problems notebook; either copy and paste into this notebook, or execute the relevant lines in the browser. ) Explain how you deal with the boundary condition at ∞.

Needs["LinearAlgebra`MatrixManipulation`"];
finitedifEVP[de_,bc_,xRange_,lam_,yvar_,xvar_,npts_,verbose_]:=Block[{fdsub,bcrules,n,evals,evecs,sortvals,mat,fe,fs,h,elimb1,elimb2,B1,B2},
(* check input  *)
If [MatchQ[de,XX_==YY_],Null,Print[" input DE must be an equation"];Goto[bail]];
If[FreeQ[de,lam],Print["Error:    no ",lam,"  in de "];Goto[bail],Null];
If[Head[lam]===Symbol, Null,Print["eigenvalue parameter must be a simple Symbol"];Goto[bail]];
If [FreeQ[bc,yvar[xRange[[1]]],Infinity]&&FreeQ[bc,yvar'[xRange[[1]]],Infinity], Print[" lower boundary condition seems wrong "];Goto[bail],Null];
If [FreeQ[bc,yvar[xRange[[2]]],Infinity]&&FreeQ[bc,yvar'[xRange[[2]]],Infinity], Print[" upper boundary condition seems wrong "];Goto[bail],Null];
(*      *)
(* define lattice spacing  *)
h=(1.000)(xRange[[2]]-xRange[[1]])/(npts-1); 
(*  define finite difference rules *)
fdyvar=ToExpression["fd"<>SymbolName[yvar]];
fdsub={yvar[xvar]->fdyvar[n],yvar'[xvar]->(fdyvar[n+1]-fdyvar[n-1])/(2 h),yvar''[xvar]->(fdyvar[n+1]-2 fdyvar[n]+fdyvar[n-1])/h^2};
fdeq=de/.fdsub; 
fdeq=fdeq/.xvar->(1.000)*xRange[[1]]+(n-1) h;
If[verbose,Print["finite dif equations = ",fdeq],Null];
(* evaluate boundary conditions  *)
bceqs=bc//.{yvar[xRange[[1]]]->fdyvar[1],yvar[xRange[[2]]]->fdyvar[npts],
yvar'[xRange[[1]]]->(fdyvar[2]-fdyvar[1])/h,yvar'[xRange[[2]]]->(fdyvar[npts]-fdyvar[npts-1])/h};
bceqs=Sort[bceqs];
If[verbose,Print["boundary condition eqs = ",bceqs],Null];
(* evaluate equations in the interior region  *)
elimb1=First[Solve[bceqs,fdyvar[1]]];  (* rules to eliminate end point variables  *)
elimb2=First[Solve[bceqs,fdyvar[npts]]];
interioreqs=Table[fdeq,{n,2,npts-1}];
If[verbose,{matall,rhs}=LinearEquationsToMatrices[Append[Prepend[interioreqs,bceqs[[1]]],bceqs[[2]]],Table[fdyvar[i],{i,1,npts}]];
Print["all eqs mat = ",MatrixForm[matall]],Null];
B1=1;B2=npts;
eqs=interioreqs; (* if the endpoints don't contain lam, eliminate them *)
If[FreeQ[elimb1,lam],eqs=interioreqs/.elimb1;B1=2,eqs=PrependTo[interioreqs,bceqs[[1]]]];
If[FreeQ[elimb2,lam],eqs=eqs/.elimb2;B2=npts-1,AppendTo[eqs,bceqs[[2]]]];
(*  construct matrix version of de  *)
{mat,rhs}=LinearEquationsToMatrices[eqs,Table[fdyvar[i],{i,B1,B2}]];
If[verbose,Print["mat=  ",MatrixForm[mat]],Null];
If[verbose,Print["rhs=  ",rhs],Null];
diagcoeffs=DiagonalMatrix[Table[-1/Coefficient[mat[[i,i]],lam],{i,1,Length[mat]}]];
mat2=(diagcoeffs.mat)/.lam->0;
{evals,evecs}=Eigensystem[mat2];
(*   sort eigenvalues and eigenvectors with smallest first , i.e.
lowest eigenvalue is evals[[1]]  & corresponding eigenvector is evecs[[1]]     *) 
{evals,evecs}=Transpose[Sort[Transpose[{evals,evecs}]]];
                  (*  fix the end points  *)
offset=B1-B2+npts-1;
Which[offset==0,Null,
offset==1&&B1==1,
Do[
fe=(fdyvar[npts]/.elimb2)/.fdyvar[qn_]:>evecs[[i,qn-offset]];
AppendTo[evecs[[i]],fe],{i,1,npts-1}],
offset==1&&B1==2,
Do[
fs=(fdyvar[1]/.elimb1)/.fdyvar[qn_]:>evecs[[i,qn-offset]];
PrependTo[evecs[[i]],fs],{i,1,npts-1}],
True,
Do[
{fs,fe}={fdyvar[1]/.elimb1,fdyvar[npts]/.elimb2};
{fs,fe}={fs,fe}/.fdyvar[qn_]:>evecs[[i,qn-offset+1]];
evecs[[i]]=Prepend[AppendTo[evecs[[i]],fe],fs],{i,1,npts-2}]];

(*   add x values to evecs so that evecs contains {x,y} pairs for plotting   *)
xv=Table[xRange[[1]]+(i-1) h,{i,1,npts}];
evecs2=Table[Transpose[{xv,evecs[[i]]}],{i,1,Length[evecs]}];
Label[bail];
{evals,evecs2}
]

I used ψ[xFarWay]==0 as the upper boundary condition. Becuase that should be far enough to approximate infinity for this problem. The square integrable B.C. tells us that the solution should be zero far away.

xFarEnough=100;
{evc,evcs}=finitedifEVP[ode2,{(Subscript[ψ, r])[0]==0,(Subscript[ψ, r])[xFarEnough]==0},{0,xFarEnough},λ,(Subscript[ψ, r]),(Subscript[x, r]),4,False]

evcs//TableForm

evc//TableForm

c) Solve the same equation using the shooting method. The shooting method also requires a finite interval.  Recall that the shooting method can be unstable for large values of xr, so you may need to experiment with the appropriate form of the boundary conditon at the right hand boundary.

ψp0=1;
ode2

Solve using shooting method by looking for solution that makes ψ goes to zero far away. I used x=100 value to represent far away or infinity.

ψAtFar[ψp0_?NumericQ,eigenValue_?NumericQ]:=(Subscript[ψ, r])[1]/.NDSolve[{ode2/.λ->eigenValue,(Subscript[ψ, r])[0]==0,(Subscript[ψ, r])'[0]==ψp0},(Subscript[ψ, r]),{(Subscript[x, r]),0,xFarEnough}]//First

Plot[ψAtFar[ψp0,eigenValue],{eigenValue,1,100},FrameLabel->{"λ","(Subscript[ψ, r])[100]","Showing dependency of solution on eigenvalue",None},Frame->True];

The above shows where ψ(x) will be zero as a function of the eigenvalue λ. Now use FindRoot to find the smallest 4 eigenvalues

FindRoot[ψAtFar[ψp0,λ],{λ,5}]

FindRoot[ψAtFar[ψp0,λ],{λ,20}]

FindRoot[ψAtFar[ψp0,λ],{λ,45}]

FindRoot[ψAtFar[ψp0,λ],{λ,80}]

d) This problem is somewhat unusual because an exact analytical solution can be found. Use DSolve to find analytic expressions for the eigenfucntions, and use FindRoot to numerically estimate the eigenvalues. Hint: solve the problem without imposing the boundary conditions. The solution will be a linear combination of two functions. Argue that one of them diverges at x-> ∞, so cannot be part of the solution. Then find the values of er which satisfy the boundary condition at xr=0.

sol=(Subscript[ψ, r])[(Subscript[x, r])]/.Flatten[DSolve[ode2,(Subscript[ψ, r])[(Subscript[x, r])],(Subscript[x, r])]]

Now I have 2 solutions being added togother to give a general solution. From the boundary condition that tells us (∫_0^∞)ψ (SuperStar[ψ])dx=1 it implies that solution is zero at zero, and also zero at far away. So I plot each of the above solutions, then see which solution blow up as x gets large. Then I discard this solution since it would not lead to the boundary condition given.

Plot[AiryAi[x],{x,0,10},PlotRange->All];

So the above tells me that I need to keep the solution associated with AiryAi, which is the solution that is associated with C[1]. Now look the second solution

Plot[AiryBi[x],{x,0,10},PlotRange->All];

We see that AiryBi blows up, hence C[2] must be zero to avoid this solution. Hence solution is

sol=sol/.first_+second_->first

Since C[1] is a constant, I can set it to 1

sol=sol/.C[1]->1

So the above now is the solution for ψ. there is an eigenvalue λ that the solution depends on. Now find λ which makes this solution go to zero at (Subscript[x, r])=0

sol=sol/.(Subscript[x, r])->0

Plot[sol,{λ,0,10}];

We now can find few λ's which will make the solution ψ be zero at zero bu using FindRoot

FindRoot[sol,{λ,2}]

FindRoot[sol,{λ,5}]

FindRoot[sol,{λ,6.5}]

Ok, problem completed.

3. Find a representation in terms of Fourier series for the periodic function with period 1 which is generated by semicircles as shown in the Figure below. Make a plot which compares the function and the series approximation.

Since the function is periodic, it can be expanded by Fourier series, since a fourier series approximates periodic functions only.

Plot the above function

Remove["Global`*"]
Needs["Graphics`Colors`"];
<<Graphics`Animation`

r=.5;  y0=.5;x0=0.5;

fMain[x_]:=If[x<=0.,0,base=Floor[x];newX=x-base;N[-(Sqrt[(r^2)-(((newX-x0))^2)])+y0]];

fOnePeriod[x_]:=Piecewise[{  {0,x≤ 0},{N[-(Sqrt[(r^2)-(((x-x0))^2)])+y0 ], 0≤x< 1},{0 , 1≤x}}]

Plot[fMain[x],{x,0,3},AxesOrigin->{0,0},AspectRatio->Automatic,PlotLabel->"f[x] over many periods",ImageSize->500];

Plot[fOnePeriod[x],{x,0,3},AxesOrigin->{0,0},AspectRatio->Automatic,PlotLabel->"f[x] over one period",ImageSize->500];

generate a list of the a[n] and b[n].

maxN=10; (*10 terms is more than enough to get very good approximation*)
from=0;
to=1;

period=1; (*Always use the period of the function we want to approximate*)

a0=(1/(period/2))NIntegrate[fOnePeriod[x],{x,from,to}];
a=Chop[N[Table[(1/(period/2))(∫_from^to)Cos[((n π x)/(period/2))]fOnePeriod[x]\[DifferentialD]x,{n,1,maxN}]]];
b=Chop[N[Table[(1/(period/2))(∫_from^to)Sin[((n π x)/(period/2))]fOnePeriod[x]\[DifferentialD]x,{n,1,maxN}]]];

xseries[x_,maxN_]:=(1/2)a0+(∑_(n=1)^maxN)(  a[[n]]Cos[((n π x)/(period/2))]+b[[n]] Sin[((n π x)/(period/2))] );

Now plot the approximation over one period of the function

Do[Plot[Evaluate[{xseries[x,n],fMain[x]}],{x,0,1},AxesOrigin->{0,0},AspectRatio->Automatic,PlotRange->{{0,1},{0,.5}},ImageSize->300,PlotStyle->{Black,Red},PlotLabel->"n="<>ToString[n-1]],{n,1,maxN}]

Now plot the approximation over many periods

Do[Plot[Evaluate[{xseries[x,n],fMain[x]}],{x,0,3},AxesOrigin->{0,0},AspectRatio->Automatic,PlotRange->{{0,3},{0,1}},ImageSize->400,PlotStyle->{Black,Red},PlotLabel->"n="<>ToString[n-1]],{n,1,maxN}]

Function for animation

AnimateToClosedGroup[graphicslist_,animationdisplaytime_]:=(NotebookWrite[EvaluationNotebook[],CellGroupData[Table[Cell[GraphicsData["PostScript",DisplayString[graphicslist[[i]]]],"Graphics"],{i,Length[graphicslist]}],Closed],After];
SelectionMove[EvaluationNotebook[],Previous,CellGroup];
SelectionAnimate[EvaluationNotebook[],Length[graphicslist]*animationdisplaytime,AnimationDisplayTime->animationdisplaytime])

these below are animations.

plotlist=Table[Show[Plot[Evaluate[{xseries[x,n],fMain[x]}],{x,0,1},AxesOrigin->{0,0},AspectRatio->Automatic,PlotRange->{{0,1},{0,.6}},DisplayFunction->Identity,ImageSize->400,PlotStyle->{Black,Red},PlotLabel->"n="<>ToString[n]]],{n,1,10,1}];

AnimateToClosedGroup[plotlist,.5]

Below is animation of the whole function

plotlist=Table[Show[Plot[Evaluate[{xseries[x,n],fMain[x]}],{x,0,3},AxesOrigin->{0,0},AspectRatio->Automatic,PlotRange->{{0,3},{0,.6}},DisplayFunction->Identity,ImageSize->600,PlotStyle->{Black,Red},PlotLabel->"n="<>ToString[n-1]]],{n,1,10,1}];

AnimateToClosedGroup[plotlist,.5]

4.  A triangle function is zero for  \[VerticalSeparator]x\[VerticalSeparator]>a, and has magnitude L at x=0 as shown in the figure.

Calculate the Fourier transform of this function.

Since the function is not periodic, it can not be approximated by Fourier series since a fourier series approximates periodic functions only. We need to use fourier transform.

Remove["Global`*"];

Do a sketch to make sure I got the function definition ok first. Pick some values for 'a' and 'L'

a=3;
L=1;
f[x_]:=Piecewise[{  {0,x<-a},{0,x>a},{L+((L/a))x,-a≤ x<0},{L-(L/a)x,0≤ x<a}}]
Plot[f[x],{x,-4,4},AxesOrigin->{0,0}];

It looks Ok, now write the fourier transform

g[ω_]:=(1/(2π))(∫_(-a)^a)f[x](E^(-I ω x))\[DifferentialD]x
Plot[Evaluate[g[ω]],{ω,-10,10},PlotRange->All,AxesLabel->{"ω","F[ω]"}];

5(grads). The wave function for the electron in the ground state of hydrogen is (Subscript[ψ, 1])(r)=((e^(-r/a0))/((Sqrt[π])(a0^(3/2)))), where a0 is a unit of length (Bohr radius) and r is the spherical position coordinate. 
a) Verify that this wave function is normalized.

b)  (Subscript[ψ, 1])(r) lives in 3 dimensional space. The Fourier transform (Subscript[ψ, 1])(k)=(1/(((2π))^(3/2)))∫ (e^(i (OverVector[k])·(OverVector[x]))) (Subscript[ψ, 1])(r) (d^3)x lives in 3 dimensional k space; (Subscript[ψ, 1])(k) represents the amplitude to have a momentum p=ℏ k.   Choose a coordinate system with the z axis aligned along (OverVector[k]), and perform the integration.

c) verify that (Subscript[ψ, 1])(k) is normalized. (Subscript[ψ, 1])(k)(SuperStar[(Subscript[ψ, 1])])(k) is the probability density of k. What is the most probable value of the magnitude of k?

6. Make a plot of the prime interest rate as a function of time from 1949  to the present. The data can be found at http://www.federalreserve.gov/releases/h15/data.htm  ( go to Bank prime loan and click on Monthly). Use your browser , and "save as" to save a copy of the file on your local hard drive. Use Drop to remove the header information. You will have to convert data records such as 01/1949 , which are strings, into numbers. Use decimal years , so the string 01/1949 should be represented as 1949.08.  Process the data using pattern matching,  Take, Drop, and StringTake. ToExpression will convert strings into numbers.

Remove["Global`*"]
localdata="E:\\nabbasi\\data\\nabbasi_web_Page\\my_courses\\UCI_COURSES\\CREDIT_COURSES\\fall_2006\\PHYS_100_comp_physics\\HWs\\HW9";
data=Import[localdata<>"\\H15_PRIME_NA.txt","Lines"];
Dimensions[data]

Find which line number the header goes to, by trial and error

data[[8]]

data[[9]]

So I need to remove the first 8 lines

data=Drop[data,8];

data[[1]]

Ok, now data has only rows of actual data to use. Now convert date such as 01/1949 to 1949.08

cleanData={};

This function below parses ONE line. It is called by the main loop. It takes one line and returns a list of 2 entries. One for the date in correct decimal format, and the second entry is the interest rate. all converted to numbers.

processLine[line_]:=Module[{date,interest,month,year},

{from,to}=Flatten[StringPosition[line,","]]; (*find where the comma is*)
date=StringTake[line,{1,from-1}];
interest=StringTake[line,{from+1,StringLength[line]}];

{from,to}=Flatten[StringPosition[date,"/"]]; (*find where the slash is*)
month=StringTake[date,{1,from-1}];
year=StringTake[date,{from+1,StringLength[date]}];

(*now convert to numbers*)
month=ToExpression[month]/12;
date=ToExpression[year]+month;

N[{date,ToExpression[interest]}]

];

This is the main program below. It called the above function in a loop to process all lines

Do[AppendTo[cleanData,processLine[data[[n]]]],{n,1,Length[data]}];

Now plot it

ListPlot[cleanData,AxesLabel->{"time","interest rate"},PlotLabel->"prime interest rate as a function of time from 1949  to the present",ImageSize->600,PlotJoined->True];