payload: {"action":"created","issue":{"url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/1750","repository_url":"https://api.github.com/repos/QMCPACK/qmcpack","labels_url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/1750/labels{/name}","comments_url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/1750/comments","events_url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/1750/events","html_url":"https://github.com/QMCPACK/qmcpack/pull/1750","id":470076467,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjk5MTQ0MDEz","number":1750,"title":"Optimization Methods","user":{"login":"LeonOtis","id":33359464,"node_id":"MDQ6VXNlcjMzMzU5NDY0","avatar_url":"https://avatars0.githubusercontent.com/u/33359464?v=4","gravatar_id":"","url":"https://api.github.com/users/LeonOtis","html_url":"https://github.com/LeonOtis","followers_url":"https://api.github.com/users/LeonOtis/followers","following_url":"https://api.github.com/users/LeonOtis/following{/other_user}","gists_url":"https://api.github.com/users/LeonOtis/gists{/gist_id}","starred_url":"https://api.github.com/users/LeonOtis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeonOtis/subscriptions","organizations_url":"https://api.github.com/users/LeonOtis/orgs","repos_url":"https://api.github.com/users/LeonOtis/repos","events_url":"https://api.github.com/users/LeonOtis/events{/privacy}","received_events_url":"https://api.github.com/users/LeonOtis/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2019-07-19T00:45:10Z","updated_at":"2019-07-29T19:25:32Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/QMCPACK/qmcpack/pulls/1750","html_url":"https://github.com/QMCPACK/qmcpack/pull/1750","diff_url":"https://github.com/QMCPACK/qmcpack/pull/1750.diff","patch_url":"https://github.com/QMCPACK/qmcpack/pull/1750.patch"},"body":"I have been working with @eneuscamman on multiple wave function optimization algorithms. We have implemented several gradient descent based methods as well as a hybrid approach that alternates between descent and the blocked linear method, where the sections of descent optimization identify important directions in parameter space for use in the BLM. These methods are discussed in more detail in sections 2.4 and 2.5 of a recent paper: https://pubs.rsc.org/en/content/articlelanding/2019/CP/C9CP02269D#!divAbstract\r\n\r\nMost of my changes have been related to the QMCFixedSampleLinearOptimize class, along with some additions to QMCCostFunction and parts of the linear method engine. User input can specify whether one of the descent methods or the hybrid method should be used as well as step sizes for different parameter types, though defaults are provided. Currently, the descent and hybrid methods are only for ground state optimization. \r\n\r\nFor the hybrid method, the number of samples used by the descent section is typically different from that used by the BLM and is provided with a separate input. My current way of ensuring the number of samples changes between descent and BLM iterations has been through modifying the QMCDriver and VMC classes to have knowledge of whether the hybrid method is being used and if the current iteration is descent or BLM, but I am very open to other ways of accomplishing this.\r\n\r\nI have also included a basic test of some partial descent optimization followed by VMC (short-H4-descent-16-1), but could provide other tests if needed. Thanks in advance for any and all feedback.\r\n"},"comment":{"url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/comments/516128318","html_url":"https://github.com/QMCPACK/qmcpack/pull/1750#issuecomment-516128318","issue_url":"https://api.github.com/repos/QMCPACK/qmcpack/issues/1750","id":516128318,"node_id":"MDEyOklzc3VlQ29tbWVudDUxNjEyODMxOA==","user":{"login":"prckent","id":13683814,"node_id":"MDQ6VXNlcjEzNjgzODE0","avatar_url":"https://avatars0.githubusercontent.com/u/13683814?v=4","gravatar_id":"","url":"https://api.github.com/users/prckent","html_url":"https://github.com/prckent","followers_url":"https://api.github.com/users/prckent/followers","following_url":"https://api.github.com/users/prckent/following{/other_user}","gists_url":"https://api.github.com/users/prckent/gists{/gist_id}","starred_url":"https://api.github.com/users/prckent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prckent/subscriptions","organizations_url":"https://api.github.com/users/prckent/orgs","repos_url":"https://api.github.com/users/prckent/repos","events_url":"https://api.github.com/users/prckent/events{/privacy}","received_events_url":"https://api.github.com/users/prckent/received_events","type":"User","site_admin":false},"created_at":"2019-07-29T19:25:32Z","updated_at":"2019-07-29T19:25:32Z","author_association":"CONTRIBUTOR","body":"Test this please\r\n"}}
other: {"actor":{"display_login":"prckent"}}