<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitStabilizerInUnitCubeOnRight</code>( <var class="Arg">group</var>, <var class="Arg">x</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: A record containing</p>
<ul>
<li><p><code class="keyw">.stabilizer</code>: the stabilizer of <var class="Arg">x</var>.</p>
</li>
<li><p><code class="keyw">.orbit</code> set of vectors from <span class="SimpleMath">[0,1)^n</span> which represents the orbit.</p>
</li>
</ul>
<p>Let <var class="Arg">x</var> be a rational vector from <span class="SimpleMath">[0,1)^n</span> and <var class="Arg">group</var> a space group in standard form. The function then calculates the part of the orbit which lies inside the cube <span class="SimpleMath">[0,1)^n</span> and the stabilizer of <var class="Arg">x</var>. Observe that every element of the full orbit differs from a point in the returned orbit only by a pure translation.</p>
<p>Note that the restriction to points from <span class="SimpleMath">[0,1)^n</span> makes sense if orbits should be compared and the vector passed to <code class="code">OrbitStabilizerInUnitCubeOnRight</code> should be an element of the returned orbit (part).</p>
<p>If you are interested in other parts of the orbit, you can use <code class="func">VectorModOne</code> (<a href="chap2.html#X7C0552BA873515B9"><span class="RefLink">2.1-2</span></a>) for the base point and the functions <code class="func">ShiftedOrbitPart</code> (<a href="chap3.html#X8751429287034F4A"><span class="RefLink">3.1-9</span></a>), <code class="func">TranslationsToOneCubeAroundCenter</code> (<a href="chap3.html#X82656DE584E8DC5D"><span class="RefLink">3.1-10</span></a>) and <code class="func">TranslationsToBox</code> (<a href="chap3.html#X858C787E83A902AB"><span class="RefLink">3.1-11</span></a>) for the resulting orbit<br /> Suppose we want to calculate the part of the orbit of <code class="code">[4/3,5/3,7/3]</code> in the cube of sidelength <code class="code">1</code> around this point:</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitStabilizerInUnitCubeOnRightOnSets</code>( <var class="Arg">group</var>, <var class="Arg">set</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: A record containing</p>
<ul>
<li><p><code class="keyw">.stabilizer</code>: the stabilizer of <var class="Arg">set</var>.</p>
</li>
<li><p><code class="keyw">.orbit</code> set of sets of vectors from <span class="SimpleMath">[0,1)^n</span> which represents the orbit.</p>
</li>
</ul>
<p>Calculates orbit and stabilizer of a set of vectors. Just as <code class="func">OrbitStabilizerInUnitCubeOnRight</code> (<a href="chap3.html#X7BED233684B2F811"><span class="RefLink">3.1-1</span></a>), it needs input from <span class="SimpleMath">[0,1)^n</span>. The returned orbit part <code class="keyw">.orbit</code> is a set of sets such that every element of <code class="keyw">.orbit</code> has a non-trivial intersection with the cube <span class="SimpleMath">[0,1)^n</span>. In general, these sets will not lie inside <span class="SimpleMath">[0,1)^n</span> completely.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitPartInVertexSetsStandardSpaceGroup</code>( <var class="Arg">group</var>, <var class="Arg">vertexset</var>, <var class="Arg">allvertices</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: Set of subsets of <var class="Arg">allvertices</var>.</p>
<p>If <var class="Arg">allvertices</var> is a set of vectors and <var class="Arg">vertexset</var> is a subset thereof, then <code class="func">OrbitPartInVertexSetsStandardSpaceGroup</code> returns that part of the orbit of <var class="Arg">vertexset</var> which consists entirely of subsets of <var class="Arg">allvertices</var>. Note that,unlike the other <code class="code">OrbitStabilizer</code> algorithms, this does not require the input to lie in some particular part of the space.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitPartInFacesStandardSpaceGroup</code>( <var class="Arg">group</var>, <var class="Arg">vertexset</var>, <var class="Arg">faceset</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: Set of subsets of <var class="Arg">faceset</var>.</p>
<p>This calculates the orbit of a space group on sets restricted to a set of faces.<br /> If <var class="Arg">faceset</var> is a set of sets of vectors and <var class="Arg">vertexset</var> is an element of <var class="Arg">faceset</var>, then <code class="func">OrbitPartInFacesStandardSpaceGroup</code> returns that part of the orbit of <var class="Arg">vertexset</var> which consists entirely of elements of <var class="Arg">faceset</var>.<br /> Note that,unlike the other <code class="code">OrbitStabilizer</code> algorithms, this does not require the input to lie in some particular part of the space.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ OrbitPartAndRepresentativesInFacesStandardSpaceGroup</code>( <var class="Arg">group</var>, <var class="Arg">vertexset</var>, <var class="Arg">faceset</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: A set of face-matrix pairs .</p>
<p>This is a slight variation of <code class="func">OrbitPartInFacesStandardSpaceGroup</code> (<a href="chap3.html#X8022CD75819DE536"><span class="RefLink">3.1-4</span></a>) that also returns a representative for every orbit element.</p>
<p>Given a set <var class="Arg">set</var> of vectors and a space group <var class="Arg">group</var> in standard form, this method calculates the stabilizer of that set in the full crystallographic group.<br /></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SpaceGroup(3,12);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">v:=[ 0, 0,0 ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=StabilizerOnSetsStandardSpaceGroup(G,[v]);</span>
<matrix group with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">s2:=OrbitStabilizerInUnitCubeOnRight(G,v).stabilizer;</span>
<matrix group with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">s2=s;</span>
true
<p>Returns an element of the space group <span class="SimpleMath">S</span> which takes the set <var class="Arg">set</var> to the set <var class="Arg">imageset</var>. The group must be in standard form and act on the right.</p>
<h5>3.1-8 <span class="Heading">Getting other orbit parts</span></h5>
<p><strong class="pkg">HAPcryst</strong> does not calculate the full orbit but only the part of it having coefficients between <span class="SimpleMath">-1/2</span> and <span class="SimpleMath">1/2</span>. The other parts of the orbit can be calculated using the following functions.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TranslationsToOneCubeAroundCenter</code>( <var class="Arg">point</var>, <var class="Arg">center</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: List of integer vectors</p>
<p>This method returns the list of all integer vectors which translate <var class="Arg">point</var> into the box <var class="Arg">center</var><span class="SimpleMath">+[-1/2,1/2]^n</span></p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TranslationsToBox</code>( <var class="Arg">point</var>, <var class="Arg">box</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: An iterator of integer vectors or the empty iterator</p>
<p>Given a vector <span class="SimpleMath">v</span> and a list of pairs, this function returns the translation vectors (integer vectors) which take <span class="SimpleMath">v</span> into the box <var class="Arg">box</var>. The box <var class="Arg">box</var> has to be given as a list of pairs.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">TranslationsToBox([0,0],[[1/2,2/3],[1/2,2/3]]);</span>
[ ]
<span class="GAPprompt">gap></span> <span class="GAPinput">TranslationsToBox([0,0],[[-3/2,1/2],[1,4/3]]);</span>
[ [ -1, 1 ], [ 0, 1 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">TranslationsToBox([0,0],[[-3/2,1/2],[2,1]]);</span>
Error, Box must not be empty called from
...
</pre></div>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.