{"action":"created","comment":{"url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/comments/200075859","pull_request_review_id":134318164,"id":200075859,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMDA3NTg1OQ==","diff_hunk":"@@ -0,0 +1,286 @@\n+//    |  /           |\n+//    ' /   __| _` | __|  _ \\   __|\n+//    . \\  |   (   | |   (   |\\__ `\n+//   _|\\_\\_|  \\__,_|\\__|\\___/ ____/\n+//                   Multi-Physics\n+//\n+//  License:\t\t BSD License\n+//\t\t\t\t\t Kratos default license: kratos/license.txt\n+//\n+//  Main authors:\n+//\n+\n+#ifndef ADJOINT_RESPONSE_FUNCTION_H\n+#define ADJOINT_RESPONSE_FUNCTION_H\n+\n+// System includes\n+\n+// External includes\n+\n+// Project includes\n+#include \"includes/define.h\"\n+#include \"includes/element.h\"\n+#include \"includes/condition.h\"\n+#include \"includes/process_info.h\"\n+#include \"includes/ublas_interface.h\"\n+#include \"containers/array_1d.h\"\n+#include \"containers/variable.h\"\n+\n+\n+// Application includes\n+\n+namespace Kratos\n+{\n+///@name Kratos Classes\n+///@{\n+\n+/// A base class for adjoint response functions.\n+class KRATOS_API(KRATOS_CORE) AdjointResponseFunction\n+{\n+public:\n+    ///@name Type Definitions\n+    ///@{\n+\n+    KRATOS_CLASS_POINTER_DEFINITION(AdjointResponseFunction);\n+\n+    ///@}\n+    ///@name Life Cycle\n+    ///@{\n+\n+    /// Constructor.\n+    AdjointResponseFunction()\n+    {\n+    }\n+\n+    /// Destructor.\n+    virtual ~AdjointResponseFunction()\n+    {\n+    }\n+\n+    ///@}\n+    ///@name Operators\n+    ///@{\n+\n+    ///@}\n+    ///@name Operations\n+    ///@{\n+\n+    virtual void Initialize()\n+    {\n+    }\n+\n+    virtual void InitializeSolutionStep()\n+    {\n+    }\n+\n+    virtual void FinalizeSolutionStep()\n+    {\n+    }\n+\n+    /// Calculate the local gradient w.r.t. primal solution.\n+    /**\n+     * @param[in]     rAdjointElement    the adjoint element.\n+     * @param[in]     rResidualGradient  the transposed gradient of the\n+     *                                   element's residual w.r.t. primal.\n+     * @param[out]    rResponseGradient  the gradient of the response function.\n+     * @param[in]     rProcessInfo       the current process info.\n+     */\n+    virtual void CalculateGradient(const Element& rAdjointElement,\n+                                   const Matrix& rResidualGradient,","path":"kratos/solving_strategies/response_functions/adjoint_response_function.h","position":89,"original_position":89,"commit_id":"9c4fc2f7a02034daea8a7bbcc3ccf3bd71db11ae","original_commit_id":"9c4fc2f7a02034daea8a7bbcc3ccf3bd71db11ae","user":{"login":"armingeiser","id":25903585,"node_id":"MDQ6VXNlcjI1OTAzNTg1","avatar_url":"https://avatars2.githubusercontent.com/u/25903585?v=4","gravatar_id":"","url":"https://api.github.com/users/armingeiser","html_url":"https://github.com/armingeiser","followers_url":"https://api.github.com/users/armingeiser/followers","following_url":"https://api.github.com/users/armingeiser/following{/other_user}","gists_url":"https://api.github.com/users/armingeiser/gists{/gist_id}","starred_url":"https://api.github.com/users/armingeiser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/armingeiser/subscriptions","organizations_url":"https://api.github.com/users/armingeiser/orgs","repos_url":"https://api.github.com/users/armingeiser/repos","events_url":"https://api.github.com/users/armingeiser/events{/privacy}","received_events_url":"https://api.github.com/users/armingeiser/received_events","type":"User","site_admin":false},"body":"rElementResidualGradient","created_at":"2018-07-04T10:06:48Z","updated_at":"2018-07-04T10:06:48Z","html_url":"https://github.com/KratosMultiphysics/Kratos/pull/2423#discussion_r200075859","pull_request_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/comments/200075859"},"html":{"href":"https://github.com/KratosMultiphysics/Kratos/pull/2423#discussion_r200075859"},"pull_request":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423"}}},"pull_request":{"url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423","id":199042073,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk5MDQyMDcz","html_url":"https://github.com/KratosMultiphysics/Kratos/pull/2423","diff_url":"https://github.com/KratosMultiphysics/Kratos/pull/2423.diff","patch_url":"https://github.com/KratosMultiphysics/Kratos/pull/2423.patch","issue_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/2423","number":2423,"state":"open","locked":false,"title":"[Core] Adjoint response function base class","user":{"login":"msandre","id":22290001,"node_id":"MDQ6VXNlcjIyMjkwMDAx","avatar_url":"https://avatars0.githubusercontent.com/u/22290001?v=4","gravatar_id":"","url":"https://api.github.com/users/msandre","html_url":"https://github.com/msandre","followers_url":"https://api.github.com/users/msandre/followers","following_url":"https://api.github.com/users/msandre/following{/other_user}","gists_url":"https://api.github.com/users/msandre/gists{/gist_id}","starred_url":"https://api.github.com/users/msandre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/msandre/subscriptions","organizations_url":"https://api.github.com/users/msandre/orgs","repos_url":"https://api.github.com/users/msandre/repos","events_url":"https://api.github.com/users/msandre/events{/privacy}","received_events_url":"https://api.github.com/users/msandre/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-07-03T18:01:07Z","updated_at":"2018-07-04T10:06:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fe5c1c93a1c7eb94c2bd4d1c5b9415d44e5f00f2","assignee":null,"assignees":[],"requested_reviewers":[{"login":"MFusseder","id":30687316,"node_id":"MDQ6VXNlcjMwNjg3MzE2","avatar_url":"https://avatars2.githubusercontent.com/u/30687316?v=4","gravatar_id":"","url":"https://api.github.com/users/MFusseder","html_url":"https://github.com/MFusseder","followers_url":"https://api.github.com/users/MFusseder/followers","following_url":"https://api.github.com/users/MFusseder/following{/other_user}","gists_url":"https://api.github.com/users/MFusseder/gists{/gist_id}","starred_url":"https://api.github.com/users/MFusseder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MFusseder/subscriptions","organizations_url":"https://api.github.com/users/MFusseder/orgs","repos_url":"https://api.github.com/users/MFusseder/repos","events_url":"https://api.github.com/users/MFusseder/events{/privacy}","received_events_url":"https://api.github.com/users/MFusseder/received_events","type":"User","site_admin":false}],"requested_teams":[{"name":"Technical Committee","id":2270897,"node_id":"MDQ6VGVhbTIyNzA4OTc=","slug":"technical-committee","description":"","privacy":"closed","url":"https://api.github.com/teams/2270897","members_url":"https://api.github.com/teams/2270897/members{/member}","repositories_url":"https://api.github.com/teams/2270897/repos","permission":"pull"}],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423/commits","review_comments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423/comments","review_comment_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/comments{/number}","comments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/2423/comments","statuses_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/statuses/9c4fc2f7a02034daea8a7bbcc3ccf3bd71db11ae","head":{"label":"KratosMultiphysics:add-response-function-to-core","ref":"add-response-function-to-core","sha":"9c4fc2f7a02034daea8a7bbcc3ccf3bd71db11ae","user":{"login":"KratosMultiphysics","id":24840449,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODQwNDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/24840449?v=4","gravatar_id":"","url":"https://api.github.com/users/KratosMultiphysics","html_url":"https://github.com/KratosMultiphysics","followers_url":"https://api.github.com/users/KratosMultiphysics/followers","following_url":"https://api.github.com/users/KratosMultiphysics/following{/other_user}","gists_url":"https://api.github.com/users/KratosMultiphysics/gists{/gist_id}","starred_url":"https://api.github.com/users/KratosMultiphysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KratosMultiphysics/subscriptions","organizations_url":"https://api.github.com/users/KratosMultiphysics/orgs","repos_url":"https://api.github.com/users/KratosMultiphysics/repos","events_url":"https://api.github.com/users/KratosMultiphysics/events{/privacy}","received_events_url":"https://api.github.com/users/KratosMultiphysics/received_events","type":"Organization","site_admin":false},"repo":{"id":81815495,"node_id":"MDEwOlJlcG9zaXRvcnk4MTgxNTQ5NQ==","name":"Kratos","full_name":"KratosMultiphysics/Kratos","owner":{"login":"KratosMultiphysics","id":24840449,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODQwNDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/24840449?v=4","gravatar_id":"","url":"https://api.github.com/users/KratosMultiphysics","html_url":"https://github.com/KratosMultiphysics","followers_url":"https://api.github.com/users/KratosMultiphysics/followers","following_url":"https://api.github.com/users/KratosMultiphysics/following{/other_user}","gists_url":"https://api.github.com/users/KratosMultiphysics/gists{/gist_id}","starred_url":"https://api.github.com/users/KratosMultiphysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KratosMultiphysics/subscriptions","organizations_url":"https://api.github.com/users/KratosMultiphysics/orgs","repos_url":"https://api.github.com/users/KratosMultiphysics/repos","events_url":"https://api.github.com/users/KratosMultiphysics/events{/privacy}","received_events_url":"https://api.github.com/users/KratosMultiphysics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KratosMultiphysics/Kratos","description":"Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.","fork":false,"url":"https://api.github.com/repos/KratosMultiphysics/Kratos","forks_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/forks","keys_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/teams","hooks_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/hooks","issue_events_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/events{/number}","events_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/events","assignees_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/assignees{/user}","branches_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/branches{/branch}","tags_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/tags","blobs_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/refs{/sha}","trees_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/statuses/{sha}","languages_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/languages","stargazers_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/stargazers","contributors_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/contributors","subscribers_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/subscribers","subscription_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/subscription","commits_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/commits{/sha}","git_commits_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/commits{/sha}","comments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/comments{/number}","issue_comment_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/comments{/number}","contents_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/contents/{+path}","compare_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/merges","archive_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/downloads","issues_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues{/number}","pulls_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls{/number}","milestones_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/milestones{/number}","notifications_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/labels{/name}","releases_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/releases{/id}","deployments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/deployments","created_at":"2017-02-13T10:58:24Z","updated_at":"2018-07-04T09:37:28Z","pushed_at":"2018-07-04T09:37:19Z","git_url":"git://github.com/KratosMultiphysics/Kratos.git","ssh_url":"git@github.com:KratosMultiphysics/Kratos.git","clone_url":"https://github.com/KratosMultiphysics/Kratos.git","svn_url":"https://github.com/KratosMultiphysics/Kratos","homepage":"http://www.cimne.com/kratos/","size":1169848,"stargazers_count":157,"watchers_count":157,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":40,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":40,"open_issues":110,"watchers":157,"default_branch":"master"}},"base":{"label":"KratosMultiphysics:master","ref":"master","sha":"a769cf4a8bef75bbb49a0e8c1e8cb1af2c11afe3","user":{"login":"KratosMultiphysics","id":24840449,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODQwNDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/24840449?v=4","gravatar_id":"","url":"https://api.github.com/users/KratosMultiphysics","html_url":"https://github.com/KratosMultiphysics","followers_url":"https://api.github.com/users/KratosMultiphysics/followers","following_url":"https://api.github.com/users/KratosMultiphysics/following{/other_user}","gists_url":"https://api.github.com/users/KratosMultiphysics/gists{/gist_id}","starred_url":"https://api.github.com/users/KratosMultiphysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KratosMultiphysics/subscriptions","organizations_url":"https://api.github.com/users/KratosMultiphysics/orgs","repos_url":"https://api.github.com/users/KratosMultiphysics/repos","events_url":"https://api.github.com/users/KratosMultiphysics/events{/privacy}","received_events_url":"https://api.github.com/users/KratosMultiphysics/received_events","type":"Organization","site_admin":false},"repo":{"id":81815495,"node_id":"MDEwOlJlcG9zaXRvcnk4MTgxNTQ5NQ==","name":"Kratos","full_name":"KratosMultiphysics/Kratos","owner":{"login":"KratosMultiphysics","id":24840449,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODQwNDQ5","avatar_url":"https://avatars1.githubusercontent.com/u/24840449?v=4","gravatar_id":"","url":"https://api.github.com/users/KratosMultiphysics","html_url":"https://github.com/KratosMultiphysics","followers_url":"https://api.github.com/users/KratosMultiphysics/followers","following_url":"https://api.github.com/users/KratosMultiphysics/following{/other_user}","gists_url":"https://api.github.com/users/KratosMultiphysics/gists{/gist_id}","starred_url":"https://api.github.com/users/KratosMultiphysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KratosMultiphysics/subscriptions","organizations_url":"https://api.github.com/users/KratosMultiphysics/orgs","repos_url":"https://api.github.com/users/KratosMultiphysics/repos","events_url":"https://api.github.com/users/KratosMultiphysics/events{/privacy}","received_events_url":"https://api.github.com/users/KratosMultiphysics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KratosMultiphysics/Kratos","description":"Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.","fork":false,"url":"https://api.github.com/repos/KratosMultiphysics/Kratos","forks_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/forks","keys_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/teams","hooks_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/hooks","issue_events_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/events{/number}","events_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/events","assignees_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/assignees{/user}","branches_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/branches{/branch}","tags_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/tags","blobs_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/refs{/sha}","trees_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/statuses/{sha}","languages_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/languages","stargazers_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/stargazers","contributors_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/contributors","subscribers_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/subscribers","subscription_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/subscription","commits_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/commits{/sha}","git_commits_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/git/commits{/sha}","comments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/comments{/number}","issue_comment_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/comments{/number}","contents_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/contents/{+path}","compare_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/merges","archive_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/downloads","issues_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues{/number}","pulls_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls{/number}","milestones_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/milestones{/number}","notifications_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/labels{/name}","releases_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/releases{/id}","deployments_url":"https://api.github.com/repos/KratosMultiphysics/Kratos/deployments","created_at":"2017-02-13T10:58:24Z","updated_at":"2018-07-04T09:37:28Z","pushed_at":"2018-07-04T09:37:19Z","git_url":"git://github.com/KratosMultiphysics/Kratos.git","ssh_url":"git@github.com:KratosMultiphysics/Kratos.git","clone_url":"https://github.com/KratosMultiphysics/Kratos.git","svn_url":"https://github.com/KratosMultiphysics/Kratos","homepage":"http://www.cimne.com/kratos/","size":1169848,"stargazers_count":157,"watchers_count":157,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":40,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":40,"open_issues":110,"watchers":157,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423"},"html":{"href":"https://github.com/KratosMultiphysics/Kratos/pull/2423"},"issue":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/2423"},"comments":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/issues/2423/comments"},"review_comments":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423/comments"},"review_comment":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/pulls/2423/commits"},"statuses":{"href":"https://api.github.com/repos/KratosMultiphysics/Kratos/statuses/9c4fc2f7a02034daea8a7bbcc3ccf3bd71db11ae"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"armingeiser"}}