��<?xml version="1.0" encoding="UTF-16"?> <!-- This XML file has been created by Easy Java(script) Simulations (EjsS). Visit http://www.um.es/fem/Ejs. --> <!-- Please, save the file to your hard disk on your Ejs' user directory and open it with Ejs. --> <Osejs version="6.0_beta" password=""> <Osejs.Information> <Title><![CDATA[Dark Matter simulator, circular orbits]]></Title> <Copyright><![CDATA[]]></Copyright> <Keywords><![CDATA[]]></Keywords> <Password><![CDATA[]]></Password> <Level><![CDATA[]]></Level> <Language><![CDATA[]]></Language> <Abstract><![CDATA[]]></Abstract> <ExecPassword><![CDATA[]]></ExecPassword> <CaptureTools>false</CaptureTools> <DataTools>false</DataTools> <LanguageTools>false</LanguageTools> <AppletColSupport>false</AppletColSupport> <UseMacMenuBar>false</UseMacMenuBar> <FixedNavigationBar>false</FixedNavigationBar> <RunInBrowserFirst>false</RunInBrowserFirst> <RunAlways>true</RunAlways> <UseInterpreter>true</UseInterpreter> <UseDeltaForODE>false</UseDeltaForODE> <ModelTab></ModelTab> <ModelTabTitle><![CDATA[]]></ModelTabTitle> <ModelName><![CDATA[]]></ModelName> <CSSFile></CSSFile> <StaticImages> </StaticImages> <HTMLHead><![CDATA[]]></HTMLHead> <Logo></Logo> <Author><![CDATA[Author name; Geoff Mathews]]></Author> <AuthorLogo>;</AuthorLogo> <AdditionalLibraries> </AdditionalLibraries> <ImportStatements> </ImportStatements> <ClassesRequired> </ClassesRequired> <ManifestLines><![CDATA[Permissions: sandbox Codebase: * Caller-Allowable-Codebase: * ]]></ManifestLines> <DetectedFiles><![CDATA[]]></DetectedFiles> <AuxiliaryFiles><![CDATA[]]></AuxiliaryFiles> </Osejs.Information> <Osejs.Description> <Osejs.Description.Page> <Type>DESCRIPTION_EDITOR</Type> <Name>Intro Page</Name> <Active>true</Active> <Internal>false</Internal> <Content> <OneHTMLPage> <Locale>_default_</Locale> <Title>Intro Page</Title> <External>false</External> <![CDATA[ <html> <head> <style type="text/css"> <!-- �� body { text-align: justify; font-size: medium; font-family: Georgia, Times New Roman, Times, serif } h1 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif; color: #0000C8; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; font-size: 135% !important } h2 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif; color: #000777; font-size: 120% !important } h3 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif; color: navy; font-size: 110% !important } h4 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif } h5 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif } h6 { text-indent: 0px; text-align: left; font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif } li { text-align: left; margin-top: 0; margin-bottom: 0 } p { line-height: 1.5em; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; text-align: justify } a:link { color: red } a:visited { color: fuchsia } address { margin-top: 0; padding-top: 0; border-top-color: border-color; border-top-style: dotted; border-top-width: thin } button { font-family: Georgia, Times New Roman, Times, serif; font-size: 1em; color: black } input { font-size: 0.70em; background-repeat: repeat; background-attachment: scroll; color: black } div.experiment p { display: inline } .ArrayPanel { border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; display: table; width: 100% } .DataTable { border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; display: table; width: 100% } .ArrayPanel thead { float: left; width: 100%; background-repeat: repeat; background-attachment: scroll } .ArrayPanel tbody { float: left; width: 100% } .ArrayPanel tr { width: 100%; display: table } .DataPanel tr { width: 100%; display: table } .ArrayPanel th { width: 1%; border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; text-align: center } .DataTable th { width: 1%; border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; text-align: center } .ArrayPanel td { width: 1%; border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; text-align: right } .DataTable td { width: 1%; border-top-color: black; border-top-style: solid; border-top-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; text-align: right } .DataTable thead { background-repeat: repeat; background-attachment: scroll } .BoxPanel { background-color: red; background-repeat: repeat; background-attachment: scroll } ._TabbedPanel.span { display: table; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0 } ._TabbedPanel.ul { list-style-type: none; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0 } ._TabbedPanel.li { float: left; text-align: center; margin-top: 0; margin-bottom: 0; border-top-color: #ccc; border-top-style: solid; border-top-width: 1px; border-right-color: #ccc; border-right-style: solid; border-right-width: 1px; border-bottom-color: #ccc; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: #ccc; border-left-style: solid; border-left-width: 1px } ._TabbedPanel.a { display: inline-block; color: black; text-align: center; padding-top: 7px; padding-bottom: 7px; padding-right: 8px; padding-left: 8px; text-decoration: none; font-size: 14px } --> </style> </head> <body> <p style="margin-top: 0"> Test model of Dark Matter simulator. </p> <p style="margin-top: 0"> </p> <p style="margin-top: 0"> Dark Matter density (top plot)&#160; - click and drag to adjust </p> </body> </html> ]]> </OneHTMLPage> </Content> </Osejs.Description.Page> </Osejs.Description> <Osejs.Model> <Osejs.Model.FramesPerSecond>20</Osejs.Model.FramesPerSecond> <Osejs.Model.StepsPerDisplay>1</Osejs.Model.StepsPerDisplay> <Osejs.Model.RealTimeVariable></Osejs.Model.RealTimeVariable> <Osejs.Model.Autostart>true</Osejs.Model.Autostart> <Osejs.Model.Variables> <Osejs.Model.Variables.Page> <Type>VARIABLE_EDITOR</Type> <Name>independent</Name> <Active>true</Active> <Internal>false</Internal> <Content> <PageComment><![CDATA[]]></PageComment> <Variable> <Name><![CDATA[G]]></Name> <Value><![CDATA[1.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[t]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[dt]]></Name> <Value><![CDATA[0.1]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> </Content> </Osejs.Model.Variables.Page> <Osejs.Model.Variables.Page> <Type>VARIABLE_EDITOR</Type> <Name>Dark matter</Name> <Active>true</Active> <Internal>false</Internal> <Content> <PageComment><![CDATA[]]></PageComment> <Variable> <Name><![CDATA[GalaxyRadius]]></Name> <Value><![CDATA[30]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[nAnnuli]]></Name> <Value><![CDATA[15]]></Value> <Type><![CDATA[int]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMdensity]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[widthAnnulus]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[innerEdge]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[outerEdge]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[annulusCenter]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMdensity0]]></Name> <Value><![CDATA[10]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMsigma]]></Name> <Value><![CDATA[15]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMCenter]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMwidths]]></Name> <Value><![CDATA[widthAnnulus]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMdiameters]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[DMcolor]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[nAnnuli]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[]]></Name> <Value><![CDATA[]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> </Content> </Osejs.Model.Variables.Page> <Osejs.Model.Variables.Page> <Type>VARIABLE_EDITOR</Type> <Name>Stars</Name> <Active>true</Active> <Internal>false</Internal> <Content> <PageComment><![CDATA[]]></PageComment> <Variable> <Name><![CDATA[x1]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[y1]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[n]]></Name> <Value><![CDATA[15]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[xs]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[ys]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[rs]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[vs]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[thetas]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[omegas]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[xinit]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[yinit]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[massInOrbit]]></Name> <Value><![CDATA[0.0]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[[n]]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> <Variable> <Name><![CDATA[]]></Name> <Value><![CDATA[]]></Value> <Type><![CDATA[double]]></Type> <Dimension><![CDATA[]]></Dimension> <Domain><![CDATA[public]]></Domain> <Comment><![CDATA[]]></Comment> </Variable> </Content> </Osejs.Model.Variables.Page> </Osejs.Model.Variables> <Osejs.Model.Initialization> <Osejs.Model.Initialization.Page> <Type>CODE_EDITOR</Type> <Name>Init Dark Matter</Name> <Active>true</Active> <Internal>false</Internal> <Content> <Comment><![CDATA[]]></Comment> <Code><![CDATA[ widthAnnulus = GalaxyRadius / nAnnuli; for(var i=0; i<nAnnuli; i++){ DMwidths[i] = widthAnnulus * 3; innerEdge[i] = i*widthAnnulus; outerEdge[i] = (i+1)*widthAnnulus; annulusCenter[i] = (innerEdge[i]+outerEdge[i])/2 DMdiameters[i] = 2*annulusCenter[i] //DMdensity[i] = DMdensity0; DMdensity[i] = DMdensity0 * Math.exp(-1.0*(i+0.5)*widthAnnulus/DMsigma); //DMdensity[i] = DMdensity0 * Math.sqrt(annulusCenter[i]); DMdensity[i] = DMdensity0 * 1.0 / Math.sqrt(2 * Math.PI * DMsigma * DMsigma) * Math.exp(-1.0*annulusCenter[i]*annulusCenter[i]/(2.0*DMsigma*DMsigma)); //print(DMwidths[i], innerEdge[i], outerEdge[i], annulusCenter[i], DMdiameters[i]) } ]]></Code> </Content> </Osejs.Model.Initialization.Page> <Osejs.Model.Initialization.Page> <Type>CODE_EDITOR</Type> <Name>Init stars</Name> <Active>true</Active> <Internal>false</Internal> <Content> <Comment><![CDATA[]]></Comment> <Code><![CDATA[ var spacing = GalaxyRadius / (n+1); var tempMass = 0.0; for (var i=0; i<n; i++) { xinit[i] = (i+1)*spacing; yinit[i] = 0.0; rs[i] = Math.sqrt(xinit[i] * xinit[i] + yinit[i] * yinit[i]); tempMass = 0.0; for (var j=0; j<nAnnuli; j++) { if (outerEdge[j] < rs[i]) { tempMass = tempMass + DMdensity[j] * 4.0/3.0 * Math.PI * (outerEdge[j]*outerEdge[j]*outerEdge[j] - innerEdge[j]*innerEdge[j]*innerEdge[j]); } else if (innerEdge[j] < rs[i]) { tempMass = tempMass + DMdensity[j] * 4.0/3.0 * Math.PI * (rs[i]*rs[i]*rs[i] - innerEdge[j]*innerEdge[j]*innerEdge[j]); } // else { // tempMass = tempMass; // } } massInOrbit[i] = tempMass; vs[i] = Math.sqrt(G*massInOrbit[i] / rs[i]); thetas[i] = Math.atan2(yinit[i],xinit[i]); omegas[i] = vs[i] / rs[i]; xs[i] = rs[i] * Math.cos(thetas[i]); ys[i] = rs[i] * Math.sin(thetas[i]); //xs[i] = xinit[i]); //ys[i] = yinit[i]); //_view.speedTrail.addPoint(rs[i],yinit[i]); } //xs = xinit //ys = yinit _pause(); ]]></Code> </Content> </Osejs.Model.Initialization.Page> </Osejs.Model.Initialization> <Osejs.Model.Evolution> <Osejs.Model.Evolution.Page> <Type>ODE_EDITOR</Type> <Name>Evol Page</Name> <Active>true</Active> <Internal>false</Internal> <Content> <PreliminaryCode> <Comment><![CDATA[Code to be executed before rate equations are evaluated]]></Comment> <Code><![CDATA[ ]]></Code> </PreliminaryCode> <ErrorHandling> </ErrorHandling> <DelayInitialCondition> <Comment><![CDATA[]]></Comment> <Code><![CDATA[ ]]></Code> </DelayInitialCondition> <Discontinuities> </Discontinuities> <Events> </Events> <IndependentVariable>t</IndependentVariable> <Increment>0.05</Increment> <Rate state="thetas[i]">omegas[i]</Rate> <Method>Euler</Method> <Tolerance></Tolerance> <InternalStep></InternalStep> <MemoryLength></MemoryLength> <MaximumStep></MaximumStep> <MaximumNumberOfSteps>10000</MaximumNumberOfSteps> <AbsoluteTolerance>0.00001</AbsoluteTolerance> <RelativeTolerance></RelativeTolerance> <EstimateFirstStep>false</EstimateFirstStep> <AccelerationIndependentOfVelocity>false</AccelerationIndependentOfVelocity> <ForceSynchronization>false</ForceSynchronization> <UseBestInterpolation>false</UseBestInterpolation> <EventMaximumStep></EventMaximumStep> <DelayList><![CDATA[]]></DelayList> <DelayMaximum><![CDATA[]]></DelayMaximum> <DelayAddDiscont><![CDATA[]]></DelayAddDiscont> <DirectIncidenceMatrix><![CDATA[]]></DirectIncidenceMatrix> <Comment><![CDATA[]]></Comment> </Content> </Osejs.Model.Evolution.Page> <Osejs.Model.Evolution.Page> <Type>EVOLUTION_EDITOR</Type> <Name>Evol Page 2</Name> <Active>false</Active> <Internal>false</Internal> <Content> <Comment><![CDATA[]]></Comment> <Code><![CDATA[ //t += dt for (var i=0; i<n; i++){ // thetas[i] += omegas[i]*dt; xs[i] = rs[i]*Math.cos(thetas[i]); ys[i] = rs[i]*Math.sin(thetas[i]); // _println (xs[i]); } ]]></Code> </Content> </Osejs.Model.Evolution.Page> </Osejs.Model.Evolution> <Osejs.Model.Constraints> <Osejs.Model.Constraints.Page> <Type>CODE_EDITOR</Type> <Name>FixRel Page</Name> <Active>true</Active> <Internal>false</Internal> <Content> <Comment><![CDATA[]]></Comment> <Code><![CDATA[ var i = 0 var tempMass = 0.0 for (i=0; i<n; i++){ xs[i] = rs[i]*Math.cos(thetas[i]); ys[i] = rs[i]*Math.sin(thetas[i]); //_view.speedTrail.addPoint(rs[i],vs[i]); //_view.massInOrbitTrail.addPoint(rs[i],massInOrbit[i]); tempMass = 0.0; for (var j=0; j<nAnnuli; j++) { if (outerEdge[j] < rs[i]) { tempMass = tempMass + DMdensity[j] * 4.0/3.0 * Math.PI * (outerEdge[j]*outerEdge[j]*outerEdge[j] - innerEdge[j]*innerEdge[j]*innerEdge[j]); } else if (innerEdge[j] < rs[i]) { tempMass = tempMass + DMdensity[j] * 4.0/3.0 * Math.PI * (rs[i]*rs[i]*rs[i] - innerEdge[j]*innerEdge[j]*innerEdge[j]); } // else { // tempMass = tempMass; // } } massInOrbit[i] = tempMass; vs[i] = Math.sqrt(G*massInOrbit[i] / rs[i]); //thetas[i] = Math.atan2(yinit[i],xinit[i]); omegas[i] = vs[i] / rs[i]; } for (i=0; i<nAnnuli; i++){ if (DMdensity[i] < 0) { DMdensity[i] = 0 } if (DMdensity[i] > 1) { DMdensity[i] = 1 } DMcolor[i] = 255*DMdensity[i] DMwidths[i] = widthAnnulus * 5 * DMdensity[i]; //_view.darkMatterDensityTrail.addPoint((innerEdge[i]+outerEdge[i])/2,DMdensity[i]); } ]]></Code> </Content> </Osejs.Model.Constraints.Page> </Osejs.Model.Constraints> <Osejs.Model.Library> </Osejs.Model.Library> <Osejs.Model.Elements> </Osejs.Model.Elements> </Osejs.Model> <Osejs.View> <Osejs.View.Creation> </Osejs.View.Creation> </Osejs.View> <Osejs.HtmlView> <Osejs.HtmlView.Page> <Type>HTML_VIEW_EDITOR</Type> <Name>HtmlView Page</Name> <Active>true</Active> <Internal>false</Internal> <Content> <SizeOption>0</SizeOption> <X>0</X> <Y>0</Y> <Width>800</Width> <Height>600</Height> <KeepHidden>true</KeepHidden> <RootProperties> </RootProperties> <Tree> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[singleDrawingPanel]]></Name> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[labelPanel]]></Name> <Parent><![CDATA[singleDrawingPanel]]></Parent> </HtmlView.Element> <HtmlView.Element> <Type>Elements.Label</Type> <Name><![CDATA[topLabel]]></Name> <Parent><![CDATA[labelPanel]]></Parent> <Property name="Text"><![CDATA["<h1>Dark Matter simulator, circular orbits</h1>"]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.WrappedPanel</Type> <Name><![CDATA[wrappedPanel]]></Name> <Parent><![CDATA[singleDrawingPanel]]></Parent> <Property name="CSS"><![CDATA[{ "display":"block"}]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[mainPanel]]></Name> <Parent><![CDATA[wrappedPanel]]></Parent> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[leftPanel]]></Name> <Parent><![CDATA[mainPanel]]></Parent> <Property name="CSS"><![CDATA[{"display":"inline-block"}]]></Property> <Property name="Height"><![CDATA["70%"]]></Property> <Property name="Width"><![CDATA["50%"]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.DrawingPanel</Type> <Name><![CDATA[drawingPanel]]></Name> <Parent><![CDATA[leftPanel]]></Parent> <Property name="MinimumX"><![CDATA[-50]]></Property> <Property name="MinimumY"><![CDATA[-50]]></Property> <Property name="AutoScaleY"><![CDATA[true]]></Property> <Property name="AutoScaleX"><![CDATA[true]]></Property> <Property name="Height"><![CDATA[400]]></Property> <Property name="SquareAspect"><![CDATA[true]]></Property> <Property name="Width"><![CDATA[400]]></Property> <Property name="MaximumY"><![CDATA[50]]></Property> <Property name="MaximumX"><![CDATA[50]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.ShapeSet2D</Type> <Name><![CDATA[darkMatterShapeSet]]></Name> <Parent><![CDATA[drawingPanel]]></Parent> <Property name="NumberOfElements"><![CDATA[nAnnuli]]></Property> <Property name="SizeX"><![CDATA[DMdiameters]]></Property> <Property name="ShapeType"><![CDATA["ELLIPSE"]]></Property> <Property name="X"><![CDATA[DMCenter]]></Property> <Property name="LineColor"><![CDATA["Cyan"]]></Property> <Property name="Y"><![CDATA[DMCenter]]></Property> <Property name="Visibility"><![CDATA[true]]></Property> <Property name="SizeY"><![CDATA[DMdiameters]]></Property> <Property name="DrawLines"><![CDATA[true]]></Property> <Property name="LineWidth"><![CDATA[DMwidths]]></Property> <Property name="DrawFill"><![CDATA[false]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.ShapeSet2D</Type> <Name><![CDATA[starsShapeSet]]></Name> <Parent><![CDATA[drawingPanel]]></Parent> <Property name="NumberOfElements"><![CDATA[n]]></Property> <Property name="OnRelease"><![CDATA[_view._initialize();]]></Property> <Property name="FillColor"><![CDATA["Red"]]></Property> <Property name="SizeX"><![CDATA[7]]></Property> <Property name="X"><![CDATA[xs]]></Property> <Property name="Y"><![CDATA[ys]]></Property> <Property name="Visibility"><![CDATA[true]]></Property> <Property name="SizeY"><![CDATA[7]]></Property> <Property name="PixelSize"><![CDATA[true]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[rightPanel]]></Name> <Parent><![CDATA[mainPanel]]></Parent> <Property name="CSS"><![CDATA[{"display":"inline-block"}]]></Property> <Property name="Height"><![CDATA["70%"]]></Property> <Property name="Width"><![CDATA["50%"]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.PlottingPanel</Type> <Name><![CDATA[darkMatterDensityInteractiveAxes]]></Name> <Parent><![CDATA[rightPanel]]></Parent> <Property name="MinimumX"><![CDATA[0]]></Property> <Property name="MinimumY"><![CDATA[0]]></Property> <Property name="TitleY"><![CDATA["Dark matter density"]]></Property> <Property name="AutoScaleY"><![CDATA[true]]></Property> <Property name="TitleX"><![CDATA["Distance from galactic center"]]></Property> <Property name="AutoScaleX"><![CDATA[true]]></Property> <Property name="Enabled"><![CDATA[true]]></Property> <Property name="Height"><![CDATA[200]]></Property> <Property name="Width"><![CDATA[400]]></Property> <Property name="MaximumY"><![CDATA[1]]></Property> <Property name="MaximumX"><![CDATA[30]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.ShapeSet2D</Type> <Name><![CDATA[densityControlShapeSet]]></Name> <Parent><![CDATA[darkMatterDensityInteractiveAxes]]></Parent> <Property name="NumberOfElements"><![CDATA[nAnnuli]]></Property> <Property name="FillColor"><![CDATA["Red"]]></Property> <Property name="SizeX"><![CDATA[1]]></Property> <Property name="ShapeType"><![CDATA["ELLIPSE"]]></Property> <Property name="X"><![CDATA[annulusCenter]]></Property> <Property name="Y"><![CDATA[DMdensity]]></Property> <Property name="SizeY"><![CDATA[0.1]]></Property> <Property name="EnabledPosition"><![CDATA["ENABLED_Y"]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>false</Expanded> <Type>Elements.PlottingPanel</Type> <Name><![CDATA[speedPlot]]></Name> <Parent><![CDATA[rightPanel]]></Parent> <Property name="MinimumX"><![CDATA[0]]></Property> <Property name="MinimumY"><![CDATA[0]]></Property> <Property name="TitleY"><![CDATA["Orbital speed"]]></Property> <Property name="AutoScaleY"><![CDATA[true]]></Property> <Property name="TitleX"><![CDATA["Distance from galactic center"]]></Property> <Property name="Height"><![CDATA[200]]></Property> <Property name="Width"><![CDATA[400]]></Property> <Property name="MaximumY"><![CDATA[3]]></Property> <Property name="MaximumX"><![CDATA[30]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.ShapeSet2D</Type> <Name><![CDATA[shapeSet2]]></Name> <Parent><![CDATA[speedPlot]]></Parent> <Property name="NumberOfElements"><![CDATA[n]]></Property> <Property name="FillColor"><![CDATA["Red"]]></Property> <Property name="SizeX"><![CDATA[1]]></Property> <Property name="X"><![CDATA[rs]]></Property> <Property name="LineColor"><![CDATA["Red"]]></Property> <Property name="Y"><![CDATA[vs]]></Property> <Property name="SizeY"><![CDATA[1]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>false</Expanded> <Type>Elements.PlottingPanel</Type> <Name><![CDATA[massInOrbitPlot]]></Name> <Parent><![CDATA[rightPanel]]></Parent> <Property name="MinimumX"><![CDATA[0]]></Property> <Property name="MinimumY"><![CDATA[0]]></Property> <Property name="TitleY"><![CDATA["Mass within orbit"]]></Property> <Property name="AutoScaleY"><![CDATA[true]]></Property> <Property name="TitleX"><![CDATA["Distance from galactic center"]]></Property> <Property name="Height"><![CDATA[200]]></Property> <Property name="Width"><![CDATA[400]]></Property> <Property name="MaximumY"><![CDATA[10]]></Property> <Property name="MaximumX"><![CDATA[30]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.ShapeSet2D</Type> <Name><![CDATA[shapeSet3]]></Name> <Parent><![CDATA[massInOrbitPlot]]></Parent> <Property name="NumberOfElements"><![CDATA[n]]></Property> <Property name="FillColor"><![CDATA["Red"]]></Property> <Property name="SizeX"><![CDATA[1]]></Property> <Property name="X"><![CDATA[rs]]></Property> <Property name="LineColor"><![CDATA["Red"]]></Property> <Property name="Y"><![CDATA[massInOrbit]]></Property> <Property name="SizeY"><![CDATA[1]]></Property> <Property name="LineWidth"><![CDATA[2]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[controlPanel]]></Name> <Parent><![CDATA[wrappedPanel]]></Parent> <Property name="CSS"><![CDATA[{"display":"block"}]]></Property> <Property name="BorderStyle"><![CDATA["solid"]]></Property> <Property name="BorderColor"><![CDATA["Gray"]]></Property> <Property name="BorderWidth"><![CDATA[1]]></Property> <Property name="Width"><![CDATA[398]]></Property> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[firstRowPanel]]></Name> <Parent><![CDATA[controlPanel]]></Parent> </HtmlView.Element> <HtmlView.Element> <Expanded>true</Expanded> <Type>Elements.Panel</Type> <Name><![CDATA[executionPanel]]></Name> <Parent><![CDATA[firstRowPanel]]></Parent> <Property name="Display"><![CDATA["inline-block"]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.TwoStateButton</Type> <Name><![CDATA[runPauseButton]]></Name> <Parent><![CDATA[executionPanel]]></Parent> <Property name="OffClick"><![CDATA[%_play%]]></Property> <Property name="State"><![CDATA[_isPlaying]]></Property> <Property name="Tooltip"><![CDATA["Play/Pause"]]></Property> <Property name="ImageOnUrl"><![CDATA["/org/opensourcephysics/resources/controls/images/pause.gif"]]></Property> <Property name="OnClick"><![CDATA[%_pause%]]></Property> <Property name="ImageOffUrl"><![CDATA["/org/opensourcephysics/resources/controls/images/play.gif"]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.Button</Type> <Name><![CDATA[stepButton]]></Name> <Parent><![CDATA[executionPanel]]></Parent> <Property name="Tooltip"><![CDATA["Step"]]></Property> <Property name="ImageUrl"><![CDATA["/org/opensourcephysics/resources/controls/images/stepforward.gif"]]></Property> <Property name="OnClick"><![CDATA[%_step%]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.Button</Type> <Name><![CDATA[initButton]]></Name> <Parent><![CDATA[executionPanel]]></Parent> <Property name="Tooltip"><![CDATA["Initialize"]]></Property> <Property name="ImageUrl"><![CDATA["/org/opensourcephysics/resources/controls/images/reset1.gif"]]></Property> <Property name="OnClick"><![CDATA[%_initialize%]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.Button</Type> <Name><![CDATA[resetButton]]></Name> <Parent><![CDATA[executionPanel]]></Parent> <Property name="Tooltip"><![CDATA["Reset"]]></Property> <Property name="ImageUrl"><![CDATA["/org/opensourcephysics/resources/controls/images/reset.gif"]]></Property> <Property name="OnClick"><![CDATA[%_reset%]]></Property> </HtmlView.Element> <HtmlView.Element> <Type>Elements.Panel</Type> <Name><![CDATA[narrativePanel]]></Name> <Parent><![CDATA[singleDrawingPanel]]></Parent> <Property name="Html"><![CDATA[<h2>Test model of Dark Matter simulator</h2> <h3> Geoff Mathews, Foothill College</h3> <p>Dark Matter density (top plot)� - click and drag to adjust</p> ]]></Property> </HtmlView.Element> </Tree> </Content> </Osejs.HtmlView.Page> </Osejs.HtmlView> </Osejs>