{"id":22471893,"url":"https://github.com/o-morikawa/wind3d","last_synced_at":"2025-03-27T16:20:38.332Z","repository":{"id":266661726,"uuid":"894941243","full_name":"o-morikawa/Wind3D","owner":"o-morikawa","description":"Discrete approximation to 3D winding number mapping T^3-\u003eU(N)","archived":false,"fork":false,"pushed_at":"2024-12-12T02:36:08.000Z","size":36285,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T20:09:36.706Z","etag":null,"topics":["gradient-flow","hep","hep-lat","julia","julia-language","three-dimensions","torus","winding-number-algorithm"],"latest_commit_sha":null,"homepage":"https://sites.google.com/view/o-morikawa","language":"Mathematica","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/o-morikawa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-27T09:25:03.000Z","updated_at":"2024-12-12T02:36:12.000Z","dependencies_parsed_at":"2024-12-05T12:40:36.305Z","dependency_job_id":null,"html_url":"https://github.com/o-morikawa/Wind3D","commit_stats":null,"previous_names":["o-morikawa/wind3d"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o-morikawa%2FWind3D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o-morikawa%2FWind3D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o-morikawa%2FWind3D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o-morikawa%2FWind3D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/o-morikawa","download_url":"https://codeload.github.com/o-morikawa/Wind3D/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245878932,"owners_count":20687299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradient-flow","hep","hep-lat","julia","julia-language","three-dimensions","torus","winding-number-algorithm"],"created_at":"2024-12-06T12:07:50.431Z","updated_at":"2025-03-27T16:20:38.300Z","avatar_url":"https://github.com/o-morikawa.png","language":"Mathematica","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wind3D\n\nThis provides the actual code and more datas in [arXiv:2412.03888 [hep-lat]](https://arxiv.org/abs/2412.03888).\n\nWe consider the winding number on numerical simulations.\nWe propose an effective approach to give an approximate integer for\n```math\n\\int \\tr(g^{-1}dg)^{3},\n```\nwhere $g$ is a smooth map: $X \\to U(N)$.\nTo this end, we utilize a Julia repository, [o-morikawa/Gaugefields.jl](https://github.com/o-morikawa/Gaugefields.jl),\nand formulate a gradient-flow method even on a course lattice.\n\nWe use the following terminologies:\n- \"map\": Mapping function from $T^3$ to $SU(N)$ (See [hep-lat/0208057](https://arxiv.org/abs/hep-lat/0208057))\n- \"test\": Random unitary matrices for $T^3\\to U(N)$\n\nEach directory contains\n- src: main function which runs on [o-morikawa/Gaugefields.jl](https://github.com/o-morikawa/Gaugefields.jl)\n- output: data and simple figures\n    - action: flow-time dependence of lattice action, which is a monotonically decreasing function\n    - det: flow-time dependence of determinant of configurations\n    - msearch: m (a param of \"map\" case) dependence of lattice action\n    - wind: flow-time dependence of winding number\n        - with \"H\": lattice improvement for $gd^3g$\n        - no \"H\": naive lattice definition of winding number\n- m_nb: Mathematica notebooks for small lattice size\n\nA parameter, $\\eta$, is introduced for lattice improvement as [arXiv:2412.03888 [hep-lat]](https://arxiv.org/abs/2412.03888).\n\n## Sample code\nUse o-morikawa/Gaugefields.jl instead of the official repository, [Gaugefields.jl](https://github.com/akio-tomiya/Gaugefields.jl).\n\n```julia\nusing Random\nusing Gaugefields\nusing LinearAlgebra\nusing Wilsonloop\n\nfunction UN_test_3D(NX,NY,NT,NC,η;λ=1,rε=0.1)\n\n    Dim = 3\n    L = NX\n\n    n = 4\n    println(\"Run Configurations: n=$n\")\n\n    eps = 0.01\n    flow_number = 6000\n    step = 10\n    println(\"L=$L, eps=$eps,flow=$(eps*flow_number)\")\n\n    eta = η\n    randscale = λ\n    rand_eps = rε\n    println(\"eta: $eta,  randscale: $randscale,  rand_eps: $(rand_eps)\")\n\n    for i = 1:n\n\n        Random.seed!(123)\n\n        if i == 1\n            println(\"Configuration 1: Cold start\")\n            U = Initialize_3D_UN_Gaugefields(\n                NC,NX,NY,NT,\n                condition = \"cold\",\n                randomnumber=\"Random\"\n            )\n        elseif i == 2\n            println(\"Configuration 2: Hot start\")\n            U = Initialize_3D_UN_Gaugefields(\n                NC,NX,NY,NT,\n                condition = \"hot\",\n                randomnumber=\"Random\",\n                randscale=randscale,\n            )\n        elseif i == 3\n            println(\"Configuration 3: Test mapping as T^3-\u003eSU(2)\")\n            U = Initialize_3D_UN_Gaugefields(\n                NC,NX,NY,NT,\n                condition = \"test_map\",\n                m = -1, # -1, 1, 3, 5, 7\n            )\n        elseif i == 4\n            println(\"Configuration 4: Test mapping as T^3-\u003eSU(2) with Random noise\")\n            U = Initialize_3D_UN_Gaugefields(\n                NC,NX,NY,NT,\n                condition = \"test_map_rand\",\n                m = -1,\n                randomnumber=\"Random\",\n                reps = rand_eps,\n            )\n        end\n        println(typeof(U))\n\n        temps = Temporalfields(U, num=9)\n        println(typeof(temps))\n\n        println(winding_UN_3D(U,temps))\n\n        if i==1 || i==2\n            g = Gradientflow_eta_3D(U, eta, eps=eps)\n        else\n            g = Gradientflow_TA_eta_3D(U, eta, eps=eps)\n        end\n        flownumber = flow_number\n\n        W = winding_UN_3D(U,temps)\n        Wh =winding_UN_3D(U,1,temps)\n        S = calc_gdgaction_3D(U,eta,temps)\n        D = det_unitary(U)\n\n        println(\"flow time: 0\")\n        println(\"W=$(W), Wh=$(Wh), S=$(S), Det=$(D)\")\n\n        for iflow = 1:flownumber\n            flow!(U, g)\n            if iflow%step==0\n                W = winding_UN_3D(U,temps)\n                Wh =winding_UN_3D(U,1,temps)\n                S = calc_gdgaction_3D(U,eta,temps)\n                D = det_unitary(U)\n                println(\"flow time: $(iflow*eps)\")\n                println(\"W=$(W), Wh=$(Wh), S=$(S), Det=$(D)\")\n            end\n        end\n    end\n\nend\n\nfunction main()\n    NX = 20\n    NY = 20\n    NT = 20\n    NC = 2\n\n    η = 1\n    @time UN_test_3D(NX,NY,NT,NC,η,λ=5,rε=0.5)\nend\nmain()\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo-morikawa%2Fwind3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fo-morikawa%2Fwind3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo-morikawa%2Fwind3d/lists"}