<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>CollyKing&#39;s Blog</title>
  
  <subtitle>Stay hungry, stay foolish</subtitle>
  <link href="https://collyking.top/atom.xml" rel="self"/>
  
  <link href="https://collyking.top/"/>
  <updated>2020-01-10T08:00:51.000Z</updated>
  <id>https://collyking.top/</id>
  
  <author>
    <name>collyking</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>「Pylith」Simple tutorial (III) Model simulation</title>
    <link href="https://collyking.top/2020/61483.html"/>
    <id>https://collyking.top/2020/61483.html</id>
    <published>2020-01-10T07:40:01.000Z</published>
    <updated>2020-01-10T08:00:51.000Z</updated>
    
    <content type="html"><![CDATA[<p><a href="/download/Pylith_example.zip" title="Pylith example">click here to download</a></p><p>After complete <a href="http://collyking.top/2020/25111.html">tutorial I</a> and <a href="http://collyking.top/2020/24164.html">tutorial II</a>, you can follow the README file to run the simulation.</p>]]></content>
    
    
    <summary type="html">This blog includes the package about pylith tutorial with brief introductions.</summary>
    
    
    
    <category term="Pylith" scheme="https://collyking.top/categories/Pylith/"/>
    
    
    <category term="Pylith" scheme="https://collyking.top/tags/Pylith/"/>
    
  </entry>
  
  <entry>
    <title>「Pylith」Simple tutorial (II) Model set up</title>
    <link href="https://collyking.top/2020/24164.html"/>
    <id>https://collyking.top/2020/24164.html</id>
    <published>2020-01-10T07:31:38.000Z</published>
    <updated>2020-01-10T07:58:23.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-Trelis-interface"><a href="#1-Trelis-interface" class="headerlink" title="1.Trelis interface"></a>1.Trelis interface</h2><p>The Trelis software interface is shown below.</p><p><img src="https://i.loli.net/2018/12/27/5c24e0c435e4c.png" alt="00"></p><p>Panels that are frequently used::</p><ol><li>Command Panel: For quick geometry creation, segmentation, combination and mesh division</li><li>Command Line: Complete the same function as command panel but by the way of the command lines.</li><li>Tool bar: The first five lines are create, open, save, import and export files. The middle part includes running the journal script file and adjusting the observation mode.</li><li>Model Tree: Each part of the model is displayed at the level of body-volume-surface-curve-vertex. And each element has a corresponding ID number for designation.<br>More details can be found in <a href="https://www.csimsoft.com/download?file=Documents/TrelisGettingStarted.pdf">Official Guide</a>. Note that each step of Trelis has a corresponding script command, which is convenient for saving and sharing.</li></ol><h2 id="2-Create-Geometry"><a href="#2-Create-Geometry" class="headerlink" title="2.Create Geometry"></a>2.Create Geometry</h2><h3 id="2-1-Create-a-volume"><a href="#2-1-Create-a-volume" class="headerlink" title="2.1. Create a volume"></a>2.1. Create a volume</h3><p>First create a 600km x 600km x 400km volume. Since the default origin is in the center of the new volume, we will move the volume down by 200km. Thus the upside surface represents the surface.<br>The following script can be copied and pasted directly to the command line.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Like shell script,Trelis uses &#x27;#&#x27; for comments# ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create block</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Block is 600 km x 600 km x 400 km</span></span><br><span class="line"><span class="comment"># -300 km &lt;= x &lt;= 300 km</span></span><br><span class="line"><span class="comment"># -300 km &lt;= y &lt;= 300 km</span></span><br><span class="line"><span class="comment"># -400 km &lt;= z &lt;= 0 km</span></span><br><span class="line">reset</span><br><span class="line">brick x <span class="number">600000</span> y <span class="number">600000</span> z <span class="number">400000</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Translate block so the top is at z=0</span></span><br><span class="line">volume <span class="number">1</span> move x <span class="number">0</span> y <span class="number">0</span> z -<span class="number">200000</span></span><br></pre></td></tr></table></figure><p>In addition to the above method, Trelis can also create a volume by:</p><blockquote><p>creating vertexes–&gt; creating surfaces by specified vertex–&gt;create a volume by specify surfaces<br>Although it is more cumbersome, an example also shows here for reference.</p></blockquote><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Set units to SI.</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">$&#123;Units(<span class="string">&#x27;si&#x27;</span>)&#125;</span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create vertex</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># A cuboid has 8 corner points</span></span><br><span class="line">reset</span><br><span class="line">create vertex  &#123; <span class="number">300</span>*km&#125;  &#123; <span class="number">300</span>*km&#125; &#123;   <span class="number">0</span>*km&#125;</span><br><span class="line">create vertex  &#123; <span class="number">300</span>*km&#125;  &#123;-<span class="number">300</span>*km&#125; &#123;   <span class="number">0</span>*km&#125;</span><br><span class="line">create vertex  &#123;-<span class="number">300</span>*km&#125;  &#123;-<span class="number">300</span>*km&#125; &#123;   <span class="number">0</span>*km&#125;</span><br><span class="line">create vertex  &#123;-<span class="number">300</span>*km&#125;  &#123; <span class="number">300</span>*km&#125; &#123;   <span class="number">0</span>*km&#125;</span><br><span class="line">create vertex  &#123; <span class="number">300</span>*km&#125;  &#123; <span class="number">300</span>*km&#125; &#123;-<span class="number">400</span>*km&#125;</span><br><span class="line">create vertex  &#123; <span class="number">300</span>*km&#125;  &#123;-<span class="number">300</span>*km&#125; &#123;-<span class="number">400</span>*km&#125;</span><br><span class="line">create vertex  &#123;-<span class="number">300</span>*km&#125;  &#123;-<span class="number">300</span>*km&#125; &#123;-<span class="number">400</span>*km&#125;</span><br><span class="line">create vertex  &#123;-<span class="number">300</span>*km&#125;  &#123; <span class="number">300</span>*km&#125; &#123;-<span class="number">400</span>*km&#125;</span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create curve</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># 8 corner points connected to 12 side lines </span></span><br><span class="line"><span class="comment"># top 4 lines</span></span><br><span class="line">create curve vertex <span class="number">1</span> <span class="number">2</span>  </span><br><span class="line">create curve vertex <span class="number">2</span> <span class="number">3</span>  </span><br><span class="line">create curve vertex <span class="number">3</span> <span class="number">4</span></span><br><span class="line">create curve vertex <span class="number">4</span> <span class="number">1</span> </span><br><span class="line"><span class="comment"># four bottom lines</span></span><br><span class="line">create curve vertex <span class="number">5</span> <span class="number">6</span>  </span><br><span class="line">create curve vertex <span class="number">6</span> <span class="number">7</span>  </span><br><span class="line">create curve vertex <span class="number">7</span> <span class="number">8</span></span><br><span class="line">create curve vertex <span class="number">8</span> <span class="number">5</span> </span><br><span class="line"><span class="comment"># four side lines (note that the id number of the element in the process of creating a new geometry may also change, so we can give names to important elements.)</span></span><br><span class="line">create curve vertex <span class="number">1</span> <span class="number">5</span> </span><br><span class="line">create curve vertex <span class="number">6</span> <span class="number">9</span> </span><br><span class="line">create curve vertex <span class="number">7</span> <span class="number">10</span> </span><br><span class="line">create curve vertex <span class="number">11</span> <span class="number">15</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create surface</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># 12 lines connected to 6 surfaces</span></span><br><span class="line"><span class="comment"># Top surface</span></span><br><span class="line">create surface curve <span class="number">1</span> <span class="number">2</span> <span class="number">3</span> <span class="number">4</span>  </span><br><span class="line"><span class="comment"># Bottom surface</span></span><br><span class="line">create surface curve <span class="number">5</span> <span class="number">6</span> <span class="number">7</span> <span class="number">8</span></span><br><span class="line"><span class="comment"># Side surfaces</span></span><br><span class="line">create surface curve <span class="number">1</span> <span class="number">5</span> <span class="number">9</span> <span class="number">10</span></span><br><span class="line">create surface curve <span class="number">2</span> <span class="number">6</span> <span class="number">10</span> <span class="number">11</span></span><br><span class="line">create surface curve <span class="number">3</span> <span class="number">7</span> <span class="number">11</span> <span class="number">12</span></span><br><span class="line">create surface curve <span class="number">4</span> <span class="number">8</span> <span class="number">9</span> <span class="number">12</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create volume</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create the volume </span></span><br><span class="line">create volume surface <span class="number">1</span> <span class="number">2</span> <span class="number">3</span> <span class="number">4</span> <span class="number">5</span> <span class="number">6</span></span><br></pre></td></tr></table></figure><div align=center><img src="https://i.loli.net/2019/07/13/5d29e05e1e5af88039.png" width="60%" height="60%"></div><p>The results of the above two ways are exactly the same. For more complicated examples, you can choose your own way according to the situation. Note that if you use the second method to establish the geometry, the id number of most elements will change for the left part of this manual. </p><h3 id="2-2-Split-the-cuboid-into-two-parts"><a href="#2-2-Split-the-cuboid-into-two-parts" class="headerlink" title="2.2. Split the cuboid into two parts"></a>2.2. Split the cuboid into two parts</h3><p>Here we create a plane to divide the cuboid into a upper part as the elastic layer and a lower part as the viscoelastic layer. And a fault plane will be created for simulation.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create interface surfaces</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">create vertex <span class="number">0</span> -<span class="number">300000</span> <span class="number">0</span></span><br><span class="line">create vertex <span class="number">0</span> <span class="number">300000</span> <span class="number">0</span></span><br><span class="line">create vertex -<span class="number">200000</span>  <span class="number">0</span> -<span class="number">400000</span></span><br><span class="line">create planar surface <span class="keyword">with</span> plane vertex <span class="number">9</span> <span class="number">10</span> <span class="number">11</span>   </span><br><span class="line">surface <span class="number">7</span> name <span class="string">&quot;fault_surface&quot;</span></span><br><span class="line">delete vertex <span class="number">9</span> <span class="number">10</span> <span class="number">11</span></span><br><span class="line">create planar surface <span class="keyword">with</span> plane zplane offset -<span class="number">20000</span></span><br><span class="line">surface <span class="number">8</span> name <span class="string">&quot;material_interface&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Divide volumes using interface surfaces</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"></span><br><span class="line">webcut volume <span class="number">1</span> <span class="keyword">with</span> plane surface fault_surface</span><br><span class="line">webcut volume <span class="number">1</span> <span class="keyword">with</span> plane surface material_interface</span><br><span class="line">webcut volume <span class="number">4</span> <span class="keyword">with</span> plane surface material_interface</span><br><span class="line">volume <span class="number">1</span> name <span class="string">&quot;elastic_xpos&quot;</span></span><br><span class="line">volume <span class="number">4</span> name <span class="string">&quot;elastic_xneg&quot;</span></span><br><span class="line">volume <span class="number">5</span> name <span class="string">&quot;visco_xpos&quot;</span></span><br><span class="line">volume <span class="number">6</span> name <span class="string">&quot;visco_xneg&quot;</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># create fault_plane</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">create planar surface <span class="keyword">with</span> plane yplane offset -<span class="number">20000</span> </span><br><span class="line">create planar surface <span class="keyword">with</span> plane yplane offset <span class="number">20000</span> </span><br><span class="line">split surface <span class="number">22</span> <span class="keyword">with</span> surface <span class="number">39</span></span><br><span class="line">split surface <span class="number">42</span> <span class="keyword">with</span> surface <span class="number">40</span></span><br><span class="line">surface <span class="number">43</span> name <span class="string">&quot;fault_plane&quot;</span></span><br><span class="line">delete body <span class="number">2</span> <span class="number">3</span> <span class="number">7</span> <span class="number">8</span></span><br></pre></td></tr></table></figure><div align=center><img src="https://i.loli.net/2019/07/13/5d29e05e372ac60989.png" width="60%" height="60%"></div><p>A more detailed segmentation process can be found in the <a href="https://www.youtube.com/watch?v=_5N7iZOoYtw">official tutorial</a> . (A proper vpn tool is required)</p><h3 id="2-3-imprint-amp-merge"><a href="#2-3-imprint-amp-merge" class="headerlink" title="2.3. imprint &amp; merge"></a>2.3. imprint &amp; merge</h3><p>After creating the split the volume, the points and lines of each sub volumes are probably not the same, so they need to be merged, which takes a certain amount of time under complex geometry.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Imprint all volumes, merging surfaces</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">imprint <span class="built_in">all</span> <span class="keyword">with</span> volume <span class="built_in">all</span></span><br><span class="line">merge <span class="built_in">all</span></span><br></pre></td></tr></table></figure><h2 id="3-Meshing"><a href="#3-Meshing" class="headerlink" title="3.Meshing"></a>3.Meshing</h2><p>We need to specify the size of each curve, surface or volume before meshing them. And the <code>map</code> meshing scheme is set by default. You can use the command panal or type <code>help volume scheme</code> in the command line to view all the possible meshing schemes. The tetmesh scheme is applied in this example.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">volume <span class="built_in">all</span> scheme tetmesh </span><br><span class="line">curve <span class="built_in">all</span> scheme default</span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Set discretization size</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">surface <span class="number">43</span> size <span class="number">1000</span></span><br><span class="line">volume <span class="built_in">all</span> size <span class="number">100000</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Generate the mesh</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">volume <span class="built_in">all</span> scheme tetmesh proximity layers off geometric sizing on</span><br><span class="line">mesh volume <span class="built_in">all</span></span><br></pre></td></tr></table></figure><div align=center><img src="https://i.loli.net/2019/07/13/5d29e05e528a974620.png" width="60%" height="60%"></div><p>Now the mesh part has completed, and we recommend you to do mesh QA. You can use the command panal or type</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">quality volume <span class="built_in">all</span> shape <span class="keyword">global</span> draw mesh</span><br></pre></td></tr></table></figure><p>in the command line to do mesh QA.Generally the minimum value should be greater than 0.2 for a reliable Pylith calculation.</p><p>The mesh quality of this example is as follows</p><div align=center><img src="https://i.loli.net/2019/07/13/5d29e05e65e8c71640.png" width="60%" height="60%"></div><h2 id="4-Declare-each-block-and-the-boundary-surfaces"><a href="#4-Declare-each-block-and-the-boundary-surfaces" class="headerlink" title="4.Declare each block and the boundary surfaces"></a>4.Declare each block and the boundary surfaces</h2><p>Then we need to declare each block and the bounding surfaces for calculations and determining the boundary conditions of Pylith.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create blocks for materials</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">block <span class="number">1</span> volume <span class="number">1</span> <span class="number">4</span></span><br><span class="line">block <span class="number">1</span> name <span class="string">&quot;elastic&quot;</span></span><br><span class="line">block <span class="number">2</span> volume <span class="number">5</span> <span class="number">6</span></span><br><span class="line">block <span class="number">2</span> name <span class="string">&quot;viscoelastic&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for fault</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;fault&quot;</span> add node <span class="keyword">in</span> fault_plane</span><br><span class="line">nodeset <span class="number">10</span> group fault</span><br><span class="line">nodeset <span class="number">10</span> name <span class="string">&quot;fault&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create sideset for faces in fault</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;fault_faces&quot;</span> add face <span class="keyword">in</span> fault_plane</span><br><span class="line">sideset <span class="number">10</span> group fault_faces</span><br><span class="line">sideset <span class="number">10</span> name <span class="string">&quot;fault_faces&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for -x face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_xpos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">20</span></span><br><span class="line">group <span class="string">&quot;face_xpos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">28</span></span><br><span class="line">nodeset <span class="number">11</span> group face_xpos</span><br><span class="line">nodeset <span class="number">11</span> name <span class="string">&quot;face_xpos&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for +x face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_xneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">30</span></span><br><span class="line">group <span class="string">&quot;face_xneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">38</span></span><br><span class="line">nodeset <span class="number">12</span> group face_xneg</span><br><span class="line">nodeset <span class="number">12</span> name <span class="string">&quot;face_xneg&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for +y face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_ypos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">21</span></span><br><span class="line">group <span class="string">&quot;face_ypos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">27</span></span><br><span class="line">group <span class="string">&quot;face_ypos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">33</span></span><br><span class="line">group <span class="string">&quot;face_ypos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">35</span></span><br><span class="line">nodeset <span class="number">13</span> group face_ypos</span><br><span class="line">nodeset <span class="number">13</span> name <span class="string">&quot;face_ypos&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for -y face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_yneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">23</span></span><br><span class="line">group <span class="string">&quot;face_yneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">25</span></span><br><span class="line">group <span class="string">&quot;face_yneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">31</span></span><br><span class="line">group <span class="string">&quot;face_yneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">37</span></span><br><span class="line">nodeset <span class="number">14</span> group face_yneg</span><br><span class="line">nodeset <span class="number">14</span> name <span class="string">&quot;face_yneg&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for -z face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_zneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">12</span></span><br><span class="line">group <span class="string">&quot;face_zneg&quot;</span> add node <span class="keyword">in</span> surface <span class="number">16</span></span><br><span class="line">nodeset <span class="number">15</span> group face_zneg</span><br><span class="line">nodeset <span class="number">15</span> name <span class="string">&quot;face_zneg&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for -z face w/o fault</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_zneg_nofault&quot;</span> add node <span class="keyword">in</span> face_zneg</span><br><span class="line">group <span class="string">&quot;face_zneg_nofault&quot;</span> remove node <span class="keyword">in</span> fault</span><br><span class="line">nodeset <span class="number">16</span> group face_zneg_nofault</span><br><span class="line">nodeset <span class="number">16</span> name <span class="string">&quot;face_zneg_nofault&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Create nodeset for +z face</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">group <span class="string">&quot;face_zpos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">10</span></span><br><span class="line">group <span class="string">&quot;face_zpos&quot;</span> add node <span class="keyword">in</span> surface <span class="number">17</span></span><br><span class="line">nodeset <span class="number">17</span> group face_zpos</span><br><span class="line">nodeset <span class="number">17</span> name <span class="string">&quot;face_zpos&quot;</span></span><br></pre></td></tr></table></figure><h2 id="5-Export-the-mesh-file"><a href="#5-Export-the-mesh-file" class="headerlink" title="5. Export the mesh file"></a>5. Export the mesh file</h2><p>At this point, we only need to exported the mesh file in exo format.</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line"><span class="comment"># Export exodus file</span></span><br><span class="line"><span class="comment"># ----------------------------------------------------------------------</span></span><br><span class="line">export mesh <span class="string">&quot;mesh_1km.exo&quot;</span> dimension <span class="number">3</span> overwrite</span><br></pre></td></tr></table></figure><p>From the output of the Command Line you can see how many elements and nodes you have in the generated mesh file. Generally speaking, the more nodes, the longer the calculation time.</p><div align=center><img src="https://i.loli.net/2019/07/13/5d29e05e51fae26755.png" width="70%" height="70%"></div><hr><p>Reference<br>[1] Aagaard, B.T., Kientz, S., Knepley, M.G., Strand, L., Williams, C., 2017. PyLith User Manual: version 2.2.1. Davis: California: Computational Infrastructure of Geodynamics<br>[2] <a href="https://www.csimsoft.com/tutorialsTrelis#step">Tutorial of Trelis</a></p>]]></content>
    
    
    <summary type="html">Pylith is a command-line software for finite element model calculation, but it does not include the creation of the mesh model. It needs other softwares such as Lagrit, Trelis/Cubit, etc to create compatible mesh files. This manual will tell you how to build a simple mesh model using Trelis in the basic of Pylith example/3d/Tet4.</summary>
    
    
    
    <category term="Pylith" scheme="https://collyking.top/categories/Pylith/"/>
    
    
    <category term="Pylith" scheme="https://collyking.top/tags/Pylith/"/>
    
  </entry>
  
  <entry>
    <title>「Pylith」Simple tutorial (I) Installing softwares</title>
    <link href="https://collyking.top/2020/25111.html"/>
    <id>https://collyking.top/2020/25111.html</id>
    <published>2020-01-10T07:30:16.000Z</published>
    <updated>2020-01-11T09:01:54.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-Model-setup-Trelis"><a href="#1-Model-setup-Trelis" class="headerlink" title="1 Model setup: Trelis"></a>1 Model setup: Trelis</h2><h3 id="1-1-Download"><a href="#1-1-Download" class="headerlink" title="1.1 Download"></a>1.1 Download</h3><p><a href="https://www.csimsoft.com/downloads">Click here to the download page</a><br>You can request a free trial on the official website for three months after the registration.</p><h3 id="1-2-Installation"><a href="#1-2-Installation" class="headerlink" title="1.2 Installation"></a>1.2 Installation</h3><ul><li>For MacOS:<br>Just double click the package and complete the installation</li><li>For Linux  <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/Software/</span><br><span class="line">sudo dpkg -i Trelis-16.5.0-Lin64.deb </span><br></pre></td></tr></table></figure>  Use the code you get from the trial request during Trelis Activation. </li></ul><h2 id="2-Calculation-Pylith"><a href="#2-Calculation-Pylith" class="headerlink" title="2 Calculation: Pylith"></a>2 Calculation: Pylith</h2><h3 id="2-1-Download"><a href="#2-1-Download" class="headerlink" title="2.1 Download"></a>2.1 Download</h3><ul><li>For MacOS:<br><a href="https://geodynamics.org/cig/software/pylith/git/v2.2.2/pylith-2.2.2-darwin-10.13.6.tgz">https://geodynamics.org/cig/software/pylith/git/v2.2.2/pylith-2.2.2-darwin-10.13.6.tgz</a></li><li>For linux:<br><a href="https://geodynamics.org/cig/software/pylith/git/v2.2.2/pylith-2.2.2-linux-x86_64.tgz">https://geodynamics.org/cig/software/pylith/git/v2.2.2/pylith-2.2.2-linux-x86_64.tgz</a></li></ul><h3 id="2-2-Configuation"><a href="#2-2-Configuation" class="headerlink" title="2.2 Configuation"></a>2.2 Configuation</h3><ol><li>Unzip the file to where you want, for example <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">tar  zxvf  pylith-2.2.1-linux-x86_64.tgz  -C ~/Software/ </span><br><span class="line"><span class="comment"># for macos it&#x27;s pylith-2.2.2-darwin-10.13.6.tgz</span></span><br></pre></td></tr></table></figure></li><li>Configuation <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ~/Software/pylith-2.2.1-linux-x86_64</span><br><span class="line"><span class="comment"># for macos it&#x27;s cd ~/Software/pylith-2.2.2-darwin-10.13.6]</span></span><br><span class="line"><span class="built_in">source</span> setup.sh</span><br></pre></td></tr></table></figure> If the output showes up as <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Ready to run Pylith</span><br></pre></td></tr></table></figure> Then the pylith congiguation has completed. And everytime before running pylith you need run <code>source setup.sh</code> under corresponding direcotory. If you want to take it a easier way. You can add the following script into your <code>~/.bashrc</code> <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># for pylith</span></span><br><span class="line">  <span class="built_in">alias</span> setpylith=<span class="string">&#x27;tp=`pwd`; cd ~/Software/pylith-2.2.1-linux-x86_64 ; source setup.sh; cd $tp&#x27;</span></span><br></pre></td></tr></table></figure> Thus you just need to type <code>setpylith</code> for every new terminal window.</li></ol><h2 id="3-Visualization-Paraview"><a href="#3-Visualization-Paraview" class="headerlink" title="3 Visualization: Paraview"></a>3 Visualization: Paraview</h2><ul><li>For MacOS:  <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">brew cask install paraview</span><br></pre></td></tr></table></figure></li><li>For Linux:  <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install paraview</span><br></pre></td></tr></table></figure></li></ul>]]></content>
    
    
    <summary type="html">This blog will introduce you how to install sofrwares relative to Pylith.</summary>
    
    
    
    <category term="Pylith" scheme="https://collyking.top/categories/Pylith/"/>
    
    
    <category term="Pylith" scheme="https://collyking.top/tags/Pylith/"/>
    
  </entry>
  
  <entry>
    <title>「matlab」一行命令输出超清矢量图</title>
    <link href="https://collyking.top/2019/10658.html"/>
    <id>https://collyking.top/2019/10658.html</id>
    <published>2019-02-13T14:27:07.000Z</published>
    <updated>2019-02-13T14:34:20.000Z</updated>
    
    <content type="html"><![CDATA[<p>Matlab作图的锯齿感是常常被人所诟病的事实.但其实它是可以输出矢量图的,即eps格式,可以通过另存为-选择eps格式完成.<br>但当你这么做时,往往得到的图片经过放大发现还是会看到一堆的像素点:</p><p><img src="https://i.loli.net/2019/02/13/5c64289a07afb.png" alt="low_eps"></p><p>这是因为没有对图片进行栅格化,只需执行</p><figure class="highlight m"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">set(gcf,<span class="string">&#x27;renderer&#x27;</span>,<span class="string">&#x27;painters&#x27;</span>)</span><br></pre></td></tr></table></figure><p>栅格化后再进行保存,输出为eps格式,便能得到无限放大不失真的矢量图了.</p><p><img src="https://i.loli.net/2019/02/13/5c6428c23b140.png" alt="high_eps"></p><hr><p>另外,若只是想生成高分辨率的png图片,可以执行</p><figure class="highlight m"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">print -dpng FILENAME -r400</span><br></pre></td></tr></table></figure><p>其中-r400是可指定的ppi值,越高则越清晰,生成的图片文件越大.</p><p><a href="https://stackoverflow.com/questions/8280971/matlab-and-high-quality-eps-figures">参考链接</a></p>]]></content>
    
    
    <summary type="html">解决matlab成图锯齿感,输出无损矢量图</summary>
    
    
    
    <category term="matlab" scheme="https://collyking.top/categories/matlab/"/>
    
    
    <category term="matlab" scheme="https://collyking.top/tags/matlab/"/>
    
  </entry>
  
  <entry>
    <title>「GMT」How to plot fault geometry with coseismic displacement by GMT</title>
    <link href="https://collyking.top/2019/54652.html"/>
    <id>https://collyking.top/2019/54652.html</id>
    <published>2019-02-12T12:59:29.000Z</published>
    <updated>2020-01-18T09:39:51.000Z</updated>
    
    <content type="html"><![CDATA[<p><a href="/download/Plot_fault_slip.zip" title="GMT example">Click here to download example files</a></p><h2 id="Mainly-commands"><a href="#Mainly-commands" class="headerlink" title="Mainly commands:"></a>Mainly commands:</h2><ul><li><code>psxy</code>    - to plot fault geometry with fault slip</li><li><code>pscoast</code> - to plot basemap</li><li><code>psvelo</code>  - to plot GPS velocity</li></ul><h2 id="Material-needed："><a href="#Material-needed：" class="headerlink" title="Material needed："></a>Material needed：</h2><ol><li>Fault_geo1.dat: Fault geometry 1 with coseismic slip</li><li>Fault_geo2.dat: Fault geometry 2 with coseismic slip</li><li>GPS_coseis.dat: GPS data corresponding to the coseismic slip.</li><li>Plot_fault.ksh: Plotting script.</li></ol><h2 id="Material-Format"><a href="#Material-Format" class="headerlink" title="Material Format"></a>Material Format</h2><p>The format for Fault_geo*.dat is</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">-Z <span class="variable">$&#123;slip magnitute&#125;</span></span><br><span class="line"><span class="variable">$&#123;lon1&#125;</span> <span class="variable">$&#123;lat1&#125;</span></span><br><span class="line"><span class="variable">$&#123;lon2&#125;</span> <span class="variable">$&#123;lat2&#125;</span></span><br><span class="line"><span class="variable">$&#123;lon3&#125;</span> <span class="variable">$&#123;lat3&#125;</span></span><br><span class="line"><span class="variable">$&#123;lon4&#125;</span> <span class="variable">$&#123;lat4&#125;</span></span><br><span class="line">...</span><br></pre></td></tr></table></figure><p>The format for GPS_coseis.dat is</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$&#123;lon&#125;</span>  <span class="variable">$&#123;lat&#125;</span> <span class="variable">$&#123;east_component&#125;</span> <span class="variable">$&#123;north_component&#125;</span> <span class="variable">$&#123;east_significant&#125;</span> <span class="variable">$&#123;noth_significant&#125;</span> </span><br></pre></td></tr></table></figure><h2 id="Plotting-script"><a href="#Plotting-script" class="headerlink" title="Plotting script"></a>Plotting script</h2><p>Next we’ll mainly focus on our plotting script.</p><h3 id="1-Give-name-to-some-initial-parameters"><a href="#1-Give-name-to-some-initial-parameters" class="headerlink" title="1. Give name to some initial parameters"></a>1. Give name to some initial parameters</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">ps=plot.ps</span><br><span class="line">fault_geo1=fault_geo1.dat</span><br><span class="line">fault_geo2=fault_geo2.dat</span><br><span class="line">gps_name=GPS_coseis.dat</span><br><span class="line">cpt=fault_slip.cpt</span><br><span class="line">R=-157/-144/55/62</span><br><span class="line">J=M5i</span><br></pre></td></tr></table></figure><h3 id="2-Plot-basic-picture"><a href="#2-Plot-basic-picture" class="headerlink" title="2. Plot basic picture"></a>2. Plot basic picture</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gmt makecpt -Chot.cpt -G0.4/1 -Ic -T0/22 &gt; <span class="variable">$cpt</span></span><br><span class="line">gmt pscoast -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Bx4 -By2 -Da -G229/195/148 -S156/233/253 -K -P &gt; <span class="variable">$ps</span></span><br></pre></td></tr></table></figure><p>Using makecpt to define the colormap: Choose <code>hot</code> colormaphen, cut the range to 0.4<del>1 with <code>-G</code>, invert colormap with <code>-Ic</code>, choose 0</del>22m’s slip range with <code>-G</code>, finally output to <code>$cpt</code>.(see <a href="https://docs.gmt-china.org/latest/cpt/generate-cpt/">makecpt</a>)<br>Using pscoast to plot the land and ocean with different color.(see <a href="http://gmt.soest.hawaii.edu/doc/5.3.2/pscoast.html">pscoast</a>)</p><h3 id="3-Plot-fault-geometry"><a href="#3-Plot-fault-geometry" class="headerlink" title="3. Plot fault geometry"></a>3. Plot fault geometry</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">gmt psxy <span class="variable">$fault_geo1</span> -R<span class="variable">$R</span> -J<span class="variable">$J</span>  -W0.1p -L -C<span class="variable">$cpt</span> -O -K &gt;&gt; <span class="variable">$ps</span></span><br><span class="line">gmt psxy <span class="variable">$fault_geo2</span> -R<span class="variable">$R</span> -J<span class="variable">$J</span>  -W0.1p -L -C<span class="variable">$cpt</span> -O -K &gt;&gt; <span class="variable">$ps</span></span><br><span class="line">gmt psscale -D3.5i/0.5i+w2.5i/0.25i+h+jCT+m -C<span class="variable">$cpt</span> \</span><br><span class="line">        -Bx5+l<span class="string">&quot;Coseismic slip (m)&quot;</span> -O -K -P &gt;&gt; <span class="variable">$ps</span></span><br><span class="line">gmt pscoast -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Bx4 -By2 -Da -W229/195/148 -O -K -P &gt;&gt; <span class="variable">$ps</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>Here we use psxy to plot the fault geometry, giving different color to fault patches according to slip maganitude and assigned colormap.(see <a href="http://gmt.soest.hawaii.edu/doc/5.3.2/psxy.html">psxy</a>)<br>And we plot the coast line again to avoid everything being covered by fault geometry.</p><h3 id="4-Plot-GPS-vectors"><a href="#4-Plot-GPS-vectors" class="headerlink" title="4. Plot GPS vectors"></a>4. Plot GPS vectors</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">    awk <span class="string">&#x27;&#123;print $1,$2,$3,$4,$5,$6,0.0&#125;&#x27;</span> <span class="variable">$&#123;gps_name&#125;</span> |\</span><br><span class="line">    gmt psvelo    -R<span class="variable">$&#123;R&#125;</span>  -W0.25p,black  -Gblack  -L  -Se0.3c/0.95/25  -J<span class="variable">$&#123;J&#125;</span> -A0.3c+p1.5p+e -P -V -O -K &gt;&gt; <span class="variable">$ps</span></span><br><span class="line"></span><br><span class="line">    gmt psvelo &lt;&lt;<span class="string">END  -h2  -R$&#123;R&#125;  -W0.25p,black  -Gblack  -L  -Se0.3c/0.95/12 -J$&#123;J&#125; -A0.3c+p1.5p+e -P -V -O  &gt;&gt; $ps</span></span><br><span class="line"><span class="string">         Long.   Lat.   Evel   Nvel   Esig   Nsig  CorEN SITE</span></span><br><span class="line"><span class="string">          (deg)  (deg)    (m)        (m)</span></span><br><span class="line"><span class="string">      -155.5      61.5     2.0    0      0     0     0     2m</span></span><br><span class="line"><span class="string">END</span></span><br></pre></td></tr></table></figure><p>We use psvelo to plot GPS displacement with the first two lines.(see <a href="http://gmt.soest.hawaii.edu/doc/5.3.2/supplements/meca/psvelo.html">psvelo</a>)<br>The left 5 lines are used to plot displacement’s legend.</p><h3 id="5-Convert-to-png"><a href="#5-Convert-to-png" class="headerlink" title="5. Convert to png"></a>5. Convert to png</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gmt psconvert <span class="variable">$ps</span> -A -Tg</span><br><span class="line">rm <span class="variable">$ps</span> gmt.* <span class="variable">$cpt</span></span><br></pre></td></tr></table></figure><p>Finally, we can convert the <code>.ps</code> file to <code>.png</code> file for better Visualization and remove files we don’t need anymore.</p><p>The output picture should looks like this.</p><div align=center><img src="https://i.loli.net/2019/02/12/5c62bfb36da24.png" width="70%" height="70%"></div>And this is just a simple example for a quick start, you can change and add whatever you like once you get used to the GMT software. Good luck!]]></content>
    
    
    <summary type="html">The very important thing about our researches are fault slip and GPS data. This webpage is aiming at showing how to plot these two things by GMT.</summary>
    
    
    
    <category term="GMT" scheme="https://collyking.top/categories/GMT/"/>
    
    
    <category term="GMT" scheme="https://collyking.top/tags/GMT/"/>
    
  </entry>
  
  <entry>
    <title>「Pylith」常见报错及解决方案(不定期更新)</title>
    <link href="https://collyking.top/2018/31891.html"/>
    <id>https://collyking.top/2018/31891.html</id>
    <published>2018-07-09T04:43:58.000Z</published>
    <updated>2018-08-04T13:35:15.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="Linear-solve-did-not-converge-due-to-DIVERGED-ITS-iterations-100"><a href="#Linear-solve-did-not-converge-due-to-DIVERGED-ITS-iterations-100" class="headerlink" title="Linear solve did not converge due to DIVERGED_ITS iterations 100"></a>Linear solve did not converge due to DIVERGED_ITS iterations 100</h2><p>这通常是由于网格间距过小,程序在调用PETSC计算时,无法在指定次数内迭代收敛到给定的收敛阈值,可以</p><ol><li>在建立网格文件时,扩大网格间距(mesh size),直至迭代计算能顺利完成.</li><li>调大迭代次数: 在<code>pylithapp.cfg</code>中找到<code>Convergence paameters</code>对应模块,调整<code>ksp_max_it</code>的数值(但不宜超过500,否则即使顺利完成计算,结果仍十分不稳定)</li><li>调整收敛阈值(不建议): 同调大迭代次数类似,调整对应部分的<code>ksp_rtol</code>与<code>ksp_atol</code>即可.</li></ol><h2 id="Could-not-find-final-slip-at-using-spatial-database-Final-slip"><a href="#Could-not-find-final-slip-at-using-spatial-database-Final-slip" class="headerlink" title="Could not find final slip at (* * *) using spatial database Final slip"></a>Could not find final slip at (* * *) using spatial database Final slip</h2><p>这是由于修改后的断层滑移分布与指定断层的<code>linear slip function</code>不匹配,给定的滑移量在同一材料范围内无法满足线性关系,一般可以</p><ol><li>修改断层滑移分布至满足线性分布,示例文件中一般放在<code>spatialdb/finalslip.spatialdb</code>类似的文件中</li><li>不采用<code>linear slip function</code>,而使用默认的滑移分布求解方案,直接将对应<code>*.cfg</code>文件中指定<code>slip.query_type</code>的一行注释掉即可.</li></ol><h2 id="Mesh-missing-group-of-vertices-‘-’-for-subdomain-output"><a href="#Mesh-missing-group-of-vertices-‘-’-for-subdomain-output" class="headerlink" title="Mesh missing group of vertices ‘***’ for subdomain output"></a>Mesh missing group of vertices ‘***’ for subdomain output</h2><p>在修改范例的geometry文档时,对应边界条件surface的ID号可能也会改变,需要在<code>mesh_***.jou</code>或<code>create_bc.jou</code>中,找到add group对应行,重新指定边界surface的ID号.<br>当然更好的办法是直接在创建surface的时候给其起好名字(如<code>name &#39;surface_example&#39;</code>),这样之后创建边界条件时,就可以指定其名字而非之后会变动的ID号了</p><h2 id="Material-id-‘-‘-for-cell-‘-‘-does-not-match-the-id-of-any-available-materials-or-interfaces"><a href="#Material-id-‘-‘-for-cell-‘-‘-does-not-match-the-id-of-any-available-materials-or-interfaces" class="headerlink" title="Material id ‘*‘ for cell ‘*‘ does not match the id of any available materials or interfaces"></a>Material id ‘*‘ for cell ‘*‘ does not match the id of any available materials or interfaces</h2><p>这是由于读取的网格文件对应材料的<code>block ID</code>与<code>*.cfg</code>中确定问题时的<code>material ID</code>不匹配造成的,调整为相吻合的ID号即可</p><h2 id="Surface-has-no-facet"><a href="#Surface-has-no-facet" class="headerlink" title="Surface *** has no facet"></a>Surface *** has no facet</h2><p>具体原因仍不明白,但个人摸索的办法是建立geometry时,对应surface的控制点坐标要尽量是整数,如50km,100km等,如果有找到好办法的欢迎评论告诉我.</p>]]></content>
    
    
    <summary type="html">在学习Pylith的过程中遇到了很多问题,在此记录备忘一些常见的错误和解决方案,供自己及他人来日参考,欢迎补充</summary>
    
    
    
    <category term="Pylith" scheme="https://collyking.top/categories/Pylith/"/>
    
    
    <category term="Pylith" scheme="https://collyking.top/tags/Pylith/"/>
    
  </entry>
  
  <entry>
    <title>「hardware」给暗影精灵2pro更换4k屏幕</title>
    <link href="https://collyking.top/2018/13809.html"/>
    <id>https://collyking.top/2018/13809.html</id>
    <published>2018-06-17T14:55:15.000Z</published>
    <updated>2018-12-27T15:09:25.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="一-准备工具"><a href="#一-准备工具" class="headerlink" title="一.准备工具"></a>一.准备工具</h1><ul><li>适用于暗影精灵的4k屏线(~RMB120,可淘宝定制屏线)</li><li>兼容性较好的4k分辨率15.6寸屏幕–本文所用型号为京东方BOE06D7(~RMB350)</li><li>十字螺丝刀,镊子,翘片或信用卡</li></ul><h1 id="二-换屏流程"><a href="#二-换屏流程" class="headerlink" title="二.换屏流程"></a>二.换屏流程</h1><h2 id="1-拆下机身底面"><a href="#1-拆下机身底面" class="headerlink" title="1 拆下机身底面"></a>1 拆下机身底面</h2><ul><li>首先卸下底面所有螺丝<br>  <img src="https://i.loli.net/2018/12/27/5c24e8163f95b.jpg" alt="卸底螺丝"></li><li>回到机身C面,使用卡片或薄片四周环边翘开卡扣<br>  <img src="https://i.loli.net/2018/12/27/5c24ea51ed756.jpg" alt="翘卡扣"></li><li>回到机身D面,从开合笔记本一侧抬起背板,便能卸下<br>  <img src="https://i.loli.net/2018/12/27/5c24ea5a37739.jpg" alt="卸底面"></li></ul><h2 id="2-断开相关接口"><a href="#2-断开相关接口" class="headerlink" title="2 断开相关接口"></a>2 断开相关接口</h2><ul><li>断开电源线,以免拆机过程出现短路<br>  <img src="https://i.loli.net/2018/12/27/5c24ea5ff3640.jpg" alt="4"></li><li>断开屏线:先向上撬开卡扣再抽出屏线<br>  <img src="https://i.loli.net/2018/12/27/5c24ea6542bef.jpg" alt="5"></li><li>断开无线网卡天线,由于屏幕这边连着天线,故需要一并拆下,可使用小镊子拆下两个金属头<br>  <img src="https://i.loli.net/2018/12/27/5c24ea694081b.jpg" alt="6"></li></ul><h2 id="3-拆下屏幕框"><a href="#3-拆下屏幕框" class="headerlink" title="3 拆下屏幕框"></a>3 拆下屏幕框</h2><ul><li>由于暗影精灵系屏幕与框之间有双面胶固定,需要使用金属薄片或卡片从内侧探入,刮开双面胶(勿探入过深一面伤及屏线和原装屏四周的绝缘胶布).<br>  <img src="https://i.loli.net/2018/12/27/5c24ea6d45cf7.jpg" alt="刮胶"></li><li>刮开后用手探入掰开框四边的卡扣,可轻度使劲反复多次<br>  <img src="https://i.loli.net/2018/12/27/5c24ea714184c.jpg" alt="拆框"></li><li>拆下后见下图<br>  <img src="https://i.loli.net/2018/12/27/5c24ea7515b0b.jpg" alt="9"></li></ul><h2 id="4-卸下屏线"><a href="#4-卸下屏线" class="headerlink" title="4 卸下屏线"></a>4 卸下屏线</h2><ul><li>卸下图中固定屏幕四角的螺丝,沿轴翻到另一侧,以方便继续卸屏线<br>  <img src="https://i.loli.net/2018/12/27/5c24ea78b4f8f.jpg" alt="10"></li><li>卸下连接摄像头的线头<br>  <img src="https://i.loli.net/2018/12/27/5c24ea7c371d9.jpg"></li><li>卸下固定屏线的金属框<br>  <img src="https://i.loli.net/2018/12/27/5c24ea7fe4e8f.jpg"></li><li>至此便能完全连带原屏线取下原屏幕</li></ul><h2 id="5-换新"><a href="#5-换新" class="headerlink" title="5 换新"></a>5 换新</h2><ul><li>取出新屏线和新屏幕,依次倒序执行步骤4和2<br>  <img src="https://i.loli.net/2018/12/27/5c24ea838931c.jpg"></li></ul><h2 id="6-测试"><a href="#6-测试" class="headerlink" title="6 测试"></a>6 测试</h2><ul><li>完成后,别急着直接装回去,开机看看能否亮机<br>  <img src="https://i.loli.net/2018/12/27/5c24ea878bc5c.jpg"></li><li>若无法亮机,检查所有的接口特别是屏线接口是否插好.</li></ul><h1 id="三-完成"><a href="#三-完成" class="headerlink" title="三.完成"></a>三.完成</h1><p>至此大功告成,可以好好使用你的新屏幕了!本人在黑苹果下开启hidpi,分辨率调为1920*1080,分辨率甚是丝滑哈哈<br>    <img src="https://i.loli.net/2018/12/27/5c24ea8c8d41c.jpg" alt="15"></p><h1 id="说明"><a href="#说明" class="headerlink" title="说明"></a>说明</h1><ul><li>若只是想更换成更高色域的1080p屏幕,则完全不需要更换屏线,在步骤2中只需断开电源线,步骤4中卸下固定屏幕四角的螺丝并断开屏线接口,替换屏幕即可.</li><li>对于其他型号的笔记本更换屏幕,也可作为一定的参考,祝换屏成功!</li></ul>]]></content>
    
    
    <summary type="html">本文将介绍如何给暗影精灵2pro更换4k屏幕,应该适用于暗影精灵3及以前的所有模具</summary>
    
    
    
    <category term="hardware" scheme="https://collyking.top/categories/hardware/"/>
    
    
    <category term="hardware" scheme="https://collyking.top/tags/hardware/"/>
    
  </entry>
  
  <entry>
    <title>「GMT」利用GMT绘制全球热流值分布</title>
    <link href="https://collyking.top/2018/39230.html"/>
    <id>https://collyking.top/2018/39230.html</id>
    <published>2018-06-17T13:28:51.000Z</published>
    <updated>2019-02-13T15:17:26.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="模型基本信息"><a href="#模型基本信息" class="headerlink" title="模型基本信息"></a>模型基本信息</h1><ul><li>全球热流数据是根据钻井,温泉,直接采样相关岩石计算导出的热流值.</li><li>数据来源于NOAA的geothermal数据.</li><li>下载数据视不同的路径格式可能为<code>.gmt</code>,<code>.xyz</code>格式</li><li>数据下载:<a href="http://www.geophysik.rwth-aachen.de/IHFC/heatflow.html">http://www.geophysik.rwth-aachen.de/IHFC/heatflow.html</a><h1 id="程序"><a href="#程序" class="headerlink" title="程序"></a>程序</h1></li></ul><ol><li>初始参数设定<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line">PS=plot/global_geothermal.ps</span><br><span class="line">in_gmt=data/Global.gmt</span><br><span class="line">in_xyz=data/global_heatflow.xyz</span><br><span class="line">R=-180/180/-90/90</span><br><span class="line">J=X18d/9d</span><br><span class="line">gmt psbasemap -R<span class="variable">$R</span> -J<span class="variable">$J</span> -B30 -X2c -Y2c -BwSEN -K &gt; <span class="variable">$PS</span>  <span class="comment">#设置底图参数</span></span><br></pre></td></tr></table></figure></li><li>将数据转为正常的<code>.xyz</code>格式,以便之后绘制散点图(由于数据在大洋区域较为分散,不适合做画平滑热流图,读者可自行尝试)<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gmt convert <span class="variable">$in_gmt</span>  -a2=Heat_Flow &gt; <span class="variable">$in_xyz</span> </span><br></pre></td></tr></table></figure></li><li>绘制全球海岸线<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gmt pscoast -J<span class="variable">$J</span> -B30  -R<span class="variable">$R</span> -A4 -Gwhite -W0.1p -Dhigh -Swhite -K -O &gt;&gt; <span class="variable">$PS</span></span><br></pre></td></tr></table></figure></li><li>以散点形式绘制全球热流值<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">cat <span class="variable">$in_xyz</span> | awk <span class="string">&#x27;&#123;if($3&lt;50)&#123;print $1,$2&#125;&#125;&#x27;</span>| gmt psxy -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Sc0.07 -G117/0/251   -K -O  &gt;&gt; <span class="variable">$PS</span></span><br><span class="line">cat <span class="variable">$in_xyz</span> | awk <span class="string">&#x27;&#123;if($3&lt;100 &amp;&amp; $3 &gt;=50)&#123;print $1,$2&#125;&#125;&#x27;</span>| gmt psxy -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Sc0.07 -G0/182/255   -K -O  &gt;&gt; <span class="variable">$PS</span></span><br><span class="line">cat <span class="variable">$in_xyz</span> | awk <span class="string">&#x27;&#123;if($3 &gt;= 100 &amp;&amp; $3 &lt; 150)&#123;print $1,$2&#125;&#125;&#x27;</span>| gmt psxy -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Sc0.07 -G0/255/58   -K -O &gt;&gt; <span class="variable">$PS</span></span><br><span class="line">cat <span class="variable">$in_xyz</span> | awk <span class="string">&#x27;&#123;if($3 &gt;= 150 &amp;&amp; $3 &lt; 200)&#123;print $1,$2&#125;&#125;&#x27;</span>| gmt psxy -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Sc0.07 -G255/201/0   -K -O &gt;&gt; <span class="variable">$PS</span></span><br><span class="line">cat <span class="variable">$in_xyz</span> | awk <span class="string">&#x27;&#123;if($3 &gt;= 200)&#123;print $1,$2&#125;&#125;&#x27;</span>| gmt psxy -R<span class="variable">$R</span> -J<span class="variable">$J</span> -Sc0.07 -G255/0/0   -K -O &gt;&gt; <span class="variable">$PS</span></span><br></pre></td></tr></table></figure></li><li>绘制图例<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">gmt pslegend -R<span class="variable">$R</span> -J<span class="variable">$J</span>  -DjTL+w6i/0.3i+o1c/8c  -O &lt;&lt;<span class="string">EOF &gt;&gt; $PS</span></span><br><span class="line"><span class="string"># Legend  for $PS </span></span><br><span class="line"><span class="string"># G is vertical gap, V is vertical line, N sets # of columns, D draws horizontal line.</span></span><br><span class="line"><span class="string"># H is header, L is label, S is symbol, T is paragraph text, M is map scale.</span></span><br><span class="line"><span class="string">#</span></span><br><span class="line"><span class="string">G 0.02i</span></span><br><span class="line"><span class="string">N 5</span></span><br><span class="line"><span class="string">S 0.1i c 0.15 117/0/251 0.25p 0.3i 0-50</span></span><br><span class="line"><span class="string">S 0.1i c 0.15 0/182/255 0.25p 0.3i 50-100</span></span><br><span class="line"><span class="string">S 0.1i c 0.15 0/255/58 0.25p 0.3i 100-150  </span></span><br><span class="line"><span class="string">S 0.1i c 0.15 255/201/0 0.01p 0.3i 150-200</span></span><br><span class="line"><span class="string">S 0.2i c 0.15 255/0/0 0.01p 0.3i &gt;200mW/m2</span></span><br><span class="line"><span class="string">G 0.02i</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure></li><li>将成图转为png格式,并删除不必要的文件<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gmt psconvert <span class="variable">$PS</span> -A -Tg -P</span><br><span class="line">rm *.<span class="built_in">history</span> <span class="variable">$PS</span></span><br></pre></td></tr></table></figure></li></ol><h1 id="成图示例"><a href="#成图示例" class="headerlink" title="成图示例"></a>成图示例</h1><p><img src="http://ov395xwhy.bkt.clouddn.com/FvMrBHNnOhRIqzkVukm_qXQp7GL1.png" alt="global-geothermal.png"></p>]]></content>
    
    
    <summary type="html">本文将介绍如何利用global-geothermal数据,使用GMT5绘制成图. 官方地址: https://www.ngdc.noaa.gov/hazard/geotherm.shtml</summary>
    
    
    
    <category term="GMT" scheme="https://collyking.top/categories/GMT/"/>
    
    
    <category term="GMT" scheme="https://collyking.top/tags/GMT/"/>
    
    <category term="geothermal" scheme="https://collyking.top/tags/geothermal/"/>
    
  </entry>
  
  <entry>
    <title>「linux」解决No CMAKE_C_COMPILER could be found</title>
    <link href="https://collyking.top/2018/18134.html"/>
    <id>https://collyking.top/2018/18134.html</id>
    <published>2018-04-30T12:41:32.000Z</published>
    <updated>2018-04-30T13:28:43.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h1><p>关键报错如下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">-- The C compiler identification is unknown</span><br><span class="line">CMake Error at CMakeLists.txt:13 (project):</span><br><span class="line">  No CMAKE_C_COMPILER could be found.</span><br><span class="line"></span><br><span class="line">  Tell CMake <span class="built_in">where</span> to find the compiler by setting either the environment</span><br><span class="line">  variable <span class="string">&quot;CC&quot;</span> or the CMake cache entry CMAKE_C_COMPILER to the full path to</span><br><span class="line">  the compiler, or to the compiler name <span class="keyword">if</span> it is <span class="keyword">in</span> the PATH.</span><br><span class="line">...</span><br><span class="line">...</span><br><span class="line">make: *** No targets specified and no makefile found.  Stop.</span><br></pre></td></tr></table></figure><p>提示找不到C/CXX compiler路径,搜了一下似乎常见于Visual studio问题,并找到方法多为以下1,2两种</p><h1 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h1><ol><li>安装build-essential<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ sudo apt-get install build-essential </span><br></pre></td></tr></table></figure></li><li>安装g++<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ sudo apt-get install g++</span><br></pre></td></tr></table></figure></li><li>手动添加路径<br>若二者均已安装仍报错,那么找到gcc位置,手动添加下路径即可<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ whereis gcc</span><br><span class="line">gcc: /usr/bin/gcc /usr/lib/gcc </span><br><span class="line">$ <span class="built_in">export</span> CC=/usr/bin/gcc <span class="comment"># 视上一行输出填写路径</span></span><br></pre></td></tr></table></figure></li></ol><p>再次编译应该就能顺利完成了.</p><p><a href="https://www.techiediaries.com/ubuntu/no-cmake-cxx-compiler-could-be-found/">参考链接</a></p>]]></content>
    
    
    <summary type="html">安装某软件时,依赖下载完后,在编译过程中报错`No CMAKE_C_COMPILER could be found`,本文旨在解决此问题</summary>
    
    
    
    <category term="linux" scheme="https://collyking.top/categories/linux/"/>
    
    
    <category term="linux" scheme="https://collyking.top/tags/linux/"/>
    
    <category term="make" scheme="https://collyking.top/tags/make/"/>
    
  </entry>
  
  <entry>
    <title>「blog」linux环境下Hexo博客的恢复</title>
    <link href="https://collyking.top/2018/10407.html"/>
    <id>https://collyking.top/2018/10407.html</id>
    <published>2018-03-24T13:41:05.000Z</published>
    <updated>2018-04-30T13:23:32.000Z</updated>
    
    <content type="html"><![CDATA[<hr><p><strong>环境:</strong></p><blockquote><p>os:    Debian 9.3 stretch<br>git:    2.11.0<br>node:    8.9.3<br>npm:    5.8.0<br>hexo-cli:1.1.0</p></blockquote><h2 id="1-关联github"><a href="#1-关联github" class="headerlink" title="1. 关联github"></a>1. 关联github</h2><h3 id="1-1-设置git"><a href="#1-1-设置git" class="headerlink" title="1.1 设置git"></a>1.1 设置git</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ git config --global user.name <span class="string">&quot;username&quot;</span></span><br><span class="line">$ git config --global user.email <span class="string">&quot;username@example.com&quot;</span></span><br></pre></td></tr></table></figure><h3 id="设置git私钥"><a href="#设置git私钥" class="headerlink" title="设置git私钥"></a>设置git私钥</h3><p>安装openssh,生成SSHkey</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ sudo apt install openssh</span><br><span class="line">$ ssh-keygen -t rsa -b 4096 -C <span class="string">&quot;your_email@example.com&quot;</span></span><br></pre></td></tr></table></figure><p>确保ssh-agent可运行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ ssh-agent -s</span><br></pre></td></tr></table></figure><p>添加SSH key</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ ssh-add ~/.ssh/id_rsa</span><br></pre></td></tr></table></figure><p>拷贝 ~/.ssh/id_rsa.pub 中的内容，然后，在 GitHub 右上方点击头像，选择 ”Settings”，在右边的 ”Personal settings” 侧边栏选择 ”SSH Keys”。点击 ”Add key” 按钮添加，接着粘贴 key。</p><p>测试:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ ssh -T git@github.com</span><br></pre></td></tr></table></figure><h2 id="2-安装node-js和hexo"><a href="#2-安装node-js和hexo" class="headerlink" title="2.安装node.js和hexo"></a>2.安装node.js和hexo</h2><h3 id="2-1安装node-js"><a href="#2-1安装node-js" class="headerlink" title="2.1安装node.js"></a>2.1安装node.js</h3><p><strong>法1:</strong><br>安装nvm:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash</span><br></pre></td></tr></table></figure><p>重启Terminal,安装Node.js</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ nvm ls-remote</span><br><span class="line">$ nvm install v7.2.0</span><br></pre></td></tr></table></figure><p><strong>法2:</strong><br>包管理器安装</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install npm</span><br><span class="line">sudo apt install nodejs</span><br></pre></td></tr></table></figure><h3 id="2-2-安装Hexo"><a href="#2-2-安装Hexo" class="headerlink" title="2.2 安装Hexo"></a>2.2 安装Hexo</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ sudo npm install -g hexo-cli      <span class="comment"># 注：这里不用 sudo 会报错</span></span><br></pre></td></tr></table></figure><h2 id="3-恢复hexo"><a href="#3-恢复hexo" class="headerlink" title="3. 恢复hexo"></a>3. 恢复hexo</h2><h3 id="3-1-初始化hexo"><a href="#3-1-初始化hexo" class="headerlink" title="3.1 初始化hexo"></a>3.1 初始化hexo</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo init</span><br></pre></td></tr></table></figure><h3 id="3-2-拷贝所需文件"><a href="#3-2-拷贝所需文件" class="headerlink" title="3.2 拷贝所需文件"></a>3.2 拷贝所需文件</h3><ol><li>_config.yml</li><li>theme/</li><li>source/</li></ol><h3 id="3-3-安装必要组件"><a href="#3-3-安装必要组件" class="headerlink" title="3.3 安装必要组件"></a>3.3 安装必要组件</h3><p>安装<code>hexo-deployer-git</code>,以使用hexo d部署到git上</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><p>安装hexo-generator-feed,以建立RSS订阅</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-generator-feed --save</span><br></pre></td></tr></table></figure><p>安装hexo-generator-sitemap,以建立站点地图</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-generator-sitemap --save</span><br></pre></td></tr></table></figure><h2 id="4-验证"><a href="#4-验证" class="headerlink" title="4. 验证"></a>4. 验证</h2><p>进行发布部署</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo d -g</span><br></pre></td></tr></table></figure><p>若成功就说明大功告成了!</p><p><a href="http://irislr.me/2016/11/28/%E9%87%8D%E8%A3%85Linux%E5%90%8E%E7%9A%84Hexo%E5%8D%9A%E5%AE%A2%E7%8E%AF%E5%A2%83%E6%81%A2%E5%A4%8D/">参考链接</a></p>]]></content>
    
    
    <summary type="html">原本在Win下的博客由于使用环境太久没更新,修复过程出了各种bug,索性重新装了一次,顺便备份恢复到了现在常用的linux环境下(说得好像我会经常更新一样).在此简单说一下恢复的过程</summary>
    
    
    
    <category term="blog" scheme="https://collyking.top/categories/blog/"/>
    
    
    <category term="blog" scheme="https://collyking.top/tags/blog/"/>
    
    <category term="linux" scheme="https://collyking.top/tags/linux/"/>
    
  </entry>
  
  <entry>
    <title>「Pylith」paraview 安装教程</title>
    <link href="https://collyking.top/2018/36546.html"/>
    <id>https://collyking.top/2018/36546.html</id>
    <published>2018-02-12T16:39:30.000Z</published>
    <updated>2018-08-04T13:34:49.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="一-包管理器安装"><a href="#一-包管理器安装" class="headerlink" title="一.包管理器安装"></a>一.包管理器安装</h1><h2 id="archlinux"><a href="#archlinux" class="headerlink" title="archlinux"></a>archlinux</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo pacman -S paraview <span class="comment">#需要事先添加archlinuxcn源</span></span><br></pre></td></tr></table></figure><h2 id="debian-ubuntu"><a href="#debian-ubuntu" class="headerlink" title="debian/ubuntu"></a>debian/ubuntu</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install paraview</span><br></pre></td></tr></table></figure><p>目前使用包管理器安装时的版本分别为</p><ul><li>archlinux：<code>paraview5.2.0</code></li><li>debian/ubuntu：<code>paraview5.1.2</code><br>而当前最新版本的paraview为5.4.1，若想要安装最新的paraview，archlinux用户可以选择使用yaourt安装第三方aur包，或者使用源码编译</li></ul><h1 id="二-源码编译安装"><a href="#二-源码编译安装" class="headerlink" title="二.源码编译安装"></a>二.源码编译安装</h1><p>在此以debian环境为例</p><h2 id="1-下载源码并安装相关依赖"><a href="#1-下载源码并安装相关依赖" class="headerlink" title="1. 下载源码并安装相关依赖"></a>1. 下载源码并安装相关依赖</h2><ul><li><a href="https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.4&type=binary&os=Linux&downloadFile=ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit.tar.gz">paraview5.4.1下载链接（linux）</a></li><li>安装相关依赖<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo apt install cmake qt5-default libxt-dev g++ gcc cmake-curses-gui mesa-common-dev ...</span><br><span class="line">openmpi-common openmpi-bin libopenmpi-dev</span><br></pre></td></tr></table></figure></li></ul><h2 id="2-使用CMake进行配置"><a href="#2-使用CMake进行配置" class="headerlink" title="2. 使用CMake进行配置"></a>2. 使用CMake进行配置</h2><p>建议建立一个单独的build路径，将source code拷贝到此处再进行配置。如在源码路径<code>paraview</code>下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> ..</span><br><span class="line">mkdir paraview_build </span><br><span class="line"><span class="built_in">cd</span> paraview_build</span><br><span class="line"><span class="comment">#进行拷贝操作</span></span><br><span class="line">ccmake ../paraview</span><br></pre></td></tr></table></figure><p>将会出现以下界面<br><img src="https://i.loli.net/2018/02/12/5a81b3550f884.png" alt=" "><br>接下来</p><ol><li>选择合适的参数（上下方向键移动，enter修改）</li><li>按c运行configure</li><li>根据反馈信息调整参数或安装缺少的依赖，回到步骤1</li><li>一切正常后，按g应用</li></ol><p>具体各个参数的含义可见参考来源，其中对于报错缺少的文件，可使用</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt-file search <span class="variable">$FILE</span><span class="comment">#(如Qt5CoreConfig.cmake) </span></span><br></pre></td></tr></table></figure><p>来查找需要安装哪个包</p><h2 id="3-编译"><a href="#3-编译" class="headerlink" title="3.编译"></a>3.编译</h2><p>CMake结束后将会产生一个makefile，只需在当前目录执行<code>make</code>即可开始编译，视具体情况会花费几~几十分钟。可使用多线程进行加速，以四核处理器为例。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">make -j 4</span><br></pre></td></tr></table></figure><p>编译完成后你就已经可以通过</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./bin/paraview</span><br></pre></td></tr></table></figure><p>运行paraview了</p><h2 id="4-安装"><a href="#4-安装" class="headerlink" title="4. 安装"></a>4. 安装</h2><p>接下来我们将paraview安装到本机环境中，只需执行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo make install</span><br></pre></td></tr></table></figure><p>paraview便会自动安装到之前configure步骤CMAKE_INSTALL_PREFIX的指定目录。</p><h2 id="至此安装完毕，对于其他linux发行版，windows下或macOS的安装步骤大同小异，在此不再赘述，可参考官方教程。"><a href="#至此安装完毕，对于其他linux发行版，windows下或macOS的安装步骤大同小异，在此不再赘述，可参考官方教程。" class="headerlink" title="至此安装完毕，对于其他linux发行版，windows下或macOS的安装步骤大同小异，在此不再赘述，可参考官方教程。"></a>至此安装完毕，对于其他linux发行版，windows下或macOS的安装步骤大同小异，在此不再赘述，可参考<a href="https://www.paraview.org/Wiki/ParaView:Build_And_Install#Download_And_Install_CMake">官方教程</a>。</h2><p>1.<a href="https://www.paraview.org/Wiki/ParaView:Build_And_Install#Download_And_Install_CMake">参考来源</a><br>2.<a href="https://www.paraview.org/download/">各平台最新版paraview下载</a><br>3.<a href="https://www.paraview.org/ParaView3/Doc/Nightly/www/py-doc/quick-start.html">paraview快速教程</a></p>]]></content>
    
    
    <summary type="html">本文将介绍如何在linux平台上安装paraview</summary>
    
    
    
    <category term="Pylith" scheme="https://collyking.top/categories/Pylith/"/>
    
    
    <category term="Pylith" scheme="https://collyking.top/tags/Pylith/"/>
    
  </entry>
  
  <entry>
    <title>「GMT」常用命令选项笔记</title>
    <link href="https://collyking.top/2017/32913.html"/>
    <id>https://collyking.top/2017/32913.html</id>
    <published>2017-09-04T11:22:22.000Z</published>
    <updated>2018-04-30T13:23:13.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="B-指定绘图边界"><a href="#B-指定绘图边界" class="headerlink" title="-B 指定绘图边界"></a>-B 指定绘图边界</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">-Bxinfo<span class="selector-attr">[/yinfo]</span><span class="selector-attr">[:.<span class="string">&quot;title string&quot;</span>:]</span><span class="selector-attr">[W|w]</span><span class="selector-attr">[E|e]</span><span class="selector-attr">[S|s]</span><span class="selector-attr">[N|n]</span></span><br></pre></td></tr></table></figure><ul><li>其中 xinfo 格式为：</li><li><code>[a]tick[m|c][ftick[m|c]][gtick[m|c]][l|p][:&quot;axis label&quot;:][:,&quot;unit label&quot;:]</code></li><li>其中a,f,g分别为刻度标记，刻度和网格间距</li></ul><h2 id="C-指定绘图拷贝数"><a href="#C-指定绘图拷贝数" class="headerlink" title="-C 指定绘图拷贝数"></a>-C 指定绘图拷贝数</h2><p>缺省为1</p><h2 id="H-告知头记录数"><a href="#H-告知头记录数" class="headerlink" title="-H 告知头记录数"></a>-H 告知头记录数</h2><p>缺省为1，若数据文件头大于1，如4，必须写<code>-H4</code></p><h2 id="J-选择地图投影"><a href="#J-选择地图投影" class="headerlink" title="-J 选择地图投影"></a>-J 选择地图投影</h2><ul><li>线性投影 <code>-JX</code> <em><code>width/height</code></em><ul><li><code>-JX</code><em><code>width[d]</code></em> 当x,y用地理坐标的度表示时。</li><li><code>-JX</code><em><code>width</code></em><code>l</code> 缩放前数值的log10</li><li><code>-JX</code><em><code>width</code></em><code>p</code> <em><code>power</code></em> 缩放前数值的指数</li></ul></li><li>莫卡托投影 <code>-JM</code><em><code>width</code></em></li><li>正形投影 <code>-JG</code><em><code>width</code></em> 指定投影中心</li><li>圆锥投影 <code>-JB</code><em><code>width</code></em> 指定投影中心和两条标准平行线</li><li>Eckert投影 <code>-JK[f|s]</code><em><code>lon0/width</code></em> 指定中央子午线</li></ul><h2 id="R-指定绘图范围"><a href="#R-指定绘图范围" class="headerlink" title="-R 指定绘图范围"></a>-R 指定绘图范围</h2><p><code>-R</code><em><code>xmin/xmax/ymin/ymax</code></em> </p><p><code>-R</code><em><code>xlleft/ylleft/xuright/yuright</code></em><code>[r]</code> 加r则是左下角和右上角坐标</p><h2 id="U-标注绘图日期"><a href="#U-标注绘图日期" class="headerlink" title="-U 标注绘图日期"></a>-U 标注绘图日期</h2><p><code>-U</code><em><code>&quot;optinal string&quot;</code></em></p><h2 id="K-和-O"><a href="#K-和-O" class="headerlink" title="-K 和 -O"></a>-K 和 -O</h2><h3 id="规则"><a href="#规则" class="headerlink" title="规则"></a>规则</h3><ul><li>如果一张图只要一个命令就能画出来，则不需要-K -O</li><li>如果一张图要两个命令画出，则第一个-K 第二个 -O</li><li>如果一张图要多个命令画出，则第一个用-K 中间用-K-O，最后一个用-O</li><li>第一个命令使用重定向符号 <code>&gt;</code>创建新文件并写入PS命令</li><li>余下所有绘图命令使用重定向符号<code>&gt;&gt;</code>向PS文件中追加新的PS命令。</li></ul><h3 id="避免犯错技巧"><a href="#避免犯错技巧" class="headerlink" title="避免犯错技巧"></a>避免犯错技巧</h3><p>例</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line"><span class="comment"># GMT template</span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line">PS=example.ps</span><br><span class="line">J=X6i <span class="comment">#表明是6英寸</span></span><br><span class="line">R=0/1/0/1</span><br><span class="line"><span class="comment"># Begin GMT Plot</span></span><br><span class="line">psxy -J<span class="variable">$J</span> -R<span class="variable">$R</span> -T -K &gt; <span class="variable">$PS</span></span><br><span class="line"><span class="comment"># now begin your real plot commands</span></span><br><span class="line"><span class="comment"># every command should be with &quot;-K&quot; &quot;-O&quot; and &quot;&gt;&gt;&quot;</span></span><br><span class="line"><span class="comment"># End GMT Plot</span></span><br><span class="line">psxy -J<span class="variable">$J</span> -R<span class="variable">$R</span> -T -O &gt;&gt; <span class="variable">$PS</span></span><br><span class="line"><span class="comment"># Plot finished. Now you can convert PS to other format</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">前一阵子学习GMT,在此对一些常用命令做下备忘</summary>
    
    
    
    <category term="GMT" scheme="https://collyking.top/categories/GMT/"/>
    
    
    <category term="GMT" scheme="https://collyking.top/tags/GMT/"/>
    
  </entry>
  
</feed>
