{"id":19721,"date":"2015-10-15T15:22:00","date_gmt":"2015-10-15T15:22:00","guid":{"rendered":"http:\/\/ahay.org\/blog\/?p=19721"},"modified":"2015-12-16T04:23:11","modified_gmt":"2015-12-16T04:23:11","slug":"program-of-the-month-sfisolr2","status":"publish","type":"post","link":"https:\/\/ahay.org\/blog\/2015\/10\/15\/program-of-the-month-sfisolr2\/","title":{"rendered":"Program of the month: sfisolr2"},"content":{"rendered":"<p><a href=\"\/RSF\/sfisolr2.html\">sfisolr2<\/a> performs low-rank decomposition for wave propagation in a 2-D isotropic medium using <a href=\"\/RSF\/book\/tccs\/lowrank\/paper_html\/\">lowrank approximation method<\/a>.<\/p>\n<p>The output of <strong>sfisolr2<\/strong> can be used by other programs, such as <a href=\"\/RSF\/sffftwave2.html\">sffftwave2<\/a> or <a href=\"\/RSF\/sffftexp0.html\">sffftexp0<\/a> to perform wave modeling or reverse-time migration.<\/p>\n<p>The following example from <a href=\"\/RSF\/book\/tccs\/lowrank\/impres.html\">tccs\/lowrank\/impres<\/a> shows a wave snapshot from a point source in an isotropic medium with a variable velocity.<\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/tccs\/lowrank\/impres\/Fig\/wave.png\" alt=\"\" title=\"\" \/><\/p>\n<p><strong>sfisolr2<\/strong> takes two inputs: the velocity model as standard input and the file given by <strong>fft=<\/strong> to specify the dimensions of the Fourier-transformed\u00a0grid (the values in this file are not used). The program produces two outputs: the right decomposition matrix in the standard output, and the left decomposion matrix specified by <strong>left=<\/strong>. To make the results reproducible despite the randomization algorithm, set <strong>seed=<\/strong> for pseudorandom number generation. <\/p>\n<p>The rank of the lowrank approximation is controlled by several parameters. The most important of those is the time step size <strong>dt=<\/strong>. The other controlling parameters are the approximation tolerance <strong>eps=<\/strong> and the number of random probes (maximum rank) <strong>npk=<\/strong>.<\/p>\n<p>The related programs are <a href=\"\/RSF\/sfanisolr2.html\">sfanisolr2<\/a> for the anisotropic (TTI) case, and <a href=\"\/RSF\/sfisolr3.html\">sfisolr3<\/a> for the 3-D case. The following example from <a href=\"\/RSF\/book\/tccs\/lowrank\/threed.html\">tccs\/lowrank\/threed<\/a> shows a 3-D wavefield snapshot computed with <strong>sfisolr3<\/strong>:<\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/tccs\/lowrank\/threed\/Fig\/wave3.png\" alt=\"\" title=\"\" \/><\/p>\n<h3 id=\"10previousprogramsofthemonth\">10 previous programs of the month:<\/h3>\n<ul>\n<li><a href=\"\/blog\/2015\/09\/14\/program-of-the-month-sfsimilarity\/\">sfsimilarity<\/a><\/li>\n<li><a href=\"\/blog\/2015\/07\/10\/program-of-the-month-sfmutter\/\">sfmutter<\/a><\/li>\n<li><a href=\"\/blog\/2015\/06\/10\/program-of-the-month-sfintbin\/\">sfintbin<\/a><\/li>\n<li><a href=\"\/blog\/2015\/05\/01\/program-of-the-month-sfbox\/\">sfbox<\/a><\/li>\n<li><a href=\"\/blog\/2015\/04\/21\/program-of-the-month-sfslant\/\">sfslant<\/a><\/li>\n<li><a href=\"\/blog\/2015\/03\/04\/program-of-the-month-sfgrey\/\">sfgrey<\/a><\/li>\n<li><a href=\"\/blog\/2015\/03\/01\/program-of-the-month-sfhistogram\/\">sfhistogram<\/a><\/li>\n<li><a href=\"\/blog\/2015\/01\/30\/program-of-the-month-sfmf\/\">sfmf<\/a><\/li>\n<li><a href=\"\/blog\/2014\/12\/01\/program-of-the-month-sfbin\/\">sfbin<\/a><\/li>\n<li><a href=\"\/blog\/2014\/11\/12\/program-of-the-month-sfthreshold\/\">sfthreshold<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>sfisolr2 performs low-rank decomposition for wave propagation in a 2-D isotropic medium using lowrank approximation method. The output of sfisolr2 can be used by other programs, such as sffftwave2 or sffftexp0 to perform wave modeling or reverse-time migration. The following example from tccs\/lowrank\/impres shows a wave snapshot from a point source in an isotropic medium [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","activitypub_content_warning":"","activitypub_content_visibility":"local","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-19721","post","type-post","status-publish","format-standard","hentry","category-programs"],"_links":{"self":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/19721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/comments?post=19721"}],"version-history":[{"count":5,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/19721\/revisions"}],"predecessor-version":[{"id":41640,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/19721\/revisions\/41640"}],"wp:attachment":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/media?parent=19721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/categories?post=19721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/tags?post=19721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}