-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
507 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
module DummyDocs | ||
|
||
export State,ER,HIO,Shrink,Center,Mount | ||
|
||
""" | ||
OptimizeState(state, primitiveRecipLattice, numPeaks) | ||
Create an object that performs an iteration of stochastic gradient descent. | ||
""" | ||
function OptimizeState(state, primitiveRecipLattice, numPeaks) | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,269 @@ | ||
# This file is machine-generated - editing it directly is not advised | ||
|
||
julia_version = "1.10.4" | ||
manifest_format = "2.0" | ||
project_hash = "e0c77beb18dc1f6cce661ebd60658c0c1a77390f" | ||
|
||
[[deps.ANSIColoredPrinters]] | ||
git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" | ||
uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" | ||
version = "0.0.1" | ||
|
||
[[deps.AbstractTrees]] | ||
git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" | ||
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" | ||
version = "0.4.5" | ||
|
||
[[deps.ArgTools]] | ||
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" | ||
version = "1.1.1" | ||
|
||
[[deps.Artifacts]] | ||
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" | ||
|
||
[[deps.Base64]] | ||
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" | ||
|
||
[[deps.CodecZlib]] | ||
deps = ["TranscodingStreams", "Zlib_jll"] | ||
git-tree-sha1 = "b8fe8546d52ca154ac556809e10c75e6e7430ac8" | ||
uuid = "944b1d66-785c-5afd-91f1-9de20f533193" | ||
version = "0.7.5" | ||
|
||
[[deps.Dates]] | ||
deps = ["Printf"] | ||
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" | ||
|
||
[[deps.DocStringExtensions]] | ||
deps = ["LibGit2"] | ||
git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" | ||
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" | ||
version = "0.9.3" | ||
|
||
[[deps.Documenter]] | ||
deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] | ||
git-tree-sha1 = "76deb8c15f37a3853f13ea2226b8f2577652de05" | ||
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" | ||
version = "1.5.0" | ||
|
||
[[deps.Downloads]] | ||
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] | ||
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" | ||
version = "1.6.0" | ||
|
||
[[deps.Expat_jll]] | ||
deps = ["Artifacts", "JLLWrappers", "Libdl"] | ||
git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" | ||
uuid = "2e619515-83b5-522b-bb60-26c02a35a201" | ||
version = "2.6.2+0" | ||
|
||
[[deps.FileWatching]] | ||
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" | ||
|
||
[[deps.Git]] | ||
deps = ["Git_jll"] | ||
git-tree-sha1 = "04eff47b1354d702c3a85e8ab23d539bb7d5957e" | ||
uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" | ||
version = "1.3.1" | ||
|
||
[[deps.Git_jll]] | ||
deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] | ||
git-tree-sha1 = "d18fb8a1f3609361ebda9bf029b60fd0f120c809" | ||
uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" | ||
version = "2.44.0+2" | ||
|
||
[[deps.IOCapture]] | ||
deps = ["Logging", "Random"] | ||
git-tree-sha1 = "b6d6bfdd7ce25b0f9b2f6b3dd56b2673a66c8770" | ||
uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" | ||
version = "0.2.5" | ||
|
||
[[deps.InteractiveUtils]] | ||
deps = ["Markdown"] | ||
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" | ||
|
||
[[deps.JLLWrappers]] | ||
deps = ["Artifacts", "Preferences"] | ||
git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" | ||
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" | ||
version = "1.5.0" | ||
|
||
[[deps.JSON]] | ||
deps = ["Dates", "Mmap", "Parsers", "Unicode"] | ||
git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" | ||
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" | ||
version = "0.21.4" | ||
|
||
[[deps.LazilyInitializedFields]] | ||
git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612" | ||
uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf" | ||
version = "1.2.2" | ||
|
||
[[deps.LibCURL]] | ||
deps = ["LibCURL_jll", "MozillaCACerts_jll"] | ||
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" | ||
version = "0.6.4" | ||
|
||
[[deps.LibCURL_jll]] | ||
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] | ||
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" | ||
version = "8.4.0+0" | ||
|
||
[[deps.LibGit2]] | ||
deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] | ||
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" | ||
|
||
[[deps.LibGit2_jll]] | ||
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] | ||
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" | ||
version = "1.6.4+0" | ||
|
||
[[deps.LibSSH2_jll]] | ||
deps = ["Artifacts", "Libdl", "MbedTLS_jll"] | ||
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" | ||
version = "1.11.0+1" | ||
|
||
[[deps.Libdl]] | ||
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" | ||
|
||
[[deps.Libiconv_jll]] | ||
deps = ["Artifacts", "JLLWrappers", "Libdl"] | ||
git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" | ||
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" | ||
version = "1.17.0+0" | ||
|
||
[[deps.Logging]] | ||
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" | ||
|
||
[[deps.Markdown]] | ||
deps = ["Base64"] | ||
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" | ||
|
||
[[deps.MarkdownAST]] | ||
deps = ["AbstractTrees", "Markdown"] | ||
git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899" | ||
uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391" | ||
version = "0.1.2" | ||
|
||
[[deps.MbedTLS_jll]] | ||
deps = ["Artifacts", "Libdl"] | ||
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" | ||
version = "2.28.2+1" | ||
|
||
[[deps.Mmap]] | ||
uuid = "a63ad114-7e13-5084-954f-fe012c677804" | ||
|
||
[[deps.MozillaCACerts_jll]] | ||
uuid = "14a3606d-f60d-562e-9121-12d972cd8159" | ||
version = "2023.1.10" | ||
|
||
[[deps.NetworkOptions]] | ||
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" | ||
version = "1.2.0" | ||
|
||
[[deps.OpenSSL_jll]] | ||
deps = ["Artifacts", "JLLWrappers", "Libdl"] | ||
git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" | ||
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" | ||
version = "3.0.14+0" | ||
|
||
[[deps.PCRE2_jll]] | ||
deps = ["Artifacts", "Libdl"] | ||
uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" | ||
version = "10.42.0+1" | ||
|
||
[[deps.Parsers]] | ||
deps = ["Dates", "PrecompileTools", "UUIDs"] | ||
git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" | ||
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" | ||
version = "2.8.1" | ||
|
||
[[deps.Pkg]] | ||
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] | ||
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" | ||
version = "1.10.0" | ||
|
||
[[deps.PrecompileTools]] | ||
deps = ["Preferences"] | ||
git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" | ||
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" | ||
version = "1.2.1" | ||
|
||
[[deps.Preferences]] | ||
deps = ["TOML"] | ||
git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" | ||
uuid = "21216c6a-2e73-6563-6e65-726566657250" | ||
version = "1.4.3" | ||
|
||
[[deps.Printf]] | ||
deps = ["Unicode"] | ||
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" | ||
|
||
[[deps.REPL]] | ||
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] | ||
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" | ||
|
||
[[deps.Random]] | ||
deps = ["SHA"] | ||
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" | ||
|
||
[[deps.RegistryInstances]] | ||
deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"] | ||
git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51" | ||
uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3" | ||
version = "0.1.0" | ||
|
||
[[deps.SHA]] | ||
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" | ||
version = "0.7.0" | ||
|
||
[[deps.Serialization]] | ||
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" | ||
|
||
[[deps.Sockets]] | ||
uuid = "6462fe0b-24de-5631-8697-dd941f90decc" | ||
|
||
[[deps.TOML]] | ||
deps = ["Dates"] | ||
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" | ||
version = "1.0.3" | ||
|
||
[[deps.Tar]] | ||
deps = ["ArgTools", "SHA"] | ||
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" | ||
version = "1.10.0" | ||
|
||
[[deps.Test]] | ||
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] | ||
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" | ||
|
||
[[deps.TranscodingStreams]] | ||
git-tree-sha1 = "96612ac5365777520c3c5396314c8cf7408f436a" | ||
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" | ||
version = "0.11.1" | ||
weakdeps = ["Random", "Test"] | ||
|
||
[deps.TranscodingStreams.extensions] | ||
TestExt = ["Test", "Random"] | ||
|
||
[[deps.UUIDs]] | ||
deps = ["Random", "SHA"] | ||
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" | ||
|
||
[[deps.Unicode]] | ||
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" | ||
|
||
[[deps.Zlib_jll]] | ||
deps = ["Libdl"] | ||
uuid = "83775a58-1f1d-513f-b197-d71354ab007a" | ||
version = "1.2.13+1" | ||
|
||
[[deps.nghttp2_jll]] | ||
deps = ["Artifacts", "Libdl"] | ||
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" | ||
version = "1.52.0+1" | ||
|
||
[[deps.p7zip_jll]] | ||
deps = ["Artifacts", "Libdl"] | ||
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" | ||
version = "17.4.0+2" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
[deps] | ||
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
using Documenter | ||
include("DummyDocs.jl") | ||
using .DummyDocs | ||
|
||
makedocs( | ||
sitename="BcdiMeso.jl", | ||
format = Documenter.HTML( | ||
prettyurls = get(ENV, "CI", nothing) == "true" | ||
), | ||
pages = [ | ||
"Main"=>"index.md", | ||
"Usage"=>"use.md" | ||
] | ||
) | ||
|
||
deploydocs( | ||
repo = "github.com/byu-cig/BcdiMeso.jl.git", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# BcdiMeso.jl Documentation | ||
|
||
## About | ||
|
||
Bragg Coherent Diffraction Imaging (BCDI) Meso (Mesoscale) implements phase retrieval for mesoscale models with stochastic gradient descent. Some of the core functionality of this project is implemented in BcdiCore.jl. Additionally, this package is part of a collection of BCDI packages consisting of BcdiAtomic.jl (an atomic scale BCDI solver), BcdiMeso.jl (a mesoscale BCDI Solver), and BcdiMulti.jl (a multiscale BCDI solver). | ||
|
||
While this package is marked as BCDI specific, the methods are more general and can be used in many phase retrieval problems. In the future, this package may be incorporated into a more general phase retrieval package. | ||
|
||
Currently, this entire package must be run with access to GPUs. This may change in the future (especially if Issues requesting it are opened), but for our research group, using GPUs is a necessity. | ||
|
||
## Installation | ||
|
||
Currently, BcdiStrain.jl is not registered in the Julia general registry. BcdiTrad.jl can be installed by running in the REPL package manager (```]```): | ||
|
||
``` | ||
add https://github.com/byu-cig/BcdiCore.jl.git | ||
add https://github.com/byu-cig/BcdiMeso.jl.git | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Overview | ||
|
||
BcdiMeso implements phase retrieval in operator-style format. This means that the multiplication (*) and power (^) operators are used to apply operators to some current state. This may look like the following: | ||
|
||
``` | ||
state = State(intens, gVecs, recSupport, x, y, z, rho, ux, uy, uz) | ||
optimizeState = OptimizeState(state, primitiveRecipLattice, numPeaks) | ||
optimizeState^100 * state | ||
``` | ||
|
||
This short script applies 100 stochastic gradient descent iterations iterations. This makes it easy to implement very complex recipes for phase retrieval algorithms. | ||
|
||
# API | ||
|
||
```@docs | ||
State(intens, gVecs, recSupport, x, y, z, rho, ux, uy, uz) | ||
OptimizeState(state, primitiveRecipLattice, numPeaks) | ||
``` |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
module BcdiMeso | ||
using CUDA | ||
using Optim | ||
using LineSearches | ||
using BcdiCore | ||
|
||
# Write your package code here. | ||
|
||
include("State.jl") | ||
include("Operators.jl") | ||
end |
Oops, something went wrong.