{
    "componentChunkName": "component---src-templates-markdown-doc-tsx",
    "path": "/2025.1.3/getting_started",
    "result": {"data":{"mdx":{"id":"baf07cdf-7934-54d9-8ef4-1f1385e53d69","frontmatter":{"title":"","images":null},"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Getting Started\"), mdx(\"h2\", null, \"What is Salvus?\"), mdx(\"p\", null, \"Salvus is a software suite focusing on high-performance full waveform\\nmodeling and inversion developed by Mondaic. Broadly speaking it consists of\\nfive components:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusCompute\"), \": Parallel high-performance solver for spectral-element wave propagation on unstructured meshes.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusMesh\"), \": Library and toolbox to build meshes in both two and three dimensions.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusFlow\"), \": Workflow orchestration and remote job execution framework.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusOpt\"), \": Non-linear optimization framework.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"SalvusProject\"), \": Data and task management ensuring reproducibility and tying together various parts of Salvus.\"))), mdx(\"h2\", null, \"How Do I Start Using It?\"), mdx(\"p\", null, \"We recommend the following sequence:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Install it following the \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"./installation\"\n  }, \"Installation Instructions\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Work through the basic \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"./examples/tutorials/getting_started/tutorial_part1/\"\n  }, \"Lamb's Problem Tutorial\"), \".\")), mdx(\"p\", null, \"After that it really depends on your envisioned use cases. The list of examples\\nand tutorials on this website is growing. Tutorials suitable for most beginners\\nare for example a \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"./examples/applications/seismology/australia/tutorial/\"\n  }, \"continental scale simulation\"), \", acoustic and elastic versions of the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"./examples/tutorials/models_and_topo/marmousi/tutorial/\"\n  }, \"Marmousi model\"), \", or a \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"./examples/tutorials/inversion/waveform_inversion/tutorial_part1/\"\n  }, \"full-waveform inversion on ultrasound scale\"), \".\"), mdx(\"p\", null, \"If you are interested in learning more about how the different components work together under the hood, check out the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"./examples/tutorials/advanced_interface/lambs_problem/tutorial/\"\n  }, \"advanced interface\"), \".\"), mdx(\"p\", null, \"Technical details can be found in the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Reference Documentation\"), \" section.\"), mdx(\"p\", null, \"If you are having trouble using Python and/or the Jupyter notebooks, please\\nhave a look at our collected \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"./references/python_resources\"\n  }, \"resources\"), \".\"), mdx(\"h2\", null, \"Need Help?\"), mdx(\"p\", null, \"Please don't hesitate to contact us at \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"mailto:support@mondaic.com\"\n  }, \"support@mondaic.com\"), \".\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}}},"pageContext":{"id":"baf07cdf-7934-54d9-8ef4-1f1385e53d69"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}