{"found":50729,"hits":[{"document":{"authors":[{"contributor_roles":[],"name":"The Geneva Learning Foundation"}],"blog":{"authors":null,"community_id":"7e26491f-41c6-4665-9088-5aa6643a1ba8","created":1731196800,"current_feed_url":null,"description":"Learning to make a difference","favicon":"https://rogue-scholar.org/api/communities/7e26491f-41c6-4665-9088-5aa6643a1ba8/logo","feed_format":"application/atom+xml","feed_url":"https://redasadki.me/feed/atom/","filter":null,"generator":"WordPress","home_page_url":"https://redasadki.me/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"redasadki","status":"active","subfield":"3304","title":"Reda Sadki","updated":1782838729,"use_api":true},"blog_name":"Reda Sadki","blog_slug":"redasadki","content_html":"<p class=\"has-text-align-left wp-block-paragraph\"><a href=\"https://redasadki.me/?p=23969\">English</a> | <strong>Fran\u00e7ais</strong></p>\n<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:903,&quot;href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/j\\/86517960688&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/webinar\\/register\\/WN_QxyRxifKQFedPC6mBmjoAQ?_x_zm_rtaid=jYYHPqfySXGVWbxPhaeO9Q.1778174418364.f87a83488235397cdbd5dbd2af15002f\\u0026_x_zm_rhtaid=4&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:164,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/redasadki&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:845,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/charlotte-mbuh-2b565298&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:204,&quot;href&quot;:&quot;https:\\/\\/www.learning.foundation\\/climate-fr&quot;,&quot;archived_href&quot;:&quot;http:\\/\\/web-wp.archive.org\\/web\\/20250813124052\\/https:\\/\\/www.learning.foundation\\/climate-fr&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-05 05:54:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-09 01:31:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-12 21:31:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-16 17:06:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-20 19:04:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-25 19:37:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-30 02:16:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-03 20:40:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-10 21:36:41&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-15 11:29:38&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 22:33:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-24 19:08:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-29 08:28:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 16:20:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 15:58:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-04 12:58:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 17:32:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 03:46:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 08:29:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-25 11:06:30&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-14 12:42:03&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-18 18:18:04&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-22 16:32:50&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-26 05:41:21&quot;,&quot;http_code&quot;:404}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-26 05:41:21&quot;,&quot;http_code&quot;:404},&quot;process&quot;:&quot;done&quot;}]\"></span>\n\n\n<p class=\"wp-block-paragraph\">Bonjour,</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous le voyez&nbsp;: le changement climatique nuit &agrave; la sant&eacute; de votre communaut&eacute;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Le jeudi 2&nbsp;juillet 2026, vous &ecirc;tes invit&eacute; &agrave; rencontrer des professionnels de sant&eacute; qui agissent d&eacute;j&agrave;.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/86517960688\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"RESERVEZ VOTRE PLACE\"><strong>R&Eacute;SERVEZ</strong> VOTRE PLACE<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Apportez un d&eacute;fi que le climat provoque dans votre travail.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pourriez repartir avec une r&eacute;ponse d&eacute;j&agrave; test&eacute;e par des coll&egrave;gues.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Que font les professionnels de sant&eacute; quand la route vers le centre est inond&eacute;e, quand le centre est plus chaud que jamais, quand plus de personnes tombent malades, plus souvent qu&rsquo;avant&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette s&eacute;ance porte sur ces solutions locales, celles que les professionnels de sant&eacute; utilisent d&eacute;j&agrave; pour sauver des vies.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Les personnes qui les ont partag&eacute;es, venues de plus de 60&nbsp;pays, seront nos invit&eacute;s d&rsquo;honneur.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Les participants auront acc&egrave;s &agrave; notre <a href=\"https://redasadki.me/2026/05/26/nouvelles-perspectives-health-workers-are-leading-community-responses-to-climate-change-impacts-on-health/\">nouveau rapport sur l&rsquo;action locale</a> face &agrave; l&rsquo;impact de la crise climatique sur la sant&eacute;, et aux <a href=\"https://redasadki.me/2026/05/26/climate-change-and-health-14-recommendations-for-health-workers-national-planners-and-global-partners/\">14&nbsp;recommandations surprenantes</a> pour le personnel de terrain, les planificateurs et les partenaires mondiaux.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>\ud83d\udde3\ufe0f <strong>Cette lettre d&rsquo;information est interactive</strong>. Partagez votre exp&eacute;rience partout o&ugrave; vous voyez cette ic&ocirc;ne.</span></p>\n\n\n\n<p class=\"wp-block-paragraph\">Sinc&egrave;res salutations,</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.linkedin.com/in/redasadki/\">Reda Sadki</a> et <a href=\"https://www.linkedin.com/in/charlotte-mbuh-2b565298/\">Charlotte Mbuh</a><br /><strong>La Fondation Apprendre Gen&egrave;ve</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">P.-S. Dites-nous ce que vous pensez de cette lettre d&rsquo;information. Cela prend deux minutes, et cela fa&ccedil;onne le prochain num&eacute;ro.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>La lettre d&rsquo;information du Scholar de la Fondation Apprendre Gen&egrave;ve, num&eacute;ro 5 (2&nbsp;juillet 2026)</em></h3>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Le changement climatique nuit &agrave; la sant&eacute; de votre communaut&eacute;&nbsp;: un guide pratique pour agir</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/19/what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-guide-to-the-certificate-peer-learning-programme-for-leadership-in-climate-change-and-health/\">Lisez le <strong>guide pratique</strong> pour voir ce que vous pouvez faire en tant que professionnel de sant&eacute;</a></p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/c27156-0562-e4a1-f8aa-374ceb7ae1a8_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Vous voyez les pluies arriver t&ocirc;t, le centre de sant&eacute; chauffer, et plus de personnes tomber malades plus souvent. Ce guide vous montre ce que vous pouvez faire, l&agrave; o&ugrave; vous &ecirc;tes, avec ce que vous avez. Vous pouvez commencer cette semaine.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-accent-3-background-color has-background wp-element-button\" href=\"https://www.learning.foundation/climate-fr\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE LE PROGRAMME MAINTENANT\"><strong>REJOIGNEZ</strong> LE PROGRAMME MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcd6 Pourquoi votre travail pendant la derni&egrave;re inondation compte&nbsp;: trois ans d&rsquo;action sur le climat et la sant&eacute;</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Quand la temp&ecirc;te a inond&eacute; les routes &agrave; Bomaka, au Cameroun, une sage-femme nomm&eacute;e <strong>Geh Raphaela Agwa</strong> a sauv&eacute; des jumeaux lors d&rsquo;une pr&eacute;sentation du cordon, puis elle a &eacute;crit ce qu&rsquo;elle avait fait. Ses voisins avaient d&eacute;j&agrave; creus&eacute; les caniveaux pour que les voitures puissent passer. Ni elle ni eux n&rsquo;ont attendu qu&rsquo;une politique leur dise comment faire.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette nouvelle synth&egrave;se relit trois ans de travail qui traitent des r&eacute;cits comme le sien comme une preuve, et non comme une simple anecdote. Elle rassemble ce que les professionnels de sant&eacute; en Afrique, en Asie et en Am&eacute;rique latine voient et font, &agrave; une &eacute;chelle qu&rsquo;aucune enqu&ecirc;te n&rsquo;avait atteinte, et le leur rend comme base pour agir. C&rsquo;est la r&eacute;ponse la plus claire &agrave; ce jour &agrave; une question qui d&eacute;cide si votre savoir est entendu&nbsp;: pourquoi ce que vous observez chaque jour est-il qualifi&eacute; d&rsquo;anecdotique, alors que c&rsquo;est vous qui &eacute;tiez l&agrave;&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/16/lessons-in-resilience-what-health-workers-in-africa-asia-and-latin-america-know-and-do-in-response-to-worsening-climate-change-impacts-on-their-communities/\">D&eacute;couvrez pourquoi l&rsquo;exp&eacute;rience de terrain est la couche manquante de la riposte au climat et &agrave; la sant&eacute;</a></p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Climat et sant&eacute;&nbsp;: l&rsquo;&eacute;v&eacute;nement vous montre ce qui est possible, cette nouvelle formation vous aide &agrave; le faire</h2>\n\n\n\n<p class=\"wp-block-paragraph\">La s&eacute;ance du 2&nbsp;juillet dure une heure. Cette nouvelle formation est l&rsquo;endroit o&ugrave; vous poussez plus loin votre propre d&eacute;fi, &agrave; votre rythme, avec des pairs qui portent le m&ecirc;me.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous &ecirc;tes peut-&ecirc;tre l&rsquo;infirmi&egrave;re qui a vu les pluies arriver t&ocirc;t, l&rsquo;agent de sant&eacute; communautaire qui marche plus loin pour de l&rsquo;eau potable, ou le responsable qui reconstruit un centre que le vent a emport&eacute;. Les situations diff&egrave;rent. La question est la m&ecirc;me. Que pouvez-vous faire, l&agrave; o&ugrave; vous &ecirc;tes, avec ce que vous avez&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est la premi&egrave;re formation par les pairs sur les impacts du changement climatique sur la sant&eacute;, construite &agrave; partir du rapport et avec le r&eacute;seau REACH de plus de 4&nbsp;000&nbsp;organisations locales. Vous parcourez ce que des pairs ont fait en urgence, ce qu&rsquo;ils ont fait pour se pr&eacute;parer, et comment ils ont associ&eacute; la communaut&eacute;. Vous repartez avec des &eacute;tapes concr&egrave;tes pour votre propre territoire.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32183\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE CETTE CERTIFICATION MAINTENANT\"><strong>REJOIGNEZ</strong> CETTE CERTIFICATION MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Dites-nous une chose que vous faites face au changement climatique et &agrave; la sant&eacute;. Votre r&eacute;ponse pourrait &ecirc;tre celle qu&rsquo;un coll&egrave;gue recherche.</p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcd6 Utilisez l&rsquo;intelligence artificielle pour dialoguer avec 1&nbsp;000&nbsp;professionnels de sant&eacute; face au climat</h3>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8f768de-858b-6ace-a0a-0b140cc2f647_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le rapport s&rsquo;intitule <em>Teach to Reach 11: Actions locales face &agrave; l&rsquo;impact du changement climatique sur la sant&eacute;</em>. Des professionnels de sant&eacute; en Afrique, en Asie et en Am&eacute;rique latine l&rsquo;ont &eacute;crit, 100&nbsp;d&rsquo;entre eux en d&eacute;tail, dans 19&nbsp;pays. Ils ont r&eacute;pondu &agrave; trois questions simples&nbsp;: que s&rsquo;est-il pass&eacute;, qu&rsquo;avez-vous fait, et comment avez-vous su que cela marchait.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Trois constats reviennent dans chaque pays. Le changement climatique aggrave des maladies d&eacute;j&agrave; connues, sans en inventer de nouvelles&nbsp;: le signal est donc dans le paludisme, le chol&eacute;ra et la malnutrition que vous suivez d&eacute;j&agrave;. Les communaut&eacute;s organisent leurs propres ripostes, de 17&nbsp;mani&egrave;res document&eacute;es. Et les personnes les plus proches du danger sont les moins visibles dans la conversation mondiale sur la recherche et les politiques.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Prenez Yopougon, en C&ocirc;te d&rsquo;Ivoire. Konan Kouam&eacute; Georges et son &eacute;quipe n&rsquo;ont pas attendu qu&rsquo;une directive change. Quand la dengue a suivi les pluies en 2023, ils sont pass&eacute;s d&rsquo;un rapport hebdomadaire &agrave; un rapport quotidien. C&rsquo;est un petit changement &agrave; lire. C&rsquo;est un grand changement &agrave; faire, et le genre que les syst&egrave;mes officiels mettent des ann&eacute;es &agrave; recommander.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez mettre cette intelligence collective au travail d&egrave;s maintenant.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/16/talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do-about-climate-change-and-health/\">Posez une question &agrave; notre interface d&rsquo;intelligence artificielle</a> en langage simple, comme &laquo;&nbsp;qu&rsquo;ont dit les professionnels de sant&eacute; de mon pays au sujet des inondations&nbsp;?&nbsp;&raquo;, et vous obtenez une r&eacute;ponse compl&egrave;te et fiable.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf0d Premiers secours psychologiques&nbsp;: <span>le p&ocirc;le national des Pays-Bas pour la sant&eacute; mentale et le soutien psychosocial</span></h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/013ade1-00aa-ba12-a5a-faf0817a00ba_20260611.23732.the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">LOOP, le p&ocirc;le national des Pays-Bas pour la sant&eacute; mentale et le soutien psychosocial, a rejoint le r&eacute;seau europ&eacute;en pour les premiers secours psychologiques (PFA), construit par plus de 2&nbsp;000&nbsp;praticiens avec le soutien de La Fondation Apprendre Gen&egrave;ve. D&eacute;sormais, les personnes qui soutiennent les enfants d&eacute;plac&eacute;s aux Pays-Bas peuvent apprendre de coll&egrave;gues en Ukraine et ailleurs. &laquo;&nbsp;Les professionnels qui soutiennent les enfants touch&eacute;s par les crises humanitaires et les conflits arm&eacute;s ne devraient jamais &ecirc;tre seuls&nbsp;&raquo;, a d&eacute;clar&eacute; Charlotte Mbuh, directrice des programmes de la Fondation.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Le besoin est vaste et l&rsquo;aide est rare. Environ 45&nbsp;% des personnes d&eacute;plac&eacute;es d&rsquo;Ukraine aux Pays-Bas se disent en mauvaise sant&eacute; mentale. Seules 7&nbsp;% environ ont vu un psychologue. Un travailleur social peut suivre plus de cent r&eacute;sidents.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong>D&eacute;couvrez <a href=\"https://redasadki.me/2026/06/11/the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-psychological-first-aid/\">comment ce partenariat a vu le jour</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Bundibugyo&nbsp;: vos coll&egrave;gues de la riposte ont besoin de vous maintenant</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/25a783-2f7f-f873-32ce-e7ad783dcf_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">La premi&egrave;re certification par les pairs sur la maladie &agrave; virus Bundibugyo est ouverte, parce que les personnes qui combattent la flamb&eacute;e en R&eacute;publique d&eacute;mocratique du Congo et en Ouganda ont besoin les unes des autres &agrave; l&rsquo;int&eacute;rieur. Si vous avez travaill&eacute; sur une riposte &agrave; Ebola, notez la seule chose que vous auriez aim&eacute; savoir, l&agrave; o&ugrave; un intervenant pourra la lire cette semaine.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32222\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE CETTE CERTIFICATION MAINTENANT\"><strong>REJOIGNEZ</strong> CETTE CERTIFICATION MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cette flamb&eacute;e, plus de la moiti&eacute; des personnes qui tombent malades sont des femmes et des filles. Une <a href=\"https://redasadki.me/2026/06/22/rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in-the-democratic-republic-of-congo-and-uganda/\">analyse rapide selon le genre</a> explique ce que cela change pour la riposte, et pourquoi cela ne peut pas attendre.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Vous l&rsquo;avez manqu&eacute;&nbsp;?</strong> D&eacute;couvrez comment <a href=\"https://redasadki.me/2026/06/15/virus-bundibugyo-un-reseau-de-soignants-congolais-tissent-des-liens-de-riposte-et-de-resilience/\">des soignants congolais apprennent les uns des autres</a> en construisant leur riposte.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udde3\ufe0f Bient&ocirc;t&nbsp;: au Togo, une d&eacute;cennie d&rsquo;apprentissage par les pairs a fait grandir des carri&egrave;res</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Palenfo Gnourfateon</strong>, un responsable de longue date de la Fondation, &eacute;tait &agrave; Lom&eacute; pour une enqu&ecirc;te sur la rougeole quand il a r&eacute;uni tous les Scholars qu&rsquo;il pouvait joindre. Reda Sadki s&rsquo;est connect&eacute; pour dire un rapide bonjour. Il est rest&eacute; les 119&nbsp;minutes enti&egrave;res, car la salle &eacute;tait devenue le t&eacute;moignage de ce qu&rsquo;une d&eacute;cennie d&rsquo;apprentissage par les pairs construit.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Winiga Koudema</strong> est un clinicien p&eacute;diatrique au Togo. Il est devenu directeur de district puis d&rsquo;h&ocirc;pital sans formation en &eacute;pid&eacute;miologie. Pendant la COVID-19, un coll&egrave;gue lui a envoy&eacute; le lien d&rsquo;une formation de la Fondation. Les formations l&rsquo;ont men&eacute; &agrave; un dipl&ocirc;me de troisi&egrave;me cycle, puis au conseil, puis &agrave; un poste permanent &agrave; l&rsquo;Organisation mondiale de la Sant&eacute;. &laquo;&nbsp;C&rsquo;est pour moi l&rsquo;occasion de vraiment me relancer&nbsp;&raquo;, a-t-il dit.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Manzama-Esso Kola</strong> est un sociologue venu &agrave; la vaccination par le travail sur le VIH. Une formation de 2019 sur la triangulation des donn&eacute;es a chang&eacute; sa pratique. Il a &eacute;crit un manuel, form&eacute; les responsables du suivi dans 39&nbsp;organisations, et il coordonne aujourd&rsquo;hui une plateforme que la division de la vaccination consulte. &laquo;&nbsp;Nous sommes un acteur reconnu et consult&eacute; en vaccination&nbsp;&raquo;, a-t-il dit.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce ne sont pas des carri&egrave;res qui se sont &eacute;loign&eacute;es du terrain. Elles y sont entr&eacute;es plus profond&eacute;ment. C&rsquo;est le pari du r&eacute;seau Scholar&nbsp;: que l&rsquo;apprentissage vit &agrave; l&rsquo;int&eacute;rieur des personnes qui font tourner le syst&egrave;me, et qu&rsquo;il dure. Comme l&rsquo;a dit Palenfo &agrave; la cl&ocirc;ture de la s&eacute;ance, &laquo;&nbsp;une fois Scholar, toujours Scholar&nbsp;&raquo;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <a href=\"https://redasadki.me\"><strong>Consultez</strong> le blog de Reda Sadki</a> pour trouver l&rsquo;article complet.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Ce que les professionnels de sant&eacute; savent d&eacute;j&agrave; sur la m&eacute;nopause</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/170cb12-5c34-6e4e-8ad8-683a4fa7e5_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">La premi&egrave;re formation mondiale par les pairs sur la m&eacute;nopause pour les professionnels de sant&eacute; a ouvert le 22&nbsp;juin, construite avec Menoglobal. Ses premiers jours ont montr&eacute; tout ce que les professionnels de sant&eacute; portent d&eacute;j&agrave;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Interrog&eacute;e sur ce que la m&eacute;nopause &eacute;voque, une membre d&rsquo;un comit&eacute; de sant&eacute; communautaire au Costa Rica a repris une expression de la m&eacute;decine traditionnelle, &laquo;&nbsp;le second printemps&nbsp;&raquo;, et a &eacute;crit&nbsp;: &laquo;&nbsp;Cela me donne de l&rsquo;espoir et de la paix, car je traverse cette transition.&nbsp;&raquo; Une assistante sociale en sant&eacute; en Afrique a r&eacute;pondu en un mot&nbsp;: &laquo;&nbsp;silence.&nbsp;&raquo; Le savoir &eacute;tait l&agrave;. Il attendait un langage.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f Vous serez surpris par <a href=\"https://redasadki.me/2026/06/28/menopause-what-health-workers-already-know-in-their-own-words/\">ce qu&rsquo;ils ont partag&eacute; la premi&egrave;re semaine</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Partagez une le&ccedil;on, une r&eacute;ussite ou un d&eacute;fi au sujet de la m&eacute;nopause. Vos mots peuvent aider un coll&egrave;gue qui n&rsquo;en a pas encore.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\u270d\ufe0f Des lectures qui valent votre temps</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/c60031-ece8-0730-0c-22f31b22f451_20260527.23635.global-health-architecture-what-are-we-missing.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques lectures r&eacute;centes de <strong>Reda Sadki</strong> et <strong>Charlotte Mbuh</strong>, de La Fondation Apprendre Gen&egrave;ve, si vous avez dix minutes entre deux r&eacute;unions.</p>\n\n\n\n<p class=\"wp-block-paragraph\">La<strong> 79<sup>e</sup> Assembl&eacute;e mondiale de la Sant&eacute;</strong> a ouvert un processus formel pour r&eacute;former la gouvernance de la sant&eacute; mondiale. Dans un poste de sant&eacute; du nord du Nig&eacute;ria, <strong>Mariam</strong> attend, et l&rsquo;article demande <a href=\"https://redasadki.me/2026/05/27/global-health-architecture-what-are-we-missing/\">qui manque dans la salle</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Lors d&rsquo;une heure de Teach to Reach le 4&nbsp;juin 2026, un patient suspect&eacute; d&rsquo;Ebola est entr&eacute; dans un centre de sant&eacute; en Ouganda et <strong>le personnel a recul&eacute;</strong>, sans formation et sans &eacute;quipement de protection. Ce moment ouvre le r&eacute;cit de <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-what-we-do-when-there-is-fear-in-every-health-worker-article-2-of-3/\">ce que font les professionnels de sant&eacute; quand la peur est dans la salle</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Un micro tendu pour &ecirc;tre c&eacute;l&eacute;br&eacute;e, une enseignante nig&eacute;riane a saisi ce moment pour <strong>avouer un probl&egrave;me qu&rsquo;elle ne peut pas r&eacute;soudre</strong>&nbsp;: ses &eacute;tudiants lui ont demand&eacute; d&rsquo;arr&ecirc;ter parce que la chaleur rendait toute r&eacute;flexion impossible. <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-honoring-tglfs-scholars-as-leaders-article-3-of-3/\">Honorer les Scholars, c&rsquo;&eacute;tait entendre cela aussi</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Faiza Rabbani</strong> se trouvait dans un dispensaire de village au Pendjab quand une jeune femme est pass&eacute;e devant elle en plein travail, sans &eacute;quipement et sans mots pour ce qui lui arrivait. C&rsquo;est le genre de cas <a href=\"https://redasadki.me/2026/05/30/teach-to-reach-newborn-care-a-baby-with-no-equipment-a-woman-with-no-words-article-3-of-4/\">&agrave; partir duquel la formation sur les soins au nouveau-n&eacute; a &eacute;t&eacute; construite</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Choisissez-en une.</p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd1c Ce qui arrive ensuite&nbsp;: un nouveau cadre de leadership nomme le travail pour lequel vous n&rsquo;avez jamais &eacute;t&eacute; form&eacute;, pr&eacute;sent&eacute; le 2&nbsp;juillet</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vous avez r&eacute;solu le refus d&rsquo;une communaut&eacute; de se faire vacciner. Vous avez maintenu un service quand le budget a manqu&eacute;. Vous avez n&eacute;goci&eacute; un passage s&ucirc;r dans une zone de conflit. Personne ne vous a appris tout cela, et cela n&rsquo;appara&icirc;t sur aucune fiche de poste. Le 2&nbsp;juillet, cela change.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Plus de 1&nbsp;300&nbsp;professionnels de sant&eacute; ont contribu&eacute; au nouveau cadre de comp&eacute;tences de la Fondation pour le leadership local en sant&eacute;, fond&eacute; sur une d&eacute;cennie d&rsquo;&eacute;ducation pour le changement. Il se pr&eacute;sente comme un programme manquant, parce qu&rsquo;il nomme le travail d&rsquo;adaptation que la formation officielle laisse de c&ocirc;t&eacute;. Il cartographie ce travail &agrave; travers neuf domaines, chacun d&eacute;crit &agrave; trois niveaux de ma&icirc;trise.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour vous, la promesse est la reconnaissance. Le travail invisible que vous faites d&eacute;j&agrave; peut enfin appara&icirc;tre dans une &eacute;valuation, sur un CV, et dans un parcours d&rsquo;avancement.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous dirigez une &eacute;quipe, il vous donne un langage pour les personnes qui r&eacute;solvent les probl&egrave;mes qu&rsquo;aucun protocole ne couvre. Il trouve du leadership &agrave; tous les niveaux, pas seulement chez les superviseurs. Et parce que chaque comp&eacute;tence est un comportement gradu&eacute; et observable, vous pouvez voir qui est pr&ecirc;t &agrave; faire plus, et l&rsquo;aider &agrave; y arriver.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/86517960688\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"RESERVEZ VOTRE PLACE\"><strong>R&Eacute;SERVEZ</strong> VOTRE PLACE<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>","doi":"https://doi.org/10.59350/63tfs-qy352","guid":"https://redasadki.me/?p=23977","image":"https://redasadki.me/wp-content/uploads/2026/06/newsletter5-035.jpg","language":"fr","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"2361c-0yx88","summary":"English | Fran\u00e7ais Bonjour, Vous le voyez : le changement climatique nuit \u00e0 la sant\u00e9 de votre communaut\u00e9. Le jeudi 2 juillet 2026, vous \u00eates invit\u00e9 \u00e0 rencontrer des professionnels de sant\u00e9 qui agissent d\u00e9j\u00e0. Apportez un d\u00e9fi que le climat provoque dans votre travail. Vous pourriez repartir avec une r\u00e9ponse d\u00e9j\u00e0 test\u00e9e par des coll\u00e8gues.","tags":["The Geneva Learning Foundation","Bundibugyo","Climate And Health","Climate Change","Ebola"],"title":"La lettre d'information du Scholar de la Fondation Apprendre Gen\u00e8ve, num\u00e9ro 5 (2 juillet 2026)","updated_at":1782838843,"url":"https://redasadki.me/2026/06/30/la-lettre-dinformation-du-scholar-de-la-fondation-apprendre-geneve-numero-5-2-juillet-2026/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"name":"The Geneva Learning Foundation"}],"blog":{"authors":null,"community_id":"7e26491f-41c6-4665-9088-5aa6643a1ba8","created":1731196800,"current_feed_url":null,"description":"Learning to make a difference","favicon":"https://rogue-scholar.org/api/communities/7e26491f-41c6-4665-9088-5aa6643a1ba8/logo","feed_format":"application/atom+xml","feed_url":"https://redasadki.me/feed/atom/","filter":null,"generator":"WordPress","home_page_url":"https://redasadki.me/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"redasadki","status":"active","subfield":"3304","title":"Reda Sadki","updated":1782838729,"use_api":true},"blog_name":"Reda Sadki","blog_slug":"redasadki","content_html":"<p class=\"has-text-align-left wp-block-paragraph\"><strong>English</strong> | <a href=\"https://redasadki.me/?p=23977\">Fran\u00e7ais</a></p>\n<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:908,&quot;href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/j\\/85731864236&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/webinar\\/register\\/WN_V2zemD1tSIO3zW0R9Ptqhg?_x_zm_rtaid=L3k-UbA2S82Bv7jJEDaKOg.1778176294156.055e86fb87e2c4745339b51fee5966a8\\u0026_x_zm_rhtaid=250&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:164,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/redasadki&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:845,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/charlotte-mbuh-2b565298&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:91,&quot;href&quot;:&quot;https:\\/\\/www.learning.foundation\\/climate&quot;,&quot;archived_href&quot;:&quot;http:\\/\\/web-wp.archive.org\\/web\\/20250721100812\\/https:\\/\\/www.learning.foundation\\/climate&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-05 05:00:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-08 05:23:50&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-11 09:14:03&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2025-12-14 11:00:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-17 17:10:38&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-20 18:55:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-24 01:45:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-27 07:22:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-30 07:58:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-02 11:45:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-05 19:52:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-09 06:02:32&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-13 00:55:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-16 01:48:00&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 11:28:47&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-22 17:14:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-25 20:26:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-29 00:20:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-01 04:30:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 13:08:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-07 14:04:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-12 11:22:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 14:24:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-22 18:15:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-04 11:24:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-11 11:22:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 14:23:49&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-18 08:58:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-21 15:51:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 07:09:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-29 08:13:05&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-02 04:51:17&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-06 23:05:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-10 10:43:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-14 09:21:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-18 22:44:34&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-22 03:44:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-26 18:05:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-30 06:44:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 08:29:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-06 22:36:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-11 19:21:50&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-05-15 05:42:34&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-19 04:24:06&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-05-24 14:53:53&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-28 01:43:12&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-01 00:36:04&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-05 11:57:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-09 02:56:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-13 04:47:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-16 10:40:19&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-19 13:08:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-22 16:42:53&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-26 03:58:56&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-30 14:45:24&quot;,&quot;http_code&quot;:404}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-30 14:45:24&quot;,&quot;http_code&quot;:404},&quot;process&quot;:&quot;done&quot;}]\"></span>\n\n\n<p class=\"wp-block-paragraph\">Dear Reader,</p>\n\n\n\n<p class=\"wp-block-paragraph\">You see that climate change is hurting the health of your community.</p>\n\n\n\n<p class=\"wp-block-paragraph\">On Thursday 2 July 2026, you&nbsp;are invited to meet health workers who are already taking action.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/85731864236\" title=\"CONFIRM YOUR PARTICIPATION\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\">CONFIRM YOUR PARTICIPATION<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Bring one challenge it causes in your work.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You may leave with an answer a peer has already tested.</p>\n\n\n\n<p class=\"wp-block-paragraph\">What do health workers do when the road to the clinic floods, when the clinic is hotter than ever, when more people fall sick, more often, than before?</p>\n\n\n\n<p class=\"wp-block-paragraph\">This session is about those local solutions, the ones health workers are already&nbsp;using to save lives.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The people who shared them, from more than 60 countries, will be our guests of honour.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Participants will get access to our <a href=\"https://redasadki.me/2026/05/26/new-insights-report-health-workers-are-leading-community-responses-to-climate-change-impacts-on-health/\">new report on local action</a>&nbsp;to mitigate the impact of the climate crisis on health&nbsp;and the <a href=\"https://redasadki.me/2026/05/26/climate-change-and-health-14-recommendations-for-health-workers-national-planners-and-global-partners/\">14 surprising recommendations</a> for community staff, planners, and global partners.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>\ud83d\udde3\ufe0f This newsletter is interactive. Share your experience wherever you see this icon.</span></p>\n\n\n\n<p class=\"wp-block-paragraph\">Best regards,</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.linkedin.com/in/redasadki/\">Reda Sadki</a> and <a href=\"https://www.linkedin.com/in/charlotte-mbuh-2b565298/\">Charlotte Mbuh</a><br /><strong>The Geneva Learning Foundation</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">P.-S.&nbsp;Tell us what you think of this newsletter. It takes two minutes, and it shapes the next issue.</p>\n\n\n\n<h3 id=\"h-the-geneva-learning-foundation-scholar-newsletter-issue-5-2-july-2026\" class=\"wp-block-heading\"><em>The Geneva Learning Foundation Scholar Newsletter, issue 5 (2 July 2026)</em></h3>\n\n\n\n<h2 id=\"h-nbsp-climate-change-is-harming-your-community-s-health-a-practical-guide-to-what-you-can-do\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Climate change is harming your community's health: a practical guide to what you can do</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23984\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/19/what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-guide-to-the-certificate-peer-learning-programme-for-leadership-in-climate-change-and-health/\">Read the <strong>practical guide</strong> to see what you can do as a health professional</a></p>\n\n\n\n<p class=\"wp-block-paragraph\">You see the rains arriving early, the clinic running hotter, more people falling sick more often. This guide shows you what you can do about it, where you are, with what you have. You can start this week.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-accent-3-background-color has-background wp-element-button\" href=\"https://www.learning.foundation/climate\" title=\"JOIN THE PROGRAMME NOW\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THE PROGRAMME NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<h3 id=\"h-nbsp-why-your-work-during-the-last-flood-nbsp-matters-three-years-of-climate-health-action\" class=\"wp-block-heading\">\ud83d\udcd6&nbsp;Why your work during the last flood&nbsp;matters: three years of climate-health action</h3>\n\n\n\n<p class=\"wp-block-paragraph\">When the storm flooded the roads in Bomaka, Cameroon, a midwife named <strong>Geh Raphaela Agwa</strong> saved twins during a cord presentation, then wrote down what she did. Her neighbours had already dug the gutters so cars could pass. Neither of them waited for a policy to tell them how.</p>\n\n\n\n<p class=\"wp-block-paragraph\">This new review reads three years of work that treats accounts like hers as evidence, not anecdote. It gathers what health workers in Africa, Asia, and Latin America see and do, at a scale no survey had reached, and gives it back to them as a basis for action. It is the clearest answer yet to a question that decides whether your knowledge is heard: why is what you witness every day called anecdotal, when you are the one who was there?</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/16/lessons-in-resilience-what-health-workers-in-africa-asia-and-latin-america-know-and-do-in-response-to-worsening-climate-change-impacts-on-their-communities/\">Read why frontline experience is the missing layer of the climate and health response</a></p>\n\n\n\n<h3 id=\"h-nbsp-climate-change-and-health-the-event-shows-you-what-is-possible-this-new-nbsp-course-helps-you-do-it\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Climate change and health: the event shows you what is possible, this new&nbsp;course helps you do it</h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 2 July session lasts one hour. This new course is where you take your own challenge further, on your own time, with peers carrying the same one.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You may be the nurse who saw the rains come early, the community health worker walking further for safe water, or the officer rebuilding a clinic the wind tore down. The situations differ. The question is the same. What can you do, where you are, with what you have?</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Tell us one thing you are doing about climate change and health. Your answer could be the one a colleague is searching for.</p>\n\n\n\n<p class=\"wp-block-paragraph\">It is the first peer learning course on the health impacts of climate change, built on the report and with the REACH network of more than 4,000 local organisations. You work through what peers did in emergencies, what they did to prepare, and how they brought the community in. You leave with practical steps for your own place.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32182\" title=\"JOIN THIS CERTIFICATION NOW\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THIS CERTIFICATION NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23986\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h3 id=\"h-nbsp-use-artificial-intelligence-to-talk-to-1-000-health-workers-fighting-climate-change-impacts-on-health\" class=\"wp-block-heading\">\ud83d\udcd6&nbsp;Use artificial intelligence to talk to 1,000 health workers fighting climate change impacts on health</h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/16/talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do-about-climate-change-and-health/\">Ask our artificial intelligence interface a question</a> in plain language, like \"what did health workers in my country say about floods?\", and you get a complete, reliable answer.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The report is called <em>Teach to Reach 11: Local action to mitigate the impact of the climate crisis on health</em>. Health workers in Africa, Asia, and Latin America wrote it. They answered three plain questions: how did&nbsp;climate change hurt&nbsp;the health of your community, what did you do, and how did you know it worked.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Three findings run across every country. Climate change is making familiar diseases worse, not inventing new ones, so the signal is in the malaria, cholera, and malnutrition you already track. Communities are organising their own responses, in 17 documented ways. And the people closest to the harm are the least visible in the global research and policy conversation.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Take Yopougon, in C\u00f4te d'Ivoire. Konan Kouam\u00e9 Georges and his team did not wait for a guideline to change. When dengue followed the rains in 2023, they switched from weekly reporting to daily. That is a small change to read. It is a large change to do, and the kind formal systems take years to recommend.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You can put that collective intelligence to work now.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23988\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-psychological-first-aid-the-netherlands-national-hub-for-mental-health-and-psychosocial-support\" class=\"wp-block-heading\">\ud83c\udf0d&nbsp;Psychological First Aid: <span>the Netherlands' national hub for mental health and psychosocial support</span></h2>\n\n\n\n<p class=\"wp-block-paragraph\">LOOP, the Netherlands&#8217; national hub for mental health and psychosocial support, has joined the European network for Psychological First Aid (PFA),&nbsp;built by over 2,000 practitioners with support from The Geneva Learning Foundation. Now the people who support displaced children across the Netherlands can learn from colleagues in Ukraine and elsewhere.&nbsp;\"The professionals supporting children affected by humanitarian crises and armed conflict&nbsp;should never have to be alone,\" said Charlotte Mbuh, TGLF's Director of Programmes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The need is wide and the help is thin. About 45% of displaced people from Ukraine in the Netherlands report feeling mentally unhealthy. Only about 7% have seen a psychologist. One social worker can carry more than one hundred residents.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong>Read <a href=\"https://redasadki.me/2026/06/11/the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-psychological-first-aid/\">how the partnership came together</a>.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23985\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-bundibugyo-your-colleagues-in-the-response-need-you-nbsp-now\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Bundibugyo: your colleagues in the response need you&nbsp;now</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first peer learning certification on Bundibugyo virus disease is open because the people fighting the outbreak in the Democratic Republic of the Congo and Uganda need each other inside it. If you have worked an Ebola response, write down the one thing you wish you had known, where a responder can read it this week.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32221\" title=\"JOIN THIS CERTIFICATION NOW\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THIS CERTIFICATION NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">In this outbreak, more than half of the people falling sick are women and girls. A <a href=\"https://redasadki.me/2026/06/22/rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in-the-democratic-republic-of-congo-and-uganda/\">rapid gender analysis</a> explains what that changes for the response, and why it cannot wait.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Did you miss it?</strong> Read how <a href=\"https://redasadki.me/2026/06/15/virus-bundibugyo-un-reseau-de-soignants-congolais-tissent-des-liens-de-riposte-et-de-resilience/\">Congolese caregivers are learning from each other</a> as they build their response.</p>\n\n\n\n<h2 id=\"h-coming-soon-in-togo-a-decade-of-peer-learning-grew-careers\" class=\"wp-block-heading\">\ud83d\udde3\ufe0f Coming soon: In Togo, a decade of peer learning grew careers</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Palenfo Gnourfateon</strong>, a long-time TGLF leader, was in Lom\u00e9 for a measles survey when he gathered whatever Scholars he could reach. Reda Sadki joined to say a quick hello. He stayed the full 119 minutes, because the room had become a record of what a decade of peer learning builds.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Winiga Koudema</strong> is a paediatric clinician in Togo. He became a district then a hospital director with no training in epidemiology. During COVID-19 a colleague sent him a link to a TGLF course. The courses led him to a postgraduate diploma, then to consultancy, then to permanent staff at the World Health Organization. \"This is an opportunity for me to truly re-launch myself,\" he said.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Manzama-Esso Kola</strong> is a sociologist who came to vaccination through HIV work. A 2019 course on data triangulation changed his practice. He wrote a manual, trained the monitoring officers across 39 organisations, and now coordinates a platform the immunisation division consults. \"We are a well-recognised and well-consulted actor in vaccination,\" he said.</p>\n\n\n\n<p class=\"wp-block-paragraph\">These are not careers that drifted away from the field. They moved deeper into it. That is the wager of the Scholar network: that the learning lives inside the people who run the system, and that it lasts. As Palenfo put it when the session closed, \"once a scholar, always a scholar.\"&nbsp;</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <a href=\"https://redasadki.me\"><strong>Check</strong> Reda Sadki's blog</a> to find the full article.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23987\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-what-health-workers-already-know-about-menopause\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;What health workers already know about menopause</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first global peer learning course on menopause for health workers opened on 22 June, built with Menoglobal. Its first days showed how much health workers already carry.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Asked what menopause brings to mind, a community health board member in Costa Rica reached for a phrase from traditional medicine, \"the second Spring\", and wrote, \"It gives me hope and peace, since I am going through this transition.\" A medical social worker in Africa answered in one word: \"silence.\" The knowledge was there. It was waiting for a language.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f&nbsp;You will be surprised by&nbsp;<a href=\"https://redasadki.me/2026/06/28/menopause-what-health-workers-already-know-in-their-own-words/\">what they shared in week one</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Share a menopause lesson, success, or challenge. Your words can help a colleague who has none yet.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"430\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?resize=640%2C430&#038;ssl=1\" alt=\"\" class=\"wp-image-23989\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?resize=300%2C202&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-reading-worth-your-time\" class=\"wp-block-heading\">\u270d\ufe0f&nbsp;Reading worth your time</h2>\n\n\n\n<p class=\"wp-block-paragraph\">A few recent reads from The Geneva Learning Foundation's <strong>Reda Sadki</strong> and <strong>Charlotte Mbuh</strong>, if you have ten minutes between meetings.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The<strong> 79th World Health Assembly</strong> opened a formal process to reform how global health is governed. In a health post in northern Nigeria, <strong>Mariam</strong> is waiting, and the piece asks <a href=\"https://redasadki.me/2026/05/27/global-health-architecture-what-are-we-missing/\">who is missing from the room</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">In one Teach to Reach hour on 4 June 2026, a suspected Ebola patient walked into a clinic in Uganda and <strong>the staff backed</strong> away, with no training and no protective equipment. That moment opens the story of <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-what-we-do-when-there-is-fear-in-every-health-worker-article-2-of-3/\">what health workers do when fear is in the room</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Handed a microphone to be celebrated, a Nigerian lecturer used her moment to <strong>confess a problem she cannot solve</strong>: her students asked her to stop because the heat made it impossible to think. <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-honoring-tglfs-scholars-as-leaders-article-3-of-3/\">Honouring Scholars meant hearing that too</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Faiza Rabbani</strong> was in a village dispensary in Punjab when a young woman walked past her in labour, with no equipment and no words for what was happening. It is the kind of case <a href=\"https://redasadki.me/2026/05/30/teach-to-reach-newborn-care-a-baby-with-no-equipment-a-woman-with-no-words-article-3-of-4/\">the newborn care course was built from</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Pick one.</p>\n\n\n\n<h3 id=\"h-nbsp-what-is-coming-next-a-new-leadership-framework-names-the-work-you-were-never-trained-for-presented-on-2-july\" class=\"wp-block-heading\">\ud83d\udd1c&nbsp;What is coming next: a new leadership framework names the work you were never trained for, presented on 2 July</h3>\n\n\n\n<p class=\"wp-block-paragraph\">You have resolved a community's refusal to vaccinate. You have kept a service running when the budget failed. You have negotiated safe passage in a conflict zone. No one taught you any of it, and it appears on no job description. On 2 July, that changes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Over 1,300 health workers contributed to TGLF's new competency framework for local health leadership, grounded in a decade of education for change. It calls itself a missing curriculum, because it names the adaptive work that formal training leaves out. It maps that work across nine domains, each described at three levels of proficiency.</p>\n\n\n\n<p class=\"wp-block-paragraph\">For you, the promise is recognition. The invisible work you already do can finally appear in a performance review, on a CV, and in a path to advancement.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you lead a team, it gives you a language for the people who solve the problems no protocol covers. It finds leadership at every level, not only in supervisors. And because each competency is a graded, observable behaviour, you can see who is ready to do more, and help them get there.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/85731864236\" title=\"SAVE YOUR SEAT\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>SAVE</strong> YOUR SEAT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>","doi":"https://doi.org/10.59350/4jsfn-kf182","guid":"https://redasadki.me/?p=23969","image":"https://redasadki.me/wp-content/uploads/2026/06/newsletter5-036.jpg","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"rvg8k-nfk19","summary":"English | Fran\u00e7ais Dear Reader, You see that climate change is hurting the health of your community. On Thursday 2 July 2026, you are invited to meet health workers who are already taking action. Bring one challenge it causes in your work. You may leave with an answer a peer has already tested.","tags":["The Geneva Learning Foundation","Bundibugyo","Climate And Health","Climate Change","Ebola"],"title":"The Geneva Learning Foundation Scholar Newsletter, issue 5 (2 July 2026)","updated_at":1782838841,"url":"https://redasadki.me/2026/06/30/the-geneva-learning-foundation-scholar-newsletter-issue-5-2-july-2026/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"family":"Marcum","given":"Christopher Steven","url":"https://orcid.org/0000-0002-0899-6143"}],"blog":{"authors":null,"community_id":"8bdb1ae7-4621-4fa5-ad1a-3a639417dfd5","created":1768694400,"current_feed_url":null,"description":"Perspectives on science, data, and technology that don't fit anywhere else.","favicon":"https://rogue-scholar.org/api/communities/8bdb1ae7-4621-4fa5-ad1a-3a639417dfd5/logo","feed_format":"application/atom+xml","feed_url":"http://chrismarcum.com/marcum-blog/feed.atom","filter":null,"generator":"Jekyll","home_page_url":"https://www.chrismarcum.com/marcum-blog/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"chrismarcum","status":"active","subfield":"3312","title":"Open Evidence","updated":1782820183,"use_api":null},"blog_name":"Open Evidence","blog_slug":"chrismarcum","content_html":"<p>The Office of Management and Budget (OMB) has proposed revisions to its Uniform Guidance under 2 CFR 200, which sets government-wide standards for federal financial assistance. Simultaneously, the National Science Foundation (NSF) has issued draft updates to its Proposal and Award Policies and Procedures Guide (historically called the PAPPG now renamed the Guidance on Financial Assistance or GFA). These two policies work together because the Uniform Guidance establishes the overarching regulatory framework that the National Science Foundation must implement within its specific agency grant terms and conditions.</p>\n<p>These proposed policy frameworks intersect directly with core equities surrounding public access to federally-funded research and data. The NSF proposal references these equities by incorporating data management requirements that align with federal public access plans and by eliminating the traditional twelve-month publication delay for peer-reviewed journal articles and conference proceedings. At the same time, the broader OMB proposal introduces rules affecting cost considerations for scholarly publishing, specifically making publication costs like article processing charges unallowable under direct costs unless approved in advance (and some confusing language that may prevent journal subscriptions under indirect costs).</p>\n<p>Public participation is critical even if comments are ignored by this Administration (they may help inform a future Administration's actions and can amplify the distress signal to members of Congress). As of publication of this blog post, there were nearly 70,000 public comments about the OMB rule received and 40K had been published. Comments are due July, 13th). I've yet to submit my own (stay tuned!). Comments on the NSF's GFA proposal under are due by August 24, 2026. There are only 3 published comments to the NSF proposal as of today. I suggest commenting early and often.  You don't need to submit a detailed, expert comment to make your voice heard. You can simply state your concern in plain language. Commenting helps improve the public record on a proposed rulemaking and is an important tool for participatory democracy.</p>\n<p>Submit comments here:</p>\n<ul>\n<li><a href=\"https://www.regulations.gov/document/OMB-2026-0034-0001\">OMB's Regulation for Federal Financial Assistance (2 CFR 200)</a> comments are due July 13, 2026</li>\n<li><a href=\"https://www.regulations.gov/document/NSF-2026-OTR-0001-0002\">NSF's Agency Information Collection Activities; Proposals, Submissions, and Approvals: National Science Foundation Proposal/Award Information Guidance on Financial Assistance</a> comments are due August 24, 2026</li>\n</ul>\n<h1 id=\"crosswalk\">CrossWalk</h1>\n<p>I've read both proposals carefully. For full transparency, I had privileged access earlier versions of both 2 CFR 200 and the GFA revisions in my former role at OMB. I was also a contributor to the 2024 revisions of the Uniform Guidance and reviewed the previous iteration of the GFA too. When I left OMB in July of 2025 the Uniform Guidance in 2 CFR 200 internal revisions included:</p>\n<ul>\n<li>Transitioning the guidance into a regulation (as officially proposed)</li>\n<li>Removed ELAs and all language that could be construed by political appointees as DEIA (a bespoke revision, not what was officially proposed)</li>\n<li>Focused almost exclusively on indirect costs by limiting them to the <em>de minimus</em> at 15% (obviously, OMB changed directions)</li>\n</ul>\n<p>At that time of my departure, the version I last saw had practically everything else remaining in tact. There was some back-and-forth between career and political officials about certain cost-principles (at some point, there was a bizarre prohibition on using indirects to support things like libraries at Unis which was thankfully struck from early drafts). There was also a strong intent by career staff to do a comprehensive regulatory impact analysis (RIA) with full economic benefit/cost considerations. Political appetite for that appears to have waned as <a href=\"https://www.regulations.gov/document/OMB-2026-0034-0038\">the released version</a> of the RIA is thin on actual economic details.</p>\n<p>Because the two documents work together with respect to things I care deeply about like public access to federally-funded research and data, I thought share my read of how the NSF and OMB policies compare to each other.</p>\n<h2 id=\"award-selection-merit-and-peer-review-and-administration-priorities\">Award selection, merit and peer-review, and Administration priorities</h2>\n<p>One of the most widely discussed and consequential changes in the OMB rule concerns how discretionary awards are selected. Proposed \u00a7 200.202(a)(1)(iii) requires program design to align with administration policies and priorities. Proposed \u00a7 200.205(b) requires agency heads to designate senior appointees to conduct a pre-issuance review of all discretionary awards, ensuring proposals are consistent with applicable law, Federal agency priorities, and the national interest, and applying principles that include demonstrably advancing the President's policy priorities, several substantive funding prohibitions, and commitments to Gold Standard Science. Proposed \u00a7 200.205(c) directs those appointees not to ratify or routinely defer to others' recommendations. Proposed \u00a7 200.205(d) provides that peer-review recommendations remain advisory and are not to be treated as binding.</p>\n<p>Technically, peer-review has always been fire-walled from funding decisions. Agencies have always had the discretion to ignore peer-review by funding proposals that were scored poorly, or not funding those that were scored highly, by review panels. What's new here is the implication that <em>all</em> granting decisions undergo political oversight before being finalized. Much as been said about this aspect of the OMB proposal (I recommend the piece by Science Editor-in-Chief <a href=\"https://www.science.org/doi/10.1126/science.aej3572\">Holden Thorpe</a> ).</p>\n<p>The NSF GFA does not reproduce this framework as explicitly as is stated in 2 CFR 200. Its merit review guide (Guide 8) is described in the Summary of Changes as having no significant changes. It retains the Intellectual Merit and Broader Impacts criteria, describes a process in which a Program Director's recommendation is approved by an NSF leadership official and then reviewed by a Grants Officer for financial, policy, and risk considerations, and states that award decisions are discretionary and consider NSF policies and priorities. The GFA does not reference senior appointees, the President's policy priorities, or a pre-issuance review applying those priorities, and it does not state that peer-review is subject to oversight for alignment with administration or Presidential priorities. Because \u00a7 200.205 is a government-wide requirement, it would apply to NSF directly under 2 CFR 200 once final, but the GFA as drafted does not implement it. However, the GFA does repeatedly reference vague conditions that proposals will be reviewed in the context of \"priorities.\"</p>\n<h2 id=\"gold-standard-science-gss\">Gold Standard Science (GSS)</h2>\n<p>Both documents reference EO 14303 and Gold Standard Science, but in different ways. The OMB rule embeds Gold Standard Science in award selection through \u00a7 200.205(b)(5) to (7), directing agencies to favor institutions that demonstrate success in implementing it. The NSF GFA treats GSS as a scientific-rigor and integrity expectation in Guide 13 and as a driver of Data Management and Sharing Plan requirements in Guide 5. The NSF GFA does not explicitly apply GSS in its award principles but its invocation in the text implies it will likely guide political pre-issue grant review.</p>\n<h2 id=\"nondiscrimination-and-funding-prohibitions-eg-deia-prohibitions\">Nondiscrimination and funding prohibitions (e.g. DEIA prohibitions)</h2>\n<p>The OMB rule adds substantive funding prohibitions through \u00a7 200.205(b)(2), \u00a7 200.300(b), \u00a7 200.218, and \u00a7 200.219, covering racial preferences, DEIA practices that violate anti-discrimination law, gender ideology, child transition, disparate-impact liability, and viewpoint discrimination in event services. The NSF GFA Guide 19 retains general nondiscrimination on the bases of race, color, national origin, disability, sex, and age, and removes references to revoked Executive Orders, limited English proficiency, environmental justice, and certain Department of Education coordinator requirements. The GFA does not reproduce the OMB prohibitions. However, the rules would apply to NSF directly under 2 CFR 200 when the rule is finalized.</p>\n<h2 id=\"award-type-and-foreign-or-domestic-scope\">Award type and foreign or domestic scope</h2>\n<p>The OMB rule eliminates fixed amount awards and subawards (\u00a7\u00a7 200.201(b), 200.333, 200.1, 200.101, 200.102). The GFA removes all fixed-price award references, which is a direct implementation. The OMB rule establishes a domestic-first framework for research and development awards and restricts foreign entities (\u00a7 200.202(e)); the GFA implements an equivalent foreign-organization justification standard tied to the national interest. The OMB rule prohibits covered foreign collaborations (\u00a7 200.220); the GFA addresses foreign-collaboration risk through its research security regime in Guide 14 rather than by restating that section. The OMB rule requires English-language announcements and applications (\u00a7 200.111); the GFA removes limited-English-proficiency requirements, which is consistent with the new 2 CFR 200 proposal.</p>\n<h2 id=\"integrity-and-disclosure\">Integrity and disclosure</h2>\n<p>The OMB rule revises the conflict-of-interest provision (\u00a7 200.112) to require disclosure of personnel employed by the awarding agency within the preceding two years; the GFA implements this near-verbatim in Guide 14, substituting NSF for the awarding agency. The OMB rule revises mandatory disclosures (\u00a7 200.113), including a ten-day transmittal of OIG disclosures to the U.S. Attorney's Office for the District of Columbia; the GFA addresses misconduct and disclosure in Guides 13 and 25 but does not reproduce that explicitly. I suspect that the NSF scientific integrity policy would be implicated here in some way but it is not clear</p>\n<h2 id=\"cost-principles\">Cost principles</h2>\n<p>The OMB rule makes publication costs unallowable, including page charges and article processing charges (APCs), except where required by statute or approved in advance, while keeping printing costs allowable (\u00a7 200.461). The GFA states that publication costs are disallowed and reflects the closeout exception, but its  budget guidance in Guide 4 still lists page charges and reprints as allowable. This is an internal inconsistency in the GFA.</p>\n<p>It is reassuring to see language in the GFA that invokes the policies set forth by the 2022 OSTP Public Access Memo (recast as being consistent with GSS) in Guides 5 and 21, respectively:</p>\n<ul>\n<li>\"Further implements public access requirements through revisions to Data Management and Sharing Plan requirements that align with NSF's Gold Standard Science Implementation Plan.\"</li>\n<li>\"Updates public access requirements by removing the 12-month publication delay for peer-reviewed journal articles and conference proceedings.\"</li>\n</ul>\n<p>There has been some confusion about whether or not the OMB ban on APCs is inconsistent with agency public access policies that require immediate public access to federally funded research. Let me be absolutely clear: the 2022 OSTP Public Access Policy (i.e., the Nelson Memo) makes no reference to any business model. Federal agencies are free to implement the zero-embargo policy by asserting their Federal Purpose License (incidentally codified in \u00a7 2 CFR 200.315(b)) by requiring authors to deposit their author-accepted manuscripts in the agency repository (at NSF, it's PAR at NIH it's PMC, for instance).</p>\n<p>Paying APCs is a business decision that publishers impose on authors - it's entirely unrelated to agency policy per se. Some publishers have been acting in bad-faith to convince (and sometimes coerce) authors into paying APCs as the <em>only</em> way to comply with federal public access policies. They intentionally conflate <em>open access</em> with <em>public access</em> - open access is never mentioned in the Nelson Memo. Authors may choose APCs in order to publish their work as open access; or they may retain their rights to deposit their author-accepted manuscript in the agency designated repositories. If a publisher says that authors must pay a fee to deposit their own manuscripts, then that means they are tying their editorial decisions to their business model. The agencies' Federal Purpose License preempts any agreement between authors and publishers because the author's institutions agreed to the terms when they signed the funding contract with the agency.</p>\n<p>However, that is not to say that there may be unintended consequences of not allowing APCs in direct grants. That's been widely discussed in response to NIH's proposal to cap APCs:</p>\n<ul>\n<li><a href=\"https://www.science.org/content/article/nih-details-options-limiting-its-payments-open-access-publishing-fees\">NIH details options for limiting its payments for open-access publishing fees\nOther publishing proposals would scrap reimbursements or pay peer reviewers, unprecedented steps for a major government funder</a></li>\n<li><a href=\"https://upstream.force11.org/my-response-to-nih-request-for-information-on-proposed-apc-caps/\">My Response to the NIH Request for Information on Proposed APC Caps</a></li>\n<li><a href=\"https://www.insidehighered.com/news/government/science-research-policy/2025/08/27/nih-publisher-fee-cap-plan-not-comprehensive\">NIH Publisher Fee Cap Plan 'Not Comprehensive Enough,' Critics Say</a></li>\n<li><a href=\"https://undark.org/2026/01/07/apc-science-publishing/\">In Scientific Publishing, Who Should Foot the Bill?</a></li>\n</ul>\n<p>The GFA does not invoke the Federal Purpose License, which remains unchanged at \u00a7 2 CFR 200.315(b) in the OMB proposal:</p>\n<blockquote>\n<p>To the extent permitted by law, the recipient or sub-recipient may copyright any work that is subject to copyright and was developed, or for which ownership was acquired, under a Federal award. The Federal agency reserves a royalty-free, nonexclusive, and irrevocable right to reproduce, publish, or otherwise use the work for Federal purposes and to authorize others to do so. This includes the right to require recipients and sub-recipients to make such works available through agency-designated public access repositories.</p>\n</blockquote>\n<p>Critically, the OMB rule does not change the <em>de minimis</em> indirect cost rate or modify indirects directly - however, there are indirect modifications of the indirect costs (zing!) because OMB made heavy revisions to Subpart E, which apply to both direct and indirect cost considerations. For example, OMB should clarify whether proposed revisions to \u00a7 200.454(b) regarding \"costs of the recipient's or sub-recipient's subscriptions to business, professional, academic, and technical periodicals are unallowable\" mean that Universities cannot use their indirects for libraries to pay for subscriptions to academic journals. A valid argument could be made for prohibiting academic journal subscriptions as direct costs but providing periodicals as a service to the entire University is an historical practice that makes no sense to prevent from flowing as indirect facilities and administrative costs.</p>\n<p>The GFA's 15% rate reflects the existing \u00a7 200.414. Additionally: the OMB rule adds an award-selection preference for institutions with lower indirect cost rates (\u00a7 200.205(b)(3)) while the GFA does not adopt that preference directly and the OMB rule makes a narrow change to prior written approval (\u00a7 200.407); the GFA updates its Prior Approval Matrix as a framework alignment.</p>\n<h2 id=\"an-ai-assisted-crosswalk-of-the-two-proposals\">An AI-Assisted Crosswalk of the Two Proposals</h2>\n<p>I asked Claude Opus 4.8 with high effort using the following prompt:\nto generate a crosswalk table:</p>\n<blockquote>\n<p>Attached are two proposed federal rule changes. One is a proposed change to 2 CFR 200 by the Office of Management and Budget. The second is a proposed change to the NSF's GFA. The two policies work hand in hand in how the NSF sets the terms and conditions of their grants, contracts, and awards. Your task is to do a complete and thorough crosswalk of the two proposed changes, evaluate whether and how the NSF GFA would implement the proposed 2 CFR 200 changes and if there are any deviations.</p>\n</blockquote>\n<p>I then went through and checked that the cross-references were correct (I didn't find any major issues) and added my own notes and analysis  in the rightmost column. Use at your own risk!</p>\n<h2 id=\"theme-1-award-selection-meritpeer-review-and-alignment-with-priorities\">Theme 1: Award selection, merit/peer-review, and alignment with priorities</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Program design must align with administration policies and priorities</td>\n<td>\u00a7 200.202(a)(1)(iii) (instr. 53): a Federal program must be designed with goals that \"Align with administration policies and priorities.\" Preamble A.5 and Section \"200.202.\"</td>\n<td>Guide 8 (\"Proposal Processing and Merit Review\") retains Intellectual Merit and Broader Impacts (\u00a7 B). Guide 9: \"Award of NSF assistance is discretionary,\" with \"program budget and priorities\" as factors. Guide 8 \u00a7F: award abstract \"articulate how the project serves the national interest.\" Summary of Changes, Guide 8: \"No significant changes.\"</td>\n<td>GFA references discretionary awards and \"NSF policies and priorities\" but does not adopt full alignment with OMB's proposal or its implications that political oversight is mandatory (see below).</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Pre-issuance review by senior appointees; peer-review is advisory</td>\n<td>\u00a7 200.205(b) (instr. 55): agency heads \"must designate one or more senior appointees to conduct a pre-issuance review of all discretionary awards\" to ensure proposals are \"consistent with applicable law, Federal agency priorities, and the national interest,\" applying principles including that awards \"demonstrably advance the President's policy priorities.\" \u00a7 200.205(c): senior appointees \"must not ministerially ratify or routinely defer to the recommendations of others.\" \u00a7 200.205(d): peer-review recommendations \"remain advisory and are not\u2026treated as de facto binding.\" Preamble (\u00a7 200.205 strengthens merit review and establishes pre-issuance review consistent with EO 14332).</td>\n<td>Guide 8 \u00a7A: Program Director recommendation \"is approved by the NSF leadership official\" before the Grants Officer. Guide 8 \u00a7F: recommendations \"are reviewed by NSF leadership and then evaluated by NSF Grants Officers for financial, policy, and risk considerations.\" No reference to senior appointees, the President's policy priorities, the \u00a7 200.205(b)(2) prohibitions, or the \"peer-review advisory/not binding\" clause. Summary of Changes, Guide 8: \"No significant changes.\"</td>\n<td>OMB's government-wide pre-issuance review and the political-priorities principles are absent from the GFA except vaguely referenced as \"priorities\". However, it would apply to NSF directly under 2 CFR 200 once it is finalized.</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Gold Standard Science (EO 14303) as an award principle</td>\n<td>\u00a7 200.205(b)(5)-(7) (instr. 55): applicants \"should commit to complying with administration policies\u2026respecting Gold Standard Science\"; awards should include \"a commitment to achieving Gold Standard Science\"; for science grants, agencies \"should prioritize institutions that have demonstrated success in implementing Gold Standard Science.\" EO 14303 listed in authority citation.</td>\n<td>Guide 13 \u00a7D \"Gold Standard Science\" (p.140): defines the term and states NSF \"expects the highest standards of scientific rigor, integrity and adherence to tenets of Gold Standard Science.\" Guide 5: DMSP requirements \"align with NSF's Gold Standard Science Implementation Plan.\" Summary of Changes, Guide 5 and Guide 13.</td>\n<td>GFA treats Gold Standard Science as a scientific-rigor and integrity expectation and a data-management driver, not as a senior-appointee award-selection principle.</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Substantive funding prohibitions (DEI, gender ideology, child transition, disparate impact, viewpoint discrimination)</td>\n<td>\u00a7 200.205(b)(2) (instr. 55): awards must not fund racial preferences, \"denial\u2026of the sex binary,\" illegal immigration, or \"anti-American values.\" \u00a7 200.300(b) (instr. 66): prohibits funding DEI/DEIA practices that violate anti-discrimination law, \"gender ideology as defined in Executive Order 14168,\" and child \"transition.\" \u00a7 200.218 (instr. 63): eliminate disparate-impact liability. \u00a7 200.219 (instr. 64): prohibit discriminatory event services.</td>\n<td>Guide 19 (\"Discrimination, Sexual Harassment, and Assault,\" p.173): general nondiscrimination based on \"race, color, national origin, disability, sex, or age.\" Summary of Changes, Guide 19: \"Removes references and requirements to revoked executive orders, including certain non-discrimination, limited English proficiency, and environmental justice requirements,\" and removes ED Section 504 / Title IX coordinator / age-evaluation requirements.</td>\n<td>GFA removes revoked-EO DEI/LEP/EJ content but does not reproduce the OMB DEI, gender-ideology, transition, disparate-impact, or event-services prohibitions. Of course,those would apply to NSF directly under 2 CFR 200 once finalized.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-2-award-type-structure-and-foreigndomestic-scope\">Theme 2: Award type, structure, and foreign/domestic scope</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>5</td>\n<td>Elimination of fixed amount awards and subawards</td>\n<td>\u00a7 200.201(b) (instr. 52): fixed amount awards \"not permitted unless otherwise authorized by Federal statute\"; \u00a7 200.333 (instr. 82): fixed amount subawards \"also are not permitted\"; \u00a7 200.1 (instr. 43.b) removes the definition; \u00a7\u00a7 200.101, 200.102 remove references.</td>\n<td>Summary of Changes, Guide 1: \"Removes references to fixed-price awards.\" No fixed-price or fixed-amount award language remains in the GFA body (verified absence).</td>\n<td>These changes appear to be fully aligned between the two proposals.</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Domestic-first framework for research and development awards</td>\n<td>\u00a7 200.202(e) (instr. 53): R&amp;D awards must go to U.S./State/Tribal entities; foreign entities only where authorized or with a compelling interest \"determined by the agency's senior appointee\"; \"domestic-first framework\"; international elements only if \"in the national interest.\"</td>\n<td>Guide 2 \u00a7C: foreign-organization funding must be \"necessary and beneficial to U.S. research and education and in the national interest of the United States,\" with factors mirroring \u00a7 200.202(e)(3).</td>\n<td>This is fully implemented in the GFA, however, the NSF does not reference the \"senior appointee\" determination.</td>\n</tr>\n<tr>\n<td>7</td>\n<td>Prohibition on covered foreign collaborations</td>\n<td>\u00a7 200.220 (instr. 65): Federal funds may not support collaborations with a \"covered foreign country or covered foreign entity,\" subject to exceptions.</td>\n<td>Guide 14 (\"Research Security\"): foreign disclosure, Malign Foreign Talent Recruitment Program restrictions, foreign-countries-of-concern provisions, foreign financial disclosure. Summary of Changes, Guide 14.</td>\n<td>NSF addresses foreign-collaboration risk through its research security regime; it does not reproduce \u00a7 200.220 verbatim.</td>\n</tr>\n<tr>\n<td>8</td>\n<td>English-language-only announcements and applications</td>\n<td>\u00a7 200.111 (instr. 49): all announcements, applications, and award information \"must be in the English language.\"</td>\n<td>Summary of Changes, Guide 19: removes limited-English-proficiency requirements.</td>\n<td>These are full aligned in the two proposals.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-3-integrity-and-disclosure\">Theme 3: Integrity and disclosure</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>9</td>\n<td>Conflict of interest: disclose agency employment within preceding two years</td>\n<td>\u00a7 200.112 (instr. 50): disclose whether personnel who worked on the application or will work on the award \"were employed by the awarding Federal agency during the preceding two years prior to application submission\u2026for informational purposes.\"</td>\n<td>Guide 14 \"Former NSF Staff\": near-verbatim text, substituting \"NSF\" for \"the awarding Federal agency.\" Summary of Changes, Guide 3.</td>\n<td>This change is consistent between the two policies.</td>\n</tr>\n<tr>\n<td>10</td>\n<td>Mandatory disclosures of criminal/False Claims violations; OIG transmittal</td>\n<td>\u00a7 200.113 (instr. 51): prompt written disclosure of credible evidence of fraud, conflict of interest, bribery, gratuity, or False Claims violations; OIG disclosures \"transmitted to the United States Attorney's Office for the District of Columbia within ten days.\"</td>\n<td>GFA addresses misconduct/disclosure in Guides 13 and 25; research misconduct under 45 CFR 689.</td>\n<td>GFA does not reproduce the \u00a7 200.113 USAO-DC transmittal mechanic.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-4-cost-principles-and-allowability\">Theme 4: Cost principles and allowability</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>11</td>\n<td>Publication costs unallowable</td>\n<td>\u00a7 200.461 (instr. 107): publication costs \"(including page charges, article processing charges (APCs), or similar fees\u2026) are unallowable\" except where required by statute or approved in advance; printing costs allowable; closeout exception at (c)(2).</td>\n<td>Summary of Changes, Guide 12: \"Disallows publication costs consistent with proposed revisions to 2 CFR 200.\" Closeout treatment in Guide 11. But Guide 4 \u00a7B6.3 \"Documentation and Printing (Line G2)\" still permits \"Reports, reprints, page charges and illustrations.\"</td>\n<td>Inconsistent. Stated change and closeout treatment align with \u00a7 200.461, but Guide 4 still lists page charges as allowable.</td>\n</tr>\n<tr>\n<td>12</td>\n<td>De minimis indirect cost rate (15%)</td>\n<td>No change. Preamble Section IX: \"OMB is not proposing updates to the indirect cost rate negotiation system.\" \u00a7 200.414 not amended. 15% is the current rate.</td>\n<td>Guide 4 \u00a7B \"De Minimis Rate\": \"up to 15%\" of MTDC. Summary of Changes, Guide 12: \"consistent with 2 CFR 200\" (no \"proposed\").</td>\n<td>Current-rule. Not traceable to this rule.</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Preference for lower indirect cost rates in award selection</td>\n<td>\u00a7 200.205(b)(3) (instr. 55): \"preference for discretionary awards should be given to institutions with lower indirect cost rates.\"</td>\n<td>Guide 4 indirect-cost guidance describes negotiated and de minimis rates; no award-selection preference for lower rates.</td>\n<td>The GFA refers back to NSF's existing indirect cost-principles throughout the document.</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Prior written approval framework</td>\n<td>\u00a7 200.407 (instr. 96): removes paragraph (d); adds (l) for \u00a7 200.454 memberships and subscriptions; general limitation that agencies \"must not impose additional prior approval requirements without OMB approval.\"</td>\n<td>Guide 11 \u00a7C \"Changes to Projects that Require Prior Approval From NSF\"; \"NSF Prior Approval Matrix.\" Summary of Changes, Guide 12.</td>\n<td>There is no one-to-one match to the narrow \u00a7 200.407 change.</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Other cost-principle revisions (advertising/PR, conferences, memberships, selling/marketing, travel)</td>\n<td>\u00a7\u00a7 200.421, 200.432, 200.454, 200.467, 200.475 (instr. 97, 100, 105, 108, 110).</td>\n<td>Guide 4 references several of these by section (for example, 2 CFR 200.432 for meals, 200.465 home office, 200.445 working-from-home, 200.475 airfare).</td>\n<td>The GFA partially incorporates this by reference. GFA incorporates 2 CFR 200 cost principles generally rather than restating each revision.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-5-property-termination-and-structure\">Theme 5: Property, termination, and structure</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>16</td>\n<td>Equipment management by States and Tribes</td>\n<td>\u00a7 200.313(b) (instr. 72): States and Indian Tribes manage and dispose of equipment under their own laws; other recipients follow (c) through (e).</td>\n<td>Guide 15 \u00a72 \"Title and Use of Equipment\" (p.146): title \"normally vests in the recipient upon acquisition unless the award specifies otherwise\"; references 2 CFR 200.312-200.313. Summary of Changes, Guide 15: align with \"current 2 CFR 200.313.\"</td>\n<td>The single proposed change to \u00a7 200.313(b) is not specifically restated.</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Termination and suspension at agency discretion</td>\n<td>\u00a7 200.340 (instr. 87): new (a)(2) discretionary termination where an award \"does not effectuate program goals, Federal agency priorities, or the national interest\"; exceptions for entitlement/formula/specified programs; \u00a7 200.101(d) makes \u00a7 200.340 govern non-statutory conflicts; \u00a7 200.339 revised (instr. 86).</td>\n<td>Guide 25 \u00a7A (p.197): \"changes in priorities\" listed as a termination reason; \"Termination\" defined by reference to \u00a7 200.201; suspension/termination \"pursuant to a) 2 CFR 200.339 and 2 CFR 200.340.\" Summary of Changes, Guide 25.</td>\n<td>The proposed policies are fully aligned here; this is the mechanism used by DOGE to justify their arbitrary canceling of government contracts in 2025 and now it'll be codified in reg if the rule is finalized.</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Regulatory status, effective date, and conflict precedence</td>\n<td>\u00a7\u00a7 200.101(d), 200.102, 200.106, 200.110 (instr. 44-48): clarify that part 200 governs in non-statutory conflicts (subpart F and \u00a7 200.340), agency adherence to other subtitle A parts, and effective-date structure.</td>\n<td>Guide 1: \"2 CFR 200 takes precedence over any requirements in the GFA,\" citing 2 CFR 200.102.</td>\n<td>Aligned in principle per the GFA statement.</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Definitions revised (\u00a7 200.1)</td>\n<td>\u00a7 200.1 (instr. 43): revises \"Federal award date,\" \"improper payment,\" \"PII,\" \"unobligated balance,\" \"compliance supplement,\" \"notice of funding opportunity\"; removes \"Fixed amount award\" and \"Protected PII.\" Does not change \"Indian Tribe.\"</td>\n<td>GFA defines terms by reference to 2 CFR 200.1 throughout (for example, \"Federal Agency,\" \"Local Government,\" \"Indian Tribe\"). Summary of Changes, Guide 2: replaces \"Tribal Nations\" with \"Indian Tribes,\" align with \"current 2 CFR 200.\"</td>\n<td>It's unclear whether any tribal consultation was done before the change from \"Tribal Nations\" to \"Indian Tribes\" were proposed.</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Prohibition of certain telecommunications/surveillance equipment</td>\n<td>\u00a7 200.216 (instr. 62): retains prohibition on covered telecommunications and video surveillance equipment/services.</td>\n<td>Guide 4 covers the American Security Drone Act of 2023 (covered drones), a separate authority.</td>\n<td>Other authority. \u00a7 200.216 is not specifically mentioned in the GFA but GFA's drone provision rests on statute, not \u00a7 200.216.</td>\n</tr>\n</tbody>\n</table>","doi":"https://doi.org/10.59350/jgh5j-ch105","guid":"https://www.chrismarcum.com/marcum-blog/2026/06/30/A%20Crosswalk%20Between%20OMB%20and%20NSF%20Proposed%20Rules%20on%20Grantmaking","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"aajd5-7q411","summary":"The Office of Management and Budget (OMB) has proposed revisions to its Uniform Guidance under 2 CFR 200, which sets government-wide standards for federal financial assistance.","tags":["General","Government"],"title":"A Crosswalk Between OMB and NSF Proposed Rules on Grantmaking","updated_at":1782822454,"url":"https://www.chrismarcum.com/marcum-blog/2026/06/30/A-Crosswalk-Between-OMB-and-NSF-Proposed-Rules-on-Grantmaking.html","version":"v1"}},{"document":{"authors":[{"affiliation":[{"id":"https://ror.org/0153tk833","name":"University of Virginia"}],"contributor_roles":[],"family":"Turner","given":"Stephen D.","url":"https://orcid.org/0000-0001-9140-9028"}],"blog":{"authors":[{"name":"Stephen Turner"}],"community_id":"382941a7-2ffa-41df-8bbb-5f772188517f","created":1780876800,"current_feed_url":null,"description":"A practicing data scientist's take on AI, genomics, biosecurity, and the ways AI is reshaping how science gets done. Weekly updates from the field. Occasional notes on programming.","favicon":"https://rogue-scholar.org/api/communities/382941a7-2ffa-41df-8bbb-5f772188517f/logo","feed_format":"application/rss+xml","feed_url":"https://blog.stephenturner.us/feed","filter":null,"generator":"Substack","home_page_url":"https://blog.stephenturner.us","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"stephenturner","status":"active","subfield":"1311","title":"Paired Ends","updated":1782814365,"use_api":null},"blog_name":"Paired Ends","blog_slug":"stephenturner","content_html":"<p>I've used <a href=\"https://www.qedscience.com/\">QED Science</a> and the <a href=\"https://natureresearchassistant.com/\">Nature Research Assistant</a> to review manuscripts I'm writing before I submit. They're fine. </p><p>There's an argument to be made for openly developing SKILL.md files or prompts for AI-assisted peer review, so others can take, use, and modify to fit their needs. I'm sure all QED/Nature/whatever are doing is wrapping a frontier model with a detailed SKILL.md and/or a lightweight harness, with connectors to PubMed, bioRxiv, etc. </p><p>A few weeks ago I wrote a Claude skill to do just that. It leans on <a href=\"https://consensus.app/\">Consensus</a>, and the <a href=\"https://consensus.app/home/mcp/\">Consensus Claude MCP connector</a>, so that all the resources it cites during a mock peer review come from actual published and peer-reviewed literature.</p><p>Here's the skill: <strong><a href=\"https://github.com/stephenturner/skill-peer-review-assistant\">github.com/stephenturner/skill-peer-review-assistant</a></strong>.</p><p>The peer review assistant takes a file manuscript and produces a structured peer review report grounded in live literature searches through Consensus. It runs several targeted queries: checking whether the paper's central claims hold up against the broader literature, finding recent high-impact papers absent from the reference list, and assessing whether the methods the authors used have been superseded. The output is a Word document with named sections covering background accuracy, missing citations, methods assessment, major and minor concerns, a clear recommendation, and a full audit log of every search query and result count. It only cites what Consensus actually returned in that session, flags any searches that failed or hit plan-tier caps, and distinguishes between concerns that threaten the paper's conclusions and those that don't.</p><p class=\"button-wrapper\" data-attrs=\"{&quot;url&quot;:&quot;https://github.com/stephenturner/skill-peer-review-assistant&quot;,&quot;text&quot;:&quot;Claude Skill: Mock Peer Review&quot;,&quot;action&quot;:null,&quot;class&quot;:null}\" data-component-name=\"ButtonCreateButton\"><a class=\"button primary\" href=\"https://github.com/stephenturner/skill-peer-review-assistant\"><span>Claude Skill: Mock Peer Review</span></a></p><p>In the workshop I taught a couple of weeks ago I demonstrated using this skill on an actual manuscript I had in prep. It's toward the end of the <a href=\"https://blog.stephenturner.us/p/ai-literature-review-consensus-workshop-recording\">video here</a>.</p><div class=\"digest-post-embed\" data-attrs=\"{&quot;nodeId&quot;:&quot;36deb213-4658-4711-aa8c-bd38b6914b23&quot;,&quot;caption&quot;:&quot;Last week I taught a workshop on AI-powered Literature Review &amp; Synthesis as part of the AI Upskilling series run by Ryan Wright, sponsored by the Provost's Office. Two workshops, in fact: over 135 people registered so we split the workshop into an in-person session one day and Zoom the next. Here's the recording of the Zoom session.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI-powered Literature Review &amp; Synthesis&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1536121,&quot;name&quot;:&quot;Stephen D. Turner&quot;,&quot;bio&quot;:&quot;https://stephenturner.us/&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WGQE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1706730-c948-4acf-9c45-b14b4e3da1b9_651x651.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-23T18:23:48.806Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6c2c1c0-7578-4056-9996-e18e1d53f33a_5712x4284.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.stephenturner.us/p/ai-literature-review-consensus-workshop-recording&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:203285373,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:6,&quot;publication_id&quot;:161890,&quot;publication_name&quot;:&quot;Paired Ends&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfDI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894081de-334e-4173-8a0c-e64762c2c838_1030x1030.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}\"></div><p>For demonstration purposes here, I ran the skill on a paper that I already published.</p><div class=\"callout-block\" data-callout=\"true\"><p>Nagraj VP, Benefield AE, Williams D, &amp; Turner SD. (2024). <strong>PLANES: Plausibility Analysis of Epidemiological Signals.</strong> <em>PLoS ONE</em> 20.3 (2025): e0320442. DOI: <a href=\"http://10.1371/journal.pone.0320442\">10.1371/journal.pone.0320442</a>.</p></div><p>I wrote about the paper here.</p><div class=\"digest-post-embed\" data-attrs=\"{&quot;nodeId&quot;:&quot;46b75932-0cdf-4ab9-928c-7ae84ea0e161&quot;,&quot;caption&quot;:&quot;Update March 2025: The preprint described in this paper is now peer-reviewed and published in PLoS ONE.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;PLANES: Plausibility Analysis of Epidemiological Signals&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1536121,&quot;name&quot;:&quot;Stephen D. Turner&quot;,&quot;bio&quot;:&quot;https://stephenturner.us/&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WGQE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1706730-c948-4acf-9c45-b14b4e3da1b9_651x651.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-09-03T11:56:00.519Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_nlo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b2a85f-6645-49e8-ad87-2446bf82eaf3_1280x962.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.stephenturner.us/p/planes-plausibility-analysis-of-epidemiological-signals-rplanes-r-package&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:148220621,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:161890,&quot;publication_name&quot;:&quot;Paired Ends&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfDI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894081de-334e-4173-8a0c-e64762c2c838_1030x1030.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}\"></div><p>Here's the peer review I got back.</p><div class=\"file-embed-wrapper\" data-component-name=\"FileToDOM\"><div class=\"file-embed-container-reader\"><div class=\"file-embed-container-top\"><image class=\"file-embed-thumbnail-default\" src=\"https://substackcdn.com/image/fetch/$s_!0Cy0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg\"></image><div class=\"file-embed-details\"><div class=\"file-embed-details-h1\">PLANES peer review</div><div class=\"file-embed-details-h2\">60.7KB \u2219 PDF file</div></div><a class=\"file-embed-button wide\" href=\"https://blog.stephenturner.us/api/v1/file/0b62e2bc-9be4-4979-a4d5-9ba6a9ecc295.pdf\"><span class=\"file-embed-button-text\">Download</span></a></div><div class=\"file-embed-description\">This review was prepared with assistance from Consensus (consensus.app), which was used to search peer-reviewed literature for claim verification, citation completeness, and methods assessment. All search results are documented in the Audit Log.</div><a class=\"file-embed-button narrow\" href=\"https://blog.stephenturner.us/api/v1/file/0b62e2bc-9be4-4979-a4d5-9ba6a9ecc295.pdf\"><span class=\"file-embed-button-text\">Download</span></a></div></div><p>The <a href=\"https://github.com/stephenturner/skill-peer-review-assistant\">Claude skill</a> I wrote leaves a lot to be desired. I like how Nature Review Assistant goes through the entire manuscript and calls out problems and unsubstantiated claims as inline comments in a Word docx. But that's the point \u2014 if we develop these skills and harnesses as a community in the open, we can all work to make these better and customize them to particular fields or journals. </p><p>In addition to the benefits of open-source / community development, I also have the benefit of consolidated control over my data. If you're paying for Claude or you're on an enterprise plan, they're not training on your inputs or outputs.<a class=\"footnote-anchor\" data-component-name=\"FootnoteAnchorToDOM\" id=\"footnote-anchor-1\" href=\"#footnote-1\" target=\"_self\">1</a> Keeping the ecosystem contained means I have fewer third party companies' TOS I need to keep track of. </p><p class=\"button-wrapper\" data-attrs=\"{&quot;url&quot;:&quot;https://blog.stephenturner.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}\" data-component-name=\"ButtonCreateButton\"><a class=\"button primary\" href=\"https://blog.stephenturner.us/subscribe?\"><span>Subscribe now</span></a></p><div class=\"footnote\" data-component-name=\"FootnoteToDOM\"><a id=\"footnote-1\" href=\"#footnote-anchor-1\" class=\"footnote-number\" contenteditable=\"false\" target=\"_self\">1</a><div class=\"footnote-content\"><p>Personally, I'm not too concerned here anyway. The whole point of writing a manuscript is to eventually publish said manuscript. </p></div></div>","doi":"https://doi.org/10.59350/b35aa-bp637","guid":"204249018","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"06spz-x3g69","summary":"Open-source skill to use Claude + Consensus for pre-submission mock peer review backed by citations to published, peer-reviewed literature.","tags":["AI"],"title":"A Claude skill for pre-submission peer review","updated_at":1782815912,"url":"https://blog.stephenturner.us/p/claude-skill-peer-review-consensus","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"name":"Atarraya"}],"blog":{"authors":null,"community_id":"f17066f5-0dbf-48d0-a413-b22a79861a94","created":1723852800,"current_feed_url":null,"description":"Nuestras historias","favicon":"https://rogue-scholar.org/api/communities/f17066f5-0dbf-48d0-a413-b22a79861a94/logo","feed_format":"application/atom+xml","feed_url":"https://blogatarraya.com/feed/atom/","filter":null,"generator":"Other","home_page_url":"https://blogatarraya.com","issn":null,"language":"spa","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"atarraya","status":"active","subfield":"1202","title":"BLOG ATARRAYA","updated":1782814408,"use_api":true},"blog_name":"BLOG ATARRAYA","blog_slug":"atarraya","content_html":"<div></div>","doi":"https://doi.org/10.59350/d5dfv-npf07","guid":"https://blogatarraya.com/?p=6945","language":"es","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782086400,"rid":"qz2jb-c2f60","tags":["Historia De La Iglesia","Historia De La Prensa","Historia Pol\u00edtica","N\u00famero 30"],"title":"Entre la fe y la rebeld\u00eda: los sacerdotes que desafiaron a la Iglesia en Zacatecas a mediados del siglo XIX","updated_at":1782815717,"url":"https://blogatarraya.com/2026/06/22/entre-la-fe-y-la-rebeldia-los-sacerdotes-que-desafiaron-a-la-iglesia-en-zacatecas-a-mediados-del-siglo-xix/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"name":"Atarraya"}],"blog":{"authors":null,"community_id":"f17066f5-0dbf-48d0-a413-b22a79861a94","created":1723852800,"current_feed_url":null,"description":"Nuestras historias","favicon":"https://rogue-scholar.org/api/communities/f17066f5-0dbf-48d0-a413-b22a79861a94/logo","feed_format":"application/atom+xml","feed_url":"https://blogatarraya.com/feed/atom/","filter":null,"generator":"Other","home_page_url":"https://blogatarraya.com","issn":null,"language":"spa","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"atarraya","status":"active","subfield":"1202","title":"BLOG ATARRAYA","updated":1782814408,"use_api":true},"blog_name":"BLOG ATARRAYA","blog_slug":"atarraya","content_html":"<div></div>","doi":"https://doi.org/10.59350/7z9sq-grh46","guid":"https://blogatarraya.com/?p=6950","language":"es","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782691200,"rid":"hddc5-jx206","tags":["Historia De Las Mujeres","Historia Social","N\u00famero 30"],"title":"Las madres italianas ante la Primera Guerra Mundial en Buenos Aires (1914-1918)","updated_at":1782815716,"url":"https://blogatarraya.com/2026/06/29/las-madres-italianas-ante-la-primera-guerra-mundial-en-buenos-aires-1914-1918/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"name":"The rOpenSci Team"}],"blog":{"authors":[{"name":"The rOpenSci Team"}],"community_id":"19c501a7-647b-4a11-9f5e-cf400817cce3","created":1780876800,"current_feed_url":null,"description":"Open Tools and R Packages for Open Science","favicon":"https://rogue-scholar.org/api/communities/19c501a7-647b-4a11-9f5e-cf400817cce3/logo","feed_format":"application/feed+json","feed_url":"https://ropensci.org/blog/index.json","filter":null,"generator":"Other","home_page_url":"https://ropensci.org/blog","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"ropensci","status":"active","subfield":"1710","title":"rOpenSci - open tools for open science","updated":1782805081,"use_api":null},"blog_name":"rOpenSci - open tools for open science","blog_slug":"ropensci","content_html":"<!-- Before sending DELETE THE INDEX_CACHE and re-knit! --><p>Dear rOpenSci friends, it's time for our monthly news roundup! <!-- blabla --> You can read this post <a href=\"https://ropensci.org/blog/2026/06/30/news-june-2026\">on our blog</a>. Now let's dive into the activity at and around rOpenSci!</p><h2 id=\"ropensci-hq\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#ropensci-hq\"> <small>\ud83d\udd17</small></a>rOpenSci HQ</h2><h3 id=\"champions-program-update\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#champions-program-update\"> <small>\ud83d\udd17</small></a>Champions Program update</h3><p>We have two concurrent cohorts, both in Spanish.</p><p>The 2025\u20132026 cohort is nearing the end of its participation in the program, so we are organizing the closing meeting and the overall evaluation.</p><p>The 2026\u20132027 cohort is continuing their training activities, meeting with their mentors, and starting to work on their packages, and they have been formally introduced on our blog! Read all about the <a href=\"https://ropensci.org/blog/2026/06/09/champions-2026/\">11 new Champions</a>.</p><h3 id=\"new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"> <small>\ud83d\udd17</small></a>New editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney</h3><p>We're thrilled to <a href=\"https://ropensci.org/blog/2026/06/11/neweditorsq22026/\">introduce</a> new editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney. An official welcome and thank you to all three!</p><h3 id=\"a-new-guide-organizing-events-for-first-time-contributors\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#a-new-guide-organizing-events-for-first-time-contributors\"> <small>\ud83d\udd17</small></a>A new guide: Organizing Events for First-time Contributors</h3><p>Steffi LaZerte and Yanina Bellini Saibene released a fantastic new rOpenSci guide! Learn how to organize events for first-time contributors such as mini-hackathons and mini-translathons. Read more in the <a href=\"https://ropensci.org/blog/2026/06/02/ftc-guide/\">release announcement</a>.</p><h3 id=\"r-universe-updates\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#r-universe-updates\"> <small>\ud83d\udd17</small></a>R-Universe updates</h3><p>\"Five recent R-Universe features you might have missed\": A clickbait title for a blog post you don't want to miss! \ud83d\ude09 Jeroen Ooms <a href=\"https://ropensci.org/blog/2026/06/07/r-universe-updates/\">describes five recent additions</a> to the R-Universe platform:</p><ul><li>Social media cards that actually look good</li><li>PACKAGES.rds support (or: implementing R internals in JavaScript)</li><li>Fancy sort/filter bars in the WebUI</li><li>For the impatient: trigger a sync manually</li><li>Making check results easier to find and share</li></ul><p>In other news, R-universe user Tom Palmer also wrote about five things: <a href=\"https://remlapmot.github.io/post/2026/runiverse-tips/\">\"Five tips for managing your R-universe \ud83d\ude80\"</a>. You won't believe the fifth one. \ud83d\ude09</p><h3 id=\"yanina-joins-the-2026-sovereign-tech-fellowship\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#yanina-joins-the-2026-sovereign-tech-fellowship\"> <small>\ud83d\udd17</small></a>Yanina Joins the 2026 Sovereign Tech Fellowship</h3><p>We're excited to share that our Community Manager, Yanina Bellini Saibene, <a href=\"https://www.sovereign.tech/news/meet-the-2026-sovereign-tech-fellows\">has been selected as a 2026 Sovereign Tech Fellow</a>. During the fellowship, she will focus on making open source more accessible through improved contribution guidance, newcomer-focused mini-hackathons, multilingual training resources, and more sustainable localization practices across communities in the R ecosystem. These efforts will build on and extend rOpenSci's work in community building, mentorship, and open science.</p><h3 id=\"quincea\u00f1era-celebrating-15-years-together\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#quincea%c3%b1era-celebrating-15-years-together\"> <small>\ud83d\udd17</small></a><em>Quincea\u00f1era</em>: celebrating 15 years together</h3><p>In June, we held two community events and a co-working session to mark rOpenSci's 15th anniversary. Across all three sessions, people shared memories of their first contribution, discussed ideas for the next 15 years, and reminded us of how genuinely welcoming rOpenSci <em>and</em> it's community are. There's more to come :-) Keep an eye out for what we have planned for the rest of the year.</p><h3 id=\"software-peer-review-updates\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-peer-review-updates\"> <small>\ud83d\udd17</small></a>Software Peer-Review updates</h3><p>Community member <a href=\"https://ropensci.org/author/athanasia-mo-mowinckel/\">Athanasia Mo Mowinckel</a> has started a new AI agent \"skills\" repo at <a href=\"https://github.com/ropensci-review-tools/ropensci-skills\"><code>ropensci-review-tools/ropensci-skills</code></a>. The repo holds a variety of \"skills\", which are human-readable markdown files, for AI agents to assist in preparing software for peer-review. Anybody thinking about using AI systems to prepare software for peer-review is encouraged to try out these experimental skills, and to help us improve them for others by opening issues or pull requests in <a href=\"https://github.com/ropensci-review-tools/ropensci-skills\">the GitHub repo</a>.</p><p>Our recent updates to the <a href=\"https://ropensci.org/blog/2026/06/01/goodpractice/\">goodpractice package</a> have also been enhanced with an all-new AI \"skill\". <a href=\"https://github.com/ropensci-review-tools/goodpractice/blob/main/inst/skills/goodpractice4agents.md\">This skill</a> instructs agents to edit and improve your package's code to comply with the full suite of goodpractice checks. You can try it out with the package's new <a href=\"https://docs.ropensci.org/goodpractice/reference/use_skill_gp.html\"><code>use_skill_gp()</code> function</a>.</p><h3 id=\"coworking\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#coworking\"> <small>\ud83d\udd17</small></a>Coworking</h3><p>Read <a href=\"https://ropensci.org/blog/2023/06/21/coworking/\">all about coworking</a>!</p><ul><li>Tuesday July 7nd 2026, 09:00 Americas Pacific (16:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-07/\">\"Debugging in R\"</a>, with <a href=\"https://ropensci.org/author/yanina-bellini-saibene/\">Yanina Bellini Saibene</a> and cohost <a href=\"https://ropensci.org/author/shannon-pileggi\">Shannon Pileggi</a>.<ul><li>Read up on debugging in R.</li><li>Meet community host, Shannon Pileggi, and discuss tips and tricks for debugging in R.</li></ul></li><li>Tuesday August 4th, 09:00 Australia Western (01:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-08/\">\"Vale and Text Linting\"</a>, with <a href=\"https://ropensci.org/author/steffi-lazerte\">Steffi LaZerte</a> and cohost <a href=\"https://ropensci.org/author/jonathan-carroll/\">Jonathan Carroll</a>.<ul><li>Read up on text linting.</li><li>Setup a linting framework for your projects.</li><li>Meet co-host, Jonathan Carroll, and discuss Vale and text linting.</li></ul></li><li>Tuesday September 1st, 14:00 Europe Central (12:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-09/\">\"Getting to Know SORTEE\"</a>, with <a href=\"https://ropensci.org/author/steffi-lazerte\">Steffi LaZerte</a> and cohost <a href=\"https://ropensci.org/author/ed-ivimey-cook/\">Ed Ivimey-Cook</a>.<ul><li>Visit <a href=\"https://sortee.org/\">SORTEE</a> (Society for Open, Reliable, and Transparent Ecology and Evolutionary Biology).</li><li>Meet co-host, Ed Ivimey-Cook, and learn more about SORTEE and how you might get involved.</li></ul></li></ul><p>And remember, you can always cowork independently on work related to R, work on packages that tend to be neglected, or work on what ever you need to get done!</p><h2 id=\"software-package\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-package\"> <small>\ud83d\udd17</small></a>Software \ud83d\udce6</h2><p>The following two packages recently became a part of our software suite:</p><ul><li><p><a href=\"https://docs.ropensci.org/pvEBayes\">pvEBayes</a>, developed by Yihao Tan together with Marianthi Markatou, Saptarshi Chakraborty, and Raktim Mukhopadhyay: A suite of empirical Bayes methods to use in pharmacovigilance. Contains various model fitting and post-processing functions. For more details see Tan et al.\u00a0(2025) <a href=\"https://doi.org/10.1002/sim.70195\">https://doi.org/10.1002/sim.70195</a>, <a href=\"https://doi.org/10.48550/arXiv.2512.01057\">https://doi.org/10.48550/arXiv.2512.01057</a>; Koenker and Mizera (2014) <a href=\"https://doi.org/10.1080/01621459.2013.869224\">https://doi.org/10.1080/01621459.2013.869224</a>; Efron (2016) <a href=\"https://doi.org/10.1093/biomet/asv068\">https://doi.org/10.1093/biomet/asv068</a>. It has been <a href=\"https://github.com/ropensci/software-review/issues/760\">reviewed</a> by Kathryn Doering and Collin Cademartori.</p></li><li><p><a href=\"https://docs.ropensci.org/nycOpenData\">nycOpenData</a>, developed by Christian Martinez: Provides a unified set of helper functions to access datasets from the NYC Open Data platform <a href=\"https://opendata.cityofnewyork.us/\">https://opendata.cityofnewyork.us/</a>. Functions return results as tidy tibbles and support optional filtering, sorting, and row limits via the Socrata API. The package includes endpoints for 311 service requests, DOB job applications, juvenile justice metrics, school safety, environmental data, event permitting, and additional citywide datasets. It has been <a href=\"https://github.com/ropensci/software-review/issues/750\">reviewed</a> by Haolin Dong and Michael Pascale.</p></li></ul><p>Discover <a href=\"https://ropensci.org/packages\">more packages</a>, read more about <a href=\"https://ropensci.org/software-review\">Software Peer Review</a>.</p><h3 id=\"new-versions\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#new-versions\"> <small>\ud83d\udd17</small></a>New versions</h3><p>The following seventeen packages have had an update since the last newsletter: <a href=\"https://docs.ropensci.org/weathercan\" title=\"Download Weather Data from Environment and Climate Change Canada\">weathercan</a> (<a href=\"https://github.com/ropensci/weathercan/releases/tag/v1.0.0\"><code>v1.0.0</code></a>), <a href=\"https://docs.ropensci.org/occCite\" title=\"Querying and Managing Large Biodiversity Occurrence Datasets\">occCite</a> (<a href=\"https://github.com/ropensci/occCite/releases/tag/v0.6.2\"><code>v0.6.2</code></a>), <a href=\"https://docs.ropensci.org/lightr\" title=\"Read Spectrometric Data and Metadata\">lightr</a> (<a href=\"https://github.com/ropensci/lightr/releases/tag/v2.0.0\"><code>v2.0.0</code></a>), <a href=\"https://docs.ropensci.org/gutenbergr\" title=\"Download and Process Public Domain Works from Project Gutenberg\">gutenbergr</a> (<a href=\"https://github.com/ropensci/gutenbergr/releases/tag/v0.5.2\"><code>v0.5.2</code></a>), <a href=\"https://docs.ropensci.org/slopes\" title=\"Calculate Slopes of Roads, Rivers and Trajectories\">slopes</a> (<a href=\"https://github.com/ropensci/slopes/releases/tag/v2.0.0\"><code>v2.0.0</code></a>), <a href=\"https://docs.ropensci.org/qualtRics\" title=\"Download Qualtrics Survey Data\">qualtRics</a> (<a href=\"https://github.com/ropensci/qualtRics/releases/tag/v3.3.0\"><code>v3.3.0</code></a>), <a href=\"https://docs.ropensci.org/srr\" title=\"rOpenSci Software Review Roclets\">srr</a> (<a href=\"https://github.com/ropensci-review-tools/srr/releases/tag/v1.0.0\"><code>v1.0.0</code></a>), <a href=\"https://docs.ropensci.org/goodpractice\" title=\"Advice on R Package Building\">goodpractice</a> (<a href=\"https://github.com/ropensci-review-tools/goodpractice/releases/tag/v1.1\"><code>v1.1</code></a>), <a href=\"https://docs.ropensci.org/pkgmatch\" title=\"Find R Packages Matching Either Descriptions or Other R Packages\">pkgmatch</a> (<a href=\"https://github.com/ropensci-review-tools/pkgmatch/releases/tag/v0.5.4\"><code>v0.5.4</code></a>), <a href=\"https://docs.ropensci.org/pkgstats\" title=\"Metrics of R Packages\">pkgstats</a> (<a href=\"https://github.com/ropensci-review-tools/pkgstats/releases/tag/v0.2.3\"><code>v0.2.3</code></a>), <a href=\"https://docs.ropensci.org/cffr\" title=\"Generate Citation File Format (CFF) Metadata for R Packages\">cffr</a> (<a href=\"https://github.com/ropensci/cffr/releases/tag/v1.4.1\"><code>v1.4.1</code></a>), <a href=\"https://docs.ropensci.org/dfms\" title=\"Dynamic Factor Models\">dfms</a> (<a href=\"https://github.com/ropensci/dfms/releases/tag/v1.0.1\"><code>v1.0.1</code></a>), <a href=\"https://docs.ropensci.org/osmdata\" title=\"Import OpenStreetMap Data as Simple Features or Spatial Objects\">osmdata</a> (<a href=\"https://github.com/ropensci/osmdata/releases/tag/v0.4.0\"><code>v0.4.0</code></a>), <a href=\"https://docs.ropensci.org/aRxiv\" title=\"Interface to the arXiv API\">aRxiv</a> (<a href=\"https://github.com/ropensci/aRxiv/releases/tag/0.20\"><code>0.20</code></a>), <a href=\"https://docs.ropensci.org/Athlytics\" title=\"A Reproducible Framework for Endurance Data Analysis\">Athlytics</a> (<a href=\"https://github.com/ropensci/Athlytics/releases/tag/v1.0.6\"><code>v1.0.6</code></a>), <a href=\"https://docs.ropensci.org/ReLTER\" title=\"An Interface for the eLTER Community\">ReLTER</a> (<a href=\"https://github.com/ropensci/ReLTER/releases/tag/3.1.1\"><code>3.1.1</code></a>), and <a href=\"https://docs.ropensci.org/read.abares\" title=\"Read Australian Agricultural Data from Government Agencies\">read.abares</a> (<a href=\"https://github.com/ropensci/read.abares/releases/tag/v3.0.0\"><code>v3.0.0</code></a>).</p><p>The writexl package has a <a href=\"https://github.com/ropensci/writexl/pull/98#issuecomment-4191858158\">new maintainer</a>, Bill Denney. NLMR is now maintained by <a href=\"https://github.com/ropensci/NLMR/issues/116#issuecomment-4280937012\">Jakub Nowosad</a>.</p><h2 id=\"software-peer-review\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-peer-review\"> <small>\ud83d\udd17</small></a>Software Peer Review</h2><p>There are eighteen recently closed and active submissions and 4 submissions on hold. Issues are at different stages:</p><ul><li><p>Four at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%226/approved%22\">'6/approved'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/760\">pvEBayes</a>, Empirical Bayes Methods for Pharmacovigilance. Submitted by <a href=\"https://github.com/YihaoTancn\">Yihao Tan</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/750\">nycOpenData</a>, Convenient Access to NYC Open Data API Endpoints. Submitted by <a href=\"https://github.com/martinezc1\">Christian Martinez</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/730\">ernest</a>, A Toolkit for Nested Sampling. Submitted by <a href=\"https://github.com/kylesnap\">Kyle Dewsnap</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/671\">pkgmatch</a>, Find R Packages Matching Either Descriptions or Other R Packages. Submitted by <a href=\"https://mpadge.github.io\">mark padgham</a>.</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%225/awaiting-reviewer(s)-response%22\">'5/awaiting-reviewer(s)-response'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/762\">lakefetch</a>, Calculate Fetch and Wave Exposure for Lake Sampling Points. Submitted by <a href=\"https://github.com/jeremylfarrell\">jeremylfarrell</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/704\">priorsense</a>, Prior Diagnostics and Sensitivity Analysis. Submitted by <a href=\"https://github.com/n-kall\">Noa Kallioinen</a>. (Stats).</p></li></ul></li><li><p>Five at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%224/review(s)-in-awaiting-changes%22\">'4/review(s)-in-awaiting-changes'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/744\">RAQSAPI</a>, A Simple Interface to the US EPA Air Quality System Data Mart API. Submitted by <a href=\"https://github.com/mccroweyclinton-EPA\">mccroweyclinton-EPA</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/743\">RAMEN</a>, RAMEN: Regional Association of Methylome variability with the Exposome and geNome. Submitted by <a href=\"https://erick-navarrodelgado.netlify.app\">Erick Navarro-Delgado</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/741\">logolink</a>, An Interface for Running NetLogo Simulations. Submitted by <a href=\"https://danielvartan.com\">Daniel Vartanian</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/718\">rcrisp</a>, Automate the Delineation of Urban River Spaces. Submitted by <a href=\"https://github.com/cforgaci\">Claudiu Forgaci</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/615\">galamm</a>, Generalized Additive Latent and Mixed Models. Submitted by <a href=\"https://osorensen.no\">\u00d8ystein S\u00f8rensen</a>. (Stats).</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%223/reviewer(s)-assigned%22\">'3/reviewer(s)-assigned'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/765\">ciecl</a>, International Classification of Diseases ICD-10/ICD-11 for Chile. Submitted by <a href=\"https://github.com/Rodotasso\">Rodolfo Tasso</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/763\">EpiStrainDynamics</a>, Infer temporal trends of multiple pathogens. Submitted by <a href=\"https://www.smwindecker.com\">Saras Windecker</a>. (Stats).</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%222/seeking-reviewer(s)%22\">'2/seeking-reviewer(s)'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/740\">fcmconfr</a>, Fuzzy Cognitive Map Analysis in R. Submitted by <a href=\"https://github.com/bhroston\">benroston</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/717\">coevolve</a>, Fit Bayesian Generalized Dynamic Phylogenetic Models using Stan. Submitted by <a href=\"https://scottclaessens.github.io/\">Scott Claessens</a>. (Stats).</p></li></ul></li><li><p>Three at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%221/editor-checks%22\">'1/editor-checks'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/775\">grumpy</a>, Read NumPy .npy and .npz Files. Submitted by <a href=\"https://hugogruson.fr/\">Hugo Gruson</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/752\">metasurvey</a>, Reproducible Survey Data Processing with Step Pipelines. Submitted by <a href=\"https://github.com/mauroloprete\">Mauro Loprete</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/725\">LBDiscoverAnalysis</a>, Co-occurrence Discovery Models and Visualization for Biomedical LBD. Submitted by <a href=\"https://github.com/chaoliu-cl\">Chao Liu</a>.</p></li></ul></li></ul><p>Find out more about <a href=\"https://ropensci.org/software-review\">Software Peer Review</a> and how to get involved.</p><h2 id=\"on-the-blog\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#on-the-blog\"> <small>\ud83d\udd17</small></a>On the blog</h2><!-- Do not forget to rebase your branch! --><h3 id=\"software-review\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-review\"> <small>\ud83d\udd17</small></a>Software Review</h3><ul><li><p><a href=\"https://ropensci.org/blog/2026/06/11/neweditorsQ22026\">Ronny Hernandez Mora, Joel Nitta, and Nick Tierney Join rOpenSci Software Peer Review Editorial Team</a> by Ronny Hernandez Mora, Joel Nitta, Nicholas Tierney, and Yanina Bellini Saibene. Introducing three new editors for rOpenSci software peer review.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/19/maintainers-month\">Celebrating Our Maintainers during Maintainers Month</a> by Yanina Bellini Saibene. A Look Back at our Maintainer Month 2026 social media campaign.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/01/goodpractice\">Our goodpractice Package Has New Superpowers</a> by Mark Padgham and Athanasia Mo Mowinckel. We have worked hard over the past few months on major upgrades to our goodpractice package. Checks are now grouped into categories, making it easier to control which checks are run. The biggest change has been adding over 100 new checks, from new lints to many new CRAN checks.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/02/ftc-guide\">A New Guide: Organizing Events for First-time Contributors</a> by Steffi LaZerte and Yanina Bellini Saibene. We introduce our Guide book for organizing events to support first-time contributors to FOSS.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/07/r-universe-updates\">Five recent R-universe features you might have missed</a> by Jeroen Ooms. In this technote we look at a few recent additions that make R-universe a little nicer, faster, or more convenient to use.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/09/champions-2026\">Eleven Latin American Voices for Open Science: The New Cohort of Champions rOpenSci 2026</a> by Basti\u00e1n Olea Herrera, Denisse Fierro Arcos, Durga Valentina Linares Herrera, Evelia Lorena Coss Navarrete, Gladys Choque Ulloa, Jos\u00e9 Daniel Conejeros, Linda Cabrera Orellana, Mar\u00eda Florencia Tames, Marina Cecilia Cock, Patricia A. Loto, Estefania Torrej\u00f3n, and Yanina Bellini Saibene. Introducing 11 new rOpenSci Champions. Other languages: <a href=\"https://ropensci.org/es/blog/2026/06/09/champions-2026\" lang=\"es\">Once voces latinoamericanas para la ciencia abierta: la nueva cohorte de Campeon(a|e)s rOpenSci 2026 (es)</a>.</p></li></ul><h2 id=\"calls-for-contributions\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-contributions\"> <small>\ud83d\udd17</small></a>Calls for contributions</h2><h3 id=\"calls-for-maintainers\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-maintainers\"> <small>\ud83d\udd17</small></a>Calls for maintainers</h3><p>If you're interested in maintaining any of the R packages below, you might enjoy reading our blog post <a href=\"https://ropensci.org/blog/2023/02/07/what-does-it-mean-to-maintain-a-package/\">What Does It Mean to Maintain a Package?</a>.</p><ul><li><p><a href=\"https://docs.ropensci.org/charlatan\">charlatan</a>, create fake data in R. <a href=\"https://github.com/ropensci/charlatan/issues/150\">Issue for volunteering</a>.</p></li><li><p><a href=\"https://docs.ropensci.org/hddtools\">hddtools</a>, Tools to discover hydrological data, accessing catalogues and databases from various data providers. <a href=\"https://github.com/ropensci/hddtools/issues/36\">Issue for volunteering</a>.</p></li></ul><h3 id=\"calls-for-contributions-1\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-contributions-1\"> <small>\ud83d\udd17</small></a>Calls for contributions</h3><p>Refer to our <a href=\"https://ropensci.org/help-wanted/\">help wanted page</a> \u2013 before opening a PR, we recommend asking in the issue whether help is still needed.</p><h2 id=\"package-development-corner\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#package-development-corner\"> <small>\ud83d\udd17</small></a>Package development corner</h2><p>Some useful information for R package developers. \ud83d\udc40</p><h3 id=\"goodpractices-new-features-and-behind-the-scene-notes\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#goodpractices-new-features-and-behind-the-scene-notes\"> <small>\ud83d\udd17</small></a>goodpractice's new features and behind-the-scene notes</h3><p>Software Review Lead Mark Padgham and long-time community member <a href=\"https://ropensci.org/author/athanasia-mo-mowinckel/\">Athanasia Mo Mowinckel</a> have written a blog post particularly relevant to package developers for two reasons:</p><ul><li>Learn how goodpractice, which helps make your package better, has improved.</li><li>Read how Mark and Mo collaborated, including their use of LLMs in the development process.</li></ul><h3 id=\"dumb-ways-for-an-open-source-project-to-die\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#dumb-ways-for-an-open-source-project-to-die\"> <small>\ud83d\udd17</small></a>Dumb Ways for an Open Source Project to Die</h3><p>If you're interested in open-source software projects' survivability, you'll enjoy this <a href=\"https://nesbitt.io/2026/05/19/dumb-ways-for-an-open-source-project-to-die.html\">write-up by Andrew Nesbitt</a> shared by Yanina Bellini Saibene.</p><h3 id=\"refactoring-with-jarl-unused-functions-and-more\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#refactoring-with-jarl-unused-functions-and-more\"> <small>\ud83d\udd17</small></a>Refactoring with Jarl: unused functions and more</h3><p>Hannah Frick and Ma\u00eblle Salmon wrote <a href=\"https://blog.r-hub.io/2026/06/02/jarl/\">\"Refactoring with Jarl: a coffee chat\"</a> on the R-hub blog.</p><h3 id=\"a-strategy-for-recovering-data-on-request-interruption\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#a-strategy-for-recovering-data-on-request-interruption\"> <small>\ud83d\udd17</small></a>A strategy for recovering data on request interruption</h3><p>G\u00e1bor Cs\u00e1rdi summarized <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/\">recent changes to the gh package</a>. Especially interesting is his strategy for <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\">interruptions</a>: the user starts a long query then interrupts the process\u2026 how to not lose the data that's already been received? The solution is to make it accessible through <a href=\"https://rlang.r-lib.org/reference/last_error.html\"><code>rlang::last_error()</code></a>. More details in the <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\">post</a>.</p><h3 id=\"curl-summer-of-bliss\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#curl-summer-of-bliss\"> <small>\ud83d\udd17</small></a>curl summer of bliss</h3><p>The curl project <a href=\"https://daniel.haxx.se/blog/2026/06/15/curl-summer-of-bliss/\">announced</a> that it will not accept any vulnerability report during the month of July this year. This is both the opportunity for maintainers to take a break, and to advertise paid curl support, in which there will be no interruption of service.</p><h3 id=\"to-conventionally-commit-or-not\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#to-conventionally-commit-or-not\"> <small>\ud83d\udd17</small></a>To conventionally commit or not</h3><p>Sumner Evans wrote an interesting post <a href=\"https://sumnerevans.com/posts/software-engineering/stop-using-conventional-commits/\">criticizing the conventional commits convention</a> (starting commits with e.g.\u00a0<code>fix:</code> for bug fixes, <code>feat:</code> for new features, etc).</p><h3 id=\"more-than-gitignore\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#more-than-gitignore\"> <small>\ud83d\udd17</small></a>More than .gitignore</h3><p>Nelson Figueroa wrote a useful <a href=\"https://nelson.cloud/.gitignore-isnt-the-only-way-to-ignore-files-in-git/\">overview</a> of the different ways to make Git ignore some files.</p><h3 id=\"how-to-work-with-llms-without-losing-your-skills\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#how-to-work-with-llms-without-losing-your-skills\"> <small>\ud83d\udd17</small></a>How to work with LLMs without losing your skills</h3><p>Vicki Boykis wrote an insightful post <a href=\"https://vickiboykis.com/2026/05/28/we-should-be-more-tired-than-the-model/\">\"We should be more tired than the model\"</a> including pratical tips such as \"Starting to use the agent only after I've spent 20 minutes on the problem\" or \"Discussing an agent's proposed implementation with another person instead\".</p><h2 id=\"last-words\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#last-words\"> <small>\ud83d\udd17</small></a>Last words</h2><p>Thanks for reading! If you want to get involved with rOpenSci, check out our <a href=\"https://contributing.ropensci.org\">Contributing Guide</a>. This guide will help direct you to the right place, whether you want to make code contributions, non-code contributions, or contribute in other ways such as through sharing use cases. You can also support our work through <a href=\"https://ropensci.org/donate\">donations</a>.</p><p>If you haven't subscribed to our newsletter yet, you can <a href=\"https://ropensci.org/news/\">do so though our signup form</a>. Until it's time for our next newsletter, you can keep in touch with us through our <a href=\"https://ropensci.org/\">website</a>, <a href=\"https://hachyderm.io/@rOpenSci\">Mastodon</a>, or <a href=\"https://www.linkedin.com/company/ropensci/\">LinkedIn</a>. See you soon!</p>","doi":"https://doi.org/10.59350/312sy-1dt83","guid":"https://doi.org/10.59350/312sy-1dt83","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"mm3pb-hmd04","summary":"Dear rOpenSci friends, it's time for our monthly news roundup! You can read this post on our blog. Now let's dive into the activity at and around rOpenSci! \ud83d\udd17rOpenSci HQ \ud83d\udd17Champions Program update We have two concurrent cohorts, both in Spanish. The 2025\u20132026 cohort is nearing the end of its participation in the program, so we are organizing the closing meeting and the overall evaluation.","tags":["Newsletter"],"title":"rOpenSci News Digest, June 2026","updated_at":1782806444,"url":"https://ropensci.org/blog/2026/06/30/news-june-2026/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>In Underworld2, adding a new rheology was a matter of writing C code inside the StGermain framework, compiling it, and registering it with the component system. The barrier was high enough that most users never tried. The available rheologies were the ones the developers had implemented, and combining them required understanding the C internals.</p><p>In Underworld3, a constitutive model is a Python class where the relationship between fluxes and gradients is encoded as a SymPy expression. You can build a viscous model, add plasticity, add elasticity, make it anisotropic. At every stage the mathematics is visible, inspectable, and differentiable. The framework handles Jacobians, C code generation, and PETSc integration. You handle the physics.</p><pre><code class=\"language-python\">stokes = uw.systems.Stokes(mesh)\nstokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = viscosity_fn\n</code></pre><p>This post explains how constitutive models work in UW3, from simple viscous flow through to viscoelastic-plastic rheologies with stress history.</p><h2 id=\"the-constitutive-relationship\">The Constitutive Relationship</h2><p>A constitutive model in Underworld3 defines the relationship between a flux (e.g. stress - a momentum flux) and gradients of the unknowns (e.g. strain rate - gradients of velocity). For a Stokes flow problem, the solver needs a flux term $\\mathbf{F_1}$ that expresses the deviatoric stress:</p><p>$$<br>\\sigma_{ij} = C_{ijkl} , \\dot\\varepsilon_{kl}<br>$$</p><p>where $C_{ijkl}$ is the constitutive tensor (viscosity in this case) and $\\dot\\varepsilon$ is the symmetric strain rate tensor derived from the velocity gradient. For isotropic viscous flow, $C_{ijkl}$ reduces to $2\\eta , I_{ijkl}$ where $\\eta$ is the viscosity and $I$ is the symmetric identity tensor. For more complex rheologies, the constitutive tensor can depend on the strain rate itself, on pressure, temperature, stress history, or material orientation.</p><p>The constitutive model's job is to build this tensor symbolically. The solver reads the model's <code>.flux</code> property, which returns the stress as a SymPy matrix expression. From there, the JIT pipeline described in our <a href=\"https://www.underworldcode.org/how-underworld3-turns-sympy-into-c/\">SymPy-to-C post</a> takes over: automatically deriving Jacobians, unwrapping nested expressions, C code generation, PETSc integration.</p><h2 id=\"viscous-flow-the-starting-point\">Viscous Flow: The Starting Point</h2><p>The simplest constitutive model is <code>ViscousFlowModel</code>. It has one parameter: shear viscosity.</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = uw.expression(\n    r\"\\eta\", uw.quantity(1e21, \"Pa*s\")\n)\n</code></pre><p>The viscosity can be a constant, a UWexpression with units, a SymPy expression involving temperature and pressure, or a mesh variable. The model does not care. It builds the stress tensor symbolically:</p><p>$$<br>\\sigma = 2\\eta , \\dot\\varepsilon<br>$$</p><p>You can inspect this at any time:</p><pre><code class=\"language-python\">stokes.constitutive_model.flux\n# Returns: 2 * \u03b7 * \u03b5\u0307(u)  \u2014 as a SymPy Matrix\n</code></pre><p>In a Jupyter notebook, this renders as mathematics. You can see exactly what the solver will compute. If the viscosity expression is wrong, you see it here before running the solver.</p><h2 id=\"parameters-as-guarded-descriptors\">Parameters as Guarded Descriptors</h2><p>A common source of bugs in scientific code is mis-spelling a parameter name. You write <code>stokes.constitutive_model.Parameters.viscosty = 1e21</code> and nothing complains. The parameter you intended to set keeps its default value. The solver runs. The answer is wrong.</p><p>UW3's parameter system prevents this. Every constitutive model defines a <code>_Parameters</code> class whose attributes are descriptors. If you try to set an attribute that does not match a declared parameter, you get an immediate <code>AttributeError</code> listing the valid names:</p><pre><code class=\"language-python\">stokes.constitutive_model.Parameters.viscosty = 1e21\n# AttributeError: Cannot set 'viscosty' on ViscousFlowModel Parameters.\n# Valid parameters: shear_viscosity_0\n# (Did you mean 'shear_viscosity_0'? Use .viscosity as a shorthand.)\n</code></pre><p>The descriptor names are the API. <code>shear_viscosity_0</code> is both the internal name and the user-facing setter. For convenience, viscous models also provide a <code>.viscosity</code> alias that maps to <code>shear_viscosity_0</code>.</p><p>Each parameter descriptor carries a LaTeX symbol, a default value factory, a description, and optional units. The defaults are created lazily through the owning model's symbol factory, ensuring that every parameter gets a unique SymPy symbol even when multiple models coexist.</p><h2 id=\"anisotropy-and-tensor-representations\">Anisotropy and Tensor Representations</h2><p>The scalar viscosity in <code>ViscousFlowModel</code> produces an isotropic constitutive tensor. But many geodynamics problems involve directional weakness: fault zones, shear bands, crystallographic fabric. <code>TransverseIsotropicFlowModel</code> handles this by introducing a director vector $\\mathbf{n}$ and a second viscosity:</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.TransverseIsotropicFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta_matrix   # matrix viscosity\nstokes.constitutive_model.Parameters.shear_viscosity_1 = eta_fault    # fault-plane viscosity\nstokes.constitutive_model.Parameters.director = n_vector              # orientation\n</code></pre><p>The constitutive tensor becomes:</p><p>$$<br>C_{ijkl} = 2\\eta_0 , I_{ijkl} + 2(\\eta_0 - \\eta_1) , A_{ijkl}(\\mathbf{n})<br>$$</p><p>where $A_{ijkl}$ is the anisotropic correction involving products of the director components. When $\\eta_0 = \\eta_1$, the correction vanishes and you recover isotropic flow. When $\\eta_1 &lt; \\eta_0$, the material is weak along planes perpendicular to the director.</p><p>Building this tensor correctly requires care with index symmetries. The rank-4 constitutive tensor $C_{ijkl}$ has 81 components in 3D (16 in 2D), but the symmetries of stress and strain rate reduce the independent entries. The standard approach in finite element work is to flatten the symmetric tensors into vectors and the constitutive tensor into a matrix. There are two common ways to do this, and the difference matters.</p><h3 id=\"voigt-notation\">Voigt Notation</h3><p>In Voigt notation, the stress and strain rate tensors are written as vectors by listing the independent components:</p><p>$$<br>\\tau_I = (\\tau_{11}, \\tau_{22}, \\tau_{12}), \\quad \\dot\\varepsilon_I = (\\dot\\varepsilon_{11}, \\dot\\varepsilon_{22}, 2\\dot\\varepsilon_{12})<br>$$</p><p>Note the factor of 2 on the off-diagonal strain rate. The constitutive matrix $C_{IJ}$ is then the rearrangement of the rank-4 tensor without scaling. For isotropic viscosity in 2D:</p><p>$$<br>\\left[\\begin{matrix} \\tau_{11} \\\\ \\tau_{22} \\\\ \\tau_{12} \\end{matrix}\\right] =<br>\\left[\\begin{matrix} \\eta &amp; 0 &amp; 0 \\\\ 0 &amp; \\eta &amp; 0 \\\\ 0 &amp; 0 &amp; \\eta/2 \\end{matrix}\\right]<br>\\left[\\begin{matrix} \\dot\\varepsilon_{11} \\\\ \\dot\\varepsilon_{22} \\\\ 2\\dot\\varepsilon_{12} \\end{matrix}\\right]<br>$$</p><p>This is what you will find in most finite element textbooks. It works for computing stress from strain rate, but it has a problem: $\\tau_I \\dot\\varepsilon_I \\neq \\tau_{ij}\\dot\\varepsilon_{ij}$. The vector inner product does not reproduce the tensor inner product. And $C_{IJ}$ does not transform correctly under rotations.</p><h3 id=\"mandel-notation\">Mandel Notation</h3><p></p><p>Mandel notation fixes both problems by applying a scaling matrix $\\mathbf{P}$ that puts a factor of $\\sqrt{2}$ on the off-diagonal components:</p>\n<p>$$<br>\n\\tau^{ * } _ {I} = P _ {IJ},\\tau _ {J}, \\quad \\dot\\varepsilon^{ * } _ {I} = P _ {IJ},\\dot\\varepsilon _ {J}, \\quad C^{ * } _ {IJ} = P _ {IK} ,C _ {KL} , P _ {LJ}<br>\n$$</p>\n<p>where $\\mathbf{P} = \\textrm{diag}(1, 1, \\sqrt{2})$ in 2D, or $\\textrm{diag}(1,1,1,\\sqrt{2},\\sqrt{2},\\sqrt{2})$ in 3D. In Mandel form, the isotropic constitutive matrix becomes:</p>\n<p>$$<br>\nC^{ * } _ {IJ} = \\eta , \\delta _ {IJ}<br>\n$$</p>\n<p>This is just $\\eta$ times the identity. The fourth-order symmetric identity tensor, which has an awkward $1/2$ factor in its off-diagonal rank-4 components, becomes the matrix identity in Mandel form.</p>\n<p>The advantage of this approach is that rotations work naturally. If $\\mathbf{R}$ is a rotation matrix, then the rotated Mandel constitutive matrix is:</p>\n<p>$$<br>\nC'^{ * } _ {IJ} = R^{ * }_ {IK} , C^{ * } _ {KL} , R^{ * T} _ {LJ}<br>\n$$</p>\n<p>where $R^{ * }$ is the Mandel-form rotation matrix derived from $\\mathbf{R}$. This is why UW3 builds the transverse isotropic constitutive tensor in Mandel form. The anisotropic correction is defined in the material frame, rotated to the global frame using the director, and converted back to the rank-4 tensor. In Voigt notation, the same rotation would require tracking which components get the factor of 2 and which do not.</p>\n<h3 id=\"how-uw3-uses-these-representations\">How UW3 Uses These Representations</h3><p>The internal representation is the full rank-4 tensor $C_{ijkl}$. The Mandel form is available to the user through the <code>.C</code> property (capital C) for inspection and for supplying custom anisotropic tensors. The raw rank-4 tensor is available through <code>.c</code> (lowercase). If you provide a scalar viscosity, the model builds the rank-4 tensor directly. If you provide a Mandel matrix, the model converts it. Stress is passed to PETSc in Voigt form via <code>.flux_1d</code> to match its symmetric tensor storage conventions. The conversions between these representations are handled by utility functions in <code>maths/tensors.py</code>, and the index book keeping is automatic and dimension-independent.</p><h2 id=\"adding-plasticity\">Adding Plasticity</h2><p><code>ViscoPlasticFlowModel</code> extends <code>ViscousFlowModel</code> with a yield stress. When the deviatoric stress exceeds the yield stress, the effective viscosity drops to keep the stress at the yield surface:</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.ViscoPlasticFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta\nstokes.constitutive_model.Parameters.yield_stress = uw.expression(\n    r\"\\tau_y\", uw.quantity(100, \"MPa\")\n)\n</code></pre><p>The plastic viscosity is computed from the yield stress and the second invariant of the strain rate:</p><p>$$<br>\\eta_\\textrm{pl} = \\frac{\\tau_y}{2 , \\dot\\varepsilon_{II}}<br>$$</p><p>The effective viscosity is the lesser of the viscous and plastic values.<br>$$<br>\\eta_\\textrm{eff} = \\min(\\eta_\\textrm{v}, \\eta_\\textrm{pl})<br>$$<br>The model provides several other ways to combine them, because the choice affects Newton solver convergence. The default (\"smooth\") form uses a corrected harmonic blend:<br>$$<br>\\eta_\\textrm{eff} = \\eta_v \\cdot \\frac{1 + f}{1 + f + f^2}, \\quad f = \\frac{\\eta_\\textrm{v}}{\\eta_\\textrm{pl}}<br>$$</p><p>This function is smooth everywhere, approaches $\\eta_v$ when $f \\to 0$ (below yield), and approaches $\\eta_{pl}$ exactly when $f \\to \\infty$ (fully yielded). Other modes include harmonic averaging, a soft-min approximation, and a sharp min. The smooth default works well with Newton iteration because the Jacobian is continuous.</p><p>None of this blending logic requires special solver code. The effective viscosity is a SymPy expression. The solver differentiates it symbolically for the Jacobian. If you switch from smooth to sharp yielding, the Jacobian updates automatically.</p><h2 id=\"adding-elasticity-stress-has-memory\">Adding Elasticity: Stress Has Memory</h2><p>Viscous and plastic models are instantaneous. The stress depends only on the current strain rate. Elastic behaviour introduces memory: the stress depends on the deformation history.</p><p><code>ViscoElasticPlasticFlowModel</code> handles this. The Maxwell viscoelastic rheology combines viscous and elastic responses:</p><p>$$<br>\\dot\\varepsilon = \\frac{\\sigma}{2\\eta} + \\frac{\\dot\\sigma}{2\\mu}<br>$$</p><p>Rearranging and discretising in time, the stress at the current step depends on the stress at previous steps. This stress history is a transported term, advected (and rotated) with the flow.</p><pre><code class=\"language-python\">stokes = uw.systems.VE_Stokes(mesh, order=2)\nstokes.constitutive_model = uw.constitutive_models.ViscoElasticPlasticFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta\nstokes.constitutive_model.Parameters.shear_modulus = uw.expression(\n    r\"\\mu\", uw.quantity(1e10, \"Pa\")\n)\n</code></pre><p>The time discretisation uses backward differentiation formulas (BDF) with coefficients that adapt to variable timestep sizes. At order 1, this is the implicit Euler method. At order 2, BDF-2 gives second-order accuracy in time. When the timestep changes abruptly, the model falls back to BDF-1 automatically to avoid instabilities from extrapolating stress history over a large time gap.</p><p>The stress history lives on particles via the solver's <code>DFDt</code> (flux time derivative) infrastructure. When you assign a constitutive model that requires stress history, the solver creates the necessary particle storage and sets up advection automatically. The same BDF/Adams-Moulton framework that handles temperature advection handles stress advection. The constitutive model declares <code>requires_stress_history = True</code>, and the solver takes care of the rest.</p><p>If you don't want to use particles for tracking the stress history, you can use a semi-Lagrangian version of the <code>DFDt</code> which is a drop-in replacement at the user level. </p><p>For VEP problems, the viscoelastic effective strain rate includes contributions from the stress history, and the plastic yield criterion is evaluated against this total deformation rate. The <code>bdf_blend</code> parameter controls blending between BDF-1 and BDF-2 near the yield surface, where pure BDF-2 can produce oscillations. The model auto-detects the appropriate blend: pure VE problems get full BDF-2 accuracy, while VEP problems get a stable near-optimal blend.</p><p>Recent work has extended the anisotropic model to <code>TransverseIsotropicVEPFlowModel</code>, combining directional weakness with viscoelastic stress memory and plastic yielding. The yield criterion is evaluated on the resolved shear stress on the fault plane, computed from the full stress tensor and the director orientation. In UW3, this is a class that inherits from the VEP model and overrides the stress computation with additional director terms. The Jacobian follows automatically. In UW2, it would have been extremely difficult to implement.</p><h2 id=\"the-solvers-view\">The Solver's View</h2><p>From the solver's perspective, a constitutive model is just an object with a <code>.flux</code> property that returns a SymPy Matrix. The same object pattern is used for constitutive models for stokes flow, heat diffusion, Darcy flow ... The solver does not know whether the flux comes from a constant viscosity, a temperature-dependent Frank-Kamenetskii law, a viscoelastic model with stress history, or an anisotropic fabric model. It differentiates the flux to get the Jacobian, compiles both to C, and registers them with PETSc.</p><p>The assignment pattern reflects this:</p><pre><code class=\"language-python\"># Assign a class \u2014 solver instantiates with its own Unknowns\nstokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\n\n# Or assign an instance you've already configured\nmodel = uw.constitutive_models.ViscoElasticPlasticFlowModel(stokes.Unknowns, order=2)\nmodel.Parameters.shear_viscosity_0 = eta\nmodel.Parameters.shear_modulus = mu\nstokes.constitutive_model = model\n</code></pre><p>When you assign a model, the solver shares its <code>Unknowns</code> object with the model. This gives the model access to the velocity gradient (for computing strain rate), the DFDt stress history (for viscoelasticity), and the coordinate system (for computing directors in curvilinear geometry, for example). The model and solver are collaborators, not independent objects.</p><h2 id=\"the-design-pattern\">The Design Pattern</h2><p>The constitutive model system embodies a design choice that runs through all of Underworld3: separate the physics from the numerics. The physics lives in the constitutive model. It knows about viscosity, yield stress, elastic moduli, directors, stress history. It expresses all of this using SymPy objects.</p><p>The numerical part lives in the solver. This knows about weak forms, Jacobians, PETSc assembly, Newton iteration, time stepping. It reads the model's symbolic expressions and compiles them.</p><p>The boundary between the two is a SymPy Matrix. Everything on one side of that boundary is human-readable physics. On the other side is machine-generated numerics. You can change the physics without touching the solver. You can change the solver without touching the physics. And because the boundary is symbolic, both sides are inspectable at every stage.</p><p>In UW2, the physics and numerics were entangled in C. Changing one required understanding both. In UW3, you can write a new rheology in an afternoon, in a notebook, without compiling anything. That is the practical consequence of making constitutive models symbolic objects.</p>","doi":"https://doi.org/10.59350/5fe9q-8ps48","guid":"69d7d320eb7226563af542d3","image":"https://images.unsplash.com/photo-1665473052284-164335672208?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fHN5cnVwfGVufDB8fHx8MTc3NTc1MzA5NXww&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775952000,"rid":"61qad-eae12","summary":"In Underworld2, adding a new rheology was a matter of writing C code inside the StGermain framework, compiling it, and registering it with the component system. The barrier was high enough that most users never tried. The available rheologies were the ones the developers had implemented, and combining them required understanding the C internals.","tags":["Underworld Code","Tricks Of The Trade","Development"],"title":"Constitutive Models in Symbolic Form","updated_at":1782794178,"url":"https://www.underworldcode.org/constitutive-models-in-symbolic-form/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"},{"contributor_roles":[],"family":"Knight","given":"Ben"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>Geodynamics involves quantities that span extraordinary ranges. Viscosity might be $10^{21}$ Pa\u00b7s, density $3300$ kg/m$^3$, thermal diffusivity $10^{-6}$ m$^2$/s. A single model combines all of these, and the solver needs them in a form where the numbers are close to unity. That means we need to non-dimensionalise our systems of equations. Every user of a geodynamics code does this in some fashion, but most codes force the user to do the book keeping themselves.</p><p>Underworld3 handles this differently. You write a model in physical units. The framework tracks those units through the symbolic pipeline, non-dimensionalises everything before it reaches PETSc, and re-dimensionalises the results when you read them back. The solver always works in non-dimensional space, but you never see a non-dimensionalised quantity unless you ask for one.</p><pre><code class=\"language-python\">import underworld3 as uw\n\n# Create quantities with physical units\nviscosity = uw.quantity(1e21, \"Pa*s\")\ndensity   = uw.quantity(3300, \"kg/m**3\")\ngravity   = uw.quantity(9.8, \"m/s**2\")\ndepth     = uw.quantity(2900, \"km\")\n\n# These are Pint objects \u2014 arithmetic preserves units\nbuoyancy = density * gravity * depth\nbuoyancy.units   # &lt;Unit('kilogram / meter / second ** 2 * kilometer')&gt;\nbuoyancy.to(\"GPa\")  # converts correctly\n</code></pre><p>This post describes how the units system works, what it cost us to build, and why we think it was worth it.</p><h2 id=\"the-problem-with-manual-scaling\">The Problem with Manual Scaling</h2><p>In a typical geodynamics workflow without automatic units, you choose reference values for length, time, mass, and temperature. Then you divide every input parameter by the appropriate combination of reference values to produce dimensionless numbers and pass the result to the solver. The solver returns dimensionless solutions. You then have to multiply by the reference values to get physical values.</p><p>This works, but it has failure modes that are quiet and expensive. The most common: you non-dimensionalise a quantity with the wrong combination of reference scales, or you forget to non-dimensionalise one parameter entirely. The solver runs. It converges. The answer looks plausible. And it is wrong by a factor of $10^6$.</p><p>You can guard against this with careful documentation and naming conventions. But every problem requires active attention to refererence quantities and scaling, and discipline in propagating scalings through a script or workflow. Every scale-change is an opportunity for bugs to be introduced.</p><h2 id=\"string-input-pint-object-storage\">String Input, Pint Object Storage</h2><p>The user-facing API is simple. <code>uw.quantity()</code> takes a number and a unit string (thank you to Pint for consistent conversion) and returns a <code>UWQuantity</code> object backed by the Pint library:</p><pre><code class=\"language-python\">eta = uw.quantity(1e21, \"Pa*s\")\neta.value   # 1e+21 \u2014 what the user sees\neta.units   # &lt;Unit('pascal * second')&gt;\n\n# Arithmetic works through Pint\nkappa = uw.quantity(1e-6, \"m**2/s\")\ntime_scale = depth**2 / kappa\ntime_scale.to(\"Myr\")  # meaningful geological time\n</code></pre><p>The principle is: accept strings for convenience, store Pint objects internally. This means every quantity carries its units as metadata, not as part of a naming convention. When you ask <code>eta.units</code>, you get a Pint Unit object that knows how to convert, compare, and combine with other unit-aware objects.</p><p>A Pint Quantity is a value plus units. You can convert it. A Pint Unit is just the unit, without a value. The distinction matters because <code>.to()</code> is a method on quantities, not on units. If you try <code>eta.units.to(\"Pa*s\")</code>, you get an <code>AttributeError</code>. This catches a real conceptual error: conversion is something we do to a measurement, not to a label.</p><h2 id=\"uwexpression-the-symbolic-bridge\">UWexpression: The Symbolic Bridge</h2><p>Quantities are concrete numbers with units. But Underworld3's solver pipeline works with SymPy expressions that defer evaluation. The bridge between these two worlds is UWexpression.</p><pre><code class=\"language-python\"># A UWexpression wraps a quantity with a symbolic name\nalpha = uw.expression(r\"\\alpha\", uw.quantity(3e-5, \"1/K\"), \"thermal expansivity\")\nDeltaT = uw.expression(r\"\\Delta T\", uw.quantity(1500, \"K\"), \"temperature contrast\")\n\n# In SymPy, alpha behaves like any symbol\nbuoyancy_contribution = alpha * DeltaT   # a SymPy product\n\n# But it knows its units\nalpha.units            # &lt;Unit('1 / kelvin')&gt;\nbuoyancy_ratio.units   # dimensionless \u2014 the K cancels\n</code></pre><p>The UWexpression is a <code>SymPy.Symbol</code> subclass. It participates in symbolic algebra exactly like any other symbol. You can differentiate through it, simplify around it, substitute it. But inside, it holds a reference to its concrete value, and that value carries units.</p><p>This is the transparent container principle. A UWexpression does not have its own units. It derives them from whatever it contains. If it wraps a UWQuantity, the units come from the quantity. If it wraps a composite SymPy expression built from other unit-carrying atoms, the units are computed on demand by walking the expression tree.</p><pre><code class=\"language-python\"># Units are discovered, not stored\ncomposite = alpha * density * gravity\ncomposite_units = uw.get_units(composite)\n# Computed: (1/K) * (kg/m\u00b3) * (m/s\u00b2) = kg/(K\u00b7m\u00b2\u00b7s\u00b2)\n</code></pre><p>There is no cached units attribute on composite expressions. Every time you ask for units, the system walks the tree, finds the atomic quantities, and computes the result through Pint arithmetic. This sounds expensive, but it only happens when someone asks. The solver never asks. It works in dimensionless space, where units have already been stripped at the compilation boundary.</p><h2 id=\"derivatives-and-units\">Derivatives and Units</h2><p>Spatial derivatives require special treatment. If temperature has units of kelvin and the coordinate has units of metres, then $\\partial T / \\partial x$ has units of K/m. The units system handles this explicitly.</p><p>In Underworld3, spatial derivatives of mesh variables are represented as special SymPy function objects that store a reference back to the parent variable and know which coordinate index they differentiate with respect to. When <code>get_units()</code> encounters one of these derivative symbols, it extracts the variable's units and the coordinate's units, and computes the quotient. A velocity gradient $\\partial v / \\partial x$ with units of (m/s)/m correctly reduces to 1/s. A temperature gradient with units of K/m can be combined with a thermal conductivity in W/(m\u00b7K) to produce a heat flux in W/m\u00b2.</p><p>When you write <code>T.diff(x)</code> in UW3, the result is not a generic SymPy Derivative object. It is an <code>UnderworldAppliedFunctionDeriv</code> that carries metadata about the parent variable and the differentiation coordinate. The units system reads that metadata directly: variable units divided by coordinate units. For the SymPy algebra, the derivative is still a symbol. For the units system, it is a symbol whose units can be computed from first principles.</p><p>This matters because constitutive models are built from derivatives. A viscous stress $\\sigma = 2 \\eta \\dot\\varepsilon$ involves the strain rate, which is a velocity gradient. The units of the stress expression are computed by walking the tree: $\\eta$ contributes Pa\u00b7s, the strain rate contributes 1/s, and the product gives Pa. If you accidentally define a viscosity with units of kg instead of Pa\u00b7s, the units of the stress will not be pascal, and <code>get_units()</code> will tell you.</p><p>The Jacobian computation that happens inside the solver uses SymPy's <code>derive_by_array()</code> to differentiate the residual with respect to the unknown fields and their gradients. This is general symbolic differentiation and does not need to consult the units system at all. By the time these derivatives are used, the expressions have been unwrapped and non-dimensionalised, so units have already been stripped. The two kinds of differentiation live in different parts of the pipeline: spatial derivatives with units exist in the user-facing symbolic layer; Jacobian derivatives exist in the dimensionless compilation layer.</p><p>One case we have not yet tested is differentiating with respect to a design parameter for adjoint problems. If you wanted $\\partial J / \\partial \\eta$ where $J$ is a cost functional and $\\eta$ is (say) a viscosity parameter, SymPy's symbolic differentiation would produce the correct expression. The general unit-discovery machinery (<code>compute_expression_units()</code>) should be able to walk the resulting expression tree and determine its units and scaling in the equation system. But we have not tested this part of the code explicitly \u2014 <em>(caveat emptor) !</em></p><h2 id=\"rendering-and-simplifying-units\">Rendering and Simplifying Units</h2><p>Pint arithmetic preserves units faithfully, but the results can be verbose. Multiply a density in kg/m$^3$ by a gravity in m/s$^2$ by a length in km, and you get units of <code>kilogram / meter / second ** 2 * kilometer</code>. Correct, but not what you want to read.</p><p>UW3 provides three tools for cleaning this up, all available at the top level:</p><pre><code class=\"language-python\"># to_reduced_units: cancel and simplify to named SI units\nforce = uw.quantity(100, \"kg*m/s**2\")\nuw.to_reduced_units(force)   # 100.0 newton\n\n# to_compact: choose magnitude-appropriate prefixes\nlength = uw.quantity(1e9, \"m\")\nuw.to_compact(length)        # 1.0 gigameter\n\n# .to(): explicit conversion to a specific unit\npressure = uw.quantity(1e5, \"Pa\")\npressure.to(\"bar\")           # 1.0 bar\n</code></pre><p><code>to_reduced_units()</code> is the workhorse for dimensional analysis. It collapses compound units into their simplest named form. <code>to_compact()</code> adjusts prefixes so the number is human-readable. Both work on UWQuantity, UWexpression, UnitAwareArray, and raw Pint objects.</p><p>The model also uses magnitude-aware display when reporting reference scales. When you set reference quantities, the summary shows <code>2900 kilometer</code> rather than <code>2.9e6 meter</code>, and <code>40 megayear</code> rather than <code>1.26e15 second</code>. These are the same values in different clothes, chosen to match how a geodynamicist thinks about them.</p><h2 id=\"the-gateway-pattern\">The Gateway Pattern</h2><p>The units system operates at boundaries, not throughout the computation. Three gateways handle all the transitions:</p><p><strong>Input gateway</strong> \u2014 <code>uw.quantity()</code> creates dimensional values from user input. This is where units enter the system.</p><p><strong>Compilation gateway</strong> \u2014 when the JIT compiler prepares expressions for C code generation, it unwraps everything. UWexpressions become their non-dimensional <code>.data</code> values. UWQuantities become dimensionless floats. Mesh variable symbols become array accessors. By the time SymPy's code printer sees the expression, there are no units left. The C code works entirely with doubles.</p><p><strong>Output gateway</strong> \u2014 <code>evaluate()</code> takes the solver's dimensionless results, looks up what units the expression should have, and wraps the result in a <code>UnitAwareArray</code> with the correct Pint units attached. The user sees physical numbers.</p><p>This means the SymPy algebra layer in the middle never tracks units. It does not need to. The expressions are symbolically correct regardless of what units the atoms carry. The physical correctness is guaranteed by the gateways: dimensional in, dimensionless through the solver, dimensional out.</p><h2 id=\"reference-quantities-and-non-dimensionalisation\">Reference Quantities and Non-Dimensionalisation</h2><p>To cross the compilation gateway, the system needs reference scales. The user provides these through the model:</p><pre><code class=\"language-python\">model = uw.get_default_model()\nmodel.set_reference_quantities(\n    domain_depth     = uw.quantity(2900, \"km\"),\n    plate_velocity   = uw.quantity(5, \"cm/year\"),\n    mantle_viscosity = uw.quantity(1e21, \"Pa*s\"),\n    mantle_temperature = uw.quantity(1500, \"K\"),\n)\n</code></pre><p>From these, the system derives fundamental scales for length, time, mass, and temperature. Any quantity can then be non-dimensionalised by dividing by the appropriate combination of fundamental scales. Viscosity in Pa\u00b7s becomes a number near 1. Length in km becomes a number near 1. The solver works with well-conditioned numbers throughout.</p><p>The non-dimensionalisation is automatic and pervasive. When you assign a dimensional value to a mesh variable through <code>.array</code>, the unit conversion layer non-dimensionalises it before writing to PETSc. When you read <code>.array</code>, it re-dimensionalises. The <code>.data</code> property bypasses this and gives you the raw dimensionless values that PETSc stores.</p><p>This is why <code>.array</code> is the recommended access path for user code. It handles the unit boundary transparently. <code>.data</code> is for when you want to work in solver space directly or avoid the conversion overhead.</p><h2 id=\"what-the-solver-sees\">What the Solver Sees</h2><p>The JIT compiler (described in our <a href=\"https://www.underworldcode.org/how-underworld3-turns-sympy-into-c/\">SymPy-to-C post</a>) extracts runtime constants from the expression tree. Each UWexpression that has no spatial dependence becomes an entry in a flat constants array. At extraction time, the compiler calls <code>.data</code> on each constant, which returns the non-dimensional value.</p><p>The C code that PETSc runs looks like this:</p><pre><code class=\"language-c\">out[0] = constants[0] * petsc_u_x[0];\n// constants[0] is the non-dimensional viscosity \u2014 a number as close to 1 as we can make it !\n</code></pre><p>If you change a parameter between solves, the constants array is repacked with new non-dimensional values. No recompilation. The structural form of the expression has not changed, only the numbers.</p><p>This separation is important for time-stepping problems. The time-step size, continuation parameters, BDF coefficients all change between solves. They are UWexpressions in the symbolic layer, constants in the compiled C, and they update cheaply because the unit conversion and non-dimensionalisation happen at packing time, not at compile time.</p><h2 id=\"what-this-cost\">What This Cost</h2><p>The units system was the hardest part of the Underworld3 rebuild. We described this in the <a href=\"https://www.underworldcode.org/ai-and-scientific-software-what-we-learned-rebuilding-underworld3/\">AI development post</a> \u2014 it was Phase 2, the one where context overflowed and sessions drifted.</p><p>The difficulty was not in the units library itself. Pint is mature and works well. The difficulty was that units touch everything. The mesh construction code, the variable initialisation, the solver templates, the JIT compiler, the evaluation pathway, the visualisation layer, the checkpoint system. Adding units meant revisiting every module in the codebase.</p><p>Two principles eventually brought the work under control.</p><p>First: \"the user must see every quantity as having units, no exceptions. If a quantity is dimensionless, that is the unit they see.\" This eliminated a whole category of special cases where some values had units and some did not.</p><p>Second: \"here is a dimensionless version of the problem and here is an equivalent with units. The PETSc view of this problem has to be exactly the same.\" This gave us a clear test criterion. Run the problem both ways. Compare the PETSc vectors. If they match, the non-dimensionalisation is correct. If they do not, something is wrong at a gateway.</p><p>Once we had those two principles, the remaining work was straightforward. Not easy, but straightforward.</p><h2 id=\"units-in-practice\">Units in Practice</h2><p>A complete example putting it together:</p><pre><code class=\"language-python\">import underworld3 as uw\nimport sympy\n\n# Physical parameters\neta_0 = uw.expression(\"eta_0\", uw.quantity(1e21, \"Pa*s\"))\nrho   = uw.expression(\"rho\",   uw.quantity(3300, \"kg/m**3\"))\ng     = uw.expression(\"g\",     uw.quantity(9.8,  \"m/s**2\"))\nalpha = uw.expression(\"alpha\", uw.quantity(3e-5, \"1/K\"))\nDT    = uw.expression(\"DT\",    uw.quantity(1500, \"K\"))\n\n# Rayleigh number \u2014 computed symbolically with units\nL = uw.quantity(2900, \"km\")\nkappa = uw.quantity(1e-6, \"m**2/s\")\nRa = (rho * alpha * g * DT * L**3) / (eta_0 * kappa)\n\n# Ra is dimensionless \u2014 the units cancel exactly\nRa.to_reduced_units()  # ~1e7, dimensionless\n</code></pre><p>The Rayleigh number computation is familiar from any geodynamics textbook. The difference is that here, the units are checked automatically. If you accidentally used a velocity where a diffusivity should go, Pint would produce a quantity with leftover dimensions, and downstream code would catch the inconsistency.</p><p>This does not replace physical intuition. You still need to know that a Rayleigh number of $10^7$ means vigorous convection. But it does replace the mental arithmetic of tracking dimensions through a chain of multiplications and divisions. The computer handles that now.</p><hr><p><em>The Underworld project is supported by AuScope and the Australian Government through the National Collaborative Research Infrastructure Strategy (NCRIS). Source code: </em><a href=\"https://github.com/underworldcode/underworld3?ref=underworldcode.org\"><em>github.com/underworldcode/underworld3</em></a></p>","doi":"https://doi.org/10.59350/2390e-w7d86","guid":"69d57d11eb7226563af541e4","image":"https://images.unsplash.com/photo-1611077544775-6e72542a206f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI5fHxzY2FsZXxlbnwwfHx8fDE3NzU1OTkxNTZ8MA&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775606400,"rid":"s65sw-a3580","summary":"Geodynamics involves quantities that span extraordinary ranges. Viscosity might be $10^{21}$ Pa\u00b7s, density $3300$ kg/m$^3$, thermal diffusivity $10^{-6}$ m$^2$/s. A single model combines all of these, and the solver needs them in a form where the numbers are close to unity. That means we need to non-dimensionalise our systems of equations.","tags":["Underworld Code","Development"],"title":"Physical Units in Computational Geodynamics","updated_at":1782794176,"url":"https://www.underworldcode.org/physical-units-in-computational-geodynamics/","version":"v1"}},{"document":{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>In Underworld2, the answer was context managers. You would wrap every data access in a <code>with</code> block, and the framework synchronised the arrays on exit. It was safe, but verbose.</p>\n<p>In Underworld3, you just write to the array. The synchronisation happens automatically.</p>\n<pre><code class=\"language-python\"># Underworld2 (old)\nwith mesh.access(temperature):\n    temperature.data[...] = values\n\n# Underworld3 (current)\ntemperature.array[...] = values\n</code></pre>\n<p>This post explains how we make that work.</p>\n<h2 id=\"the-problem\">The Problem</h2>\n<p>PETSc stores field data in distributed vectors. Each MPI rank owns a portion of the mesh and holds a <em>local vector</em> (<code>_lvec</code>) that includes ghost values from neighbouring ranks. The solver reads and writes these local vectors during assembly and solution.</p>\n<p>The user wants to work with NumPy arrays. They want to set initial conditions, apply corrections, read solution values \u2014 all using familiar NumPy indexing. They do not want to know about local vectors, global vectors, ghost regions, or scatter operations.</p>\n<p>The challenge is bridging these two worlds without introducing bugs. If the user modifies an array but PETSc doesn't see the change, the solver works with stale data. If PETSc rebuilds its internal data structures (because the mesh adapted or a new variable was added), the user's cached array might try to view points at freed memory locations.</p>\n<h2 id=\"ndarraywithcallback-a-reactive-numpy-array\">NDArray_With_Callback: A Reactive NumPy Array</h2>\n<p>The core mechanism is <code>NDArray_With_Callback</code> \u2014 a NumPy ndarray subclass that fires a callback whenever its data is modified. When you write <code>temperature.data[0:10] = 300.0</code>, the array detects the assignment and triggers a synchronisation callback that copies the modified values into the PETSc local vector and scatters them to neighbouring ranks.</p>\n<p>The user sees a NumPy array. Behind it, every write triggers:</p>\n<ol>\n<li>Values are written into the PETSc local vector</li>\n<li>A local-to-global scatter copies owned values to the global vector</li>\n<li>A global-to-local scatter fills ghost regions from neighbouring ranks</li>\n</ol>\n<p>After step 3, every rank has consistent data including ghost values. The solver can proceed safely.</p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img src=\"https://www.underworldcode.org/content/images/2026/04/arrays-sync-flow.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"2000\" height=\"695\" srcset=\"https://www.underworldcode.org/content/images/size/w600/2026/04/arrays-sync-flow.png 600w, https://www.underworldcode.org/content/images/size/w1000/2026/04/arrays-sync-flow.png 1000w, https://www.underworldcode.org/content/images/size/w1600/2026/04/arrays-sync-flow.png 1600w, https://www.underworldcode.org/content/images/size/w2400/2026/04/arrays-sync-flow.png 2400w\" sizes=\"(min-width: 720px) 720px\"><figcaption><span style=\"white-space: pre-wrap;\">The data synchronisation pipeline: a write to .data or .array triggers a callback that packs values into the PETSc local vector, scatters to the global vector, and fills ghost regions from neighbouring MPI ranks.</span></figcaption></figure><p></p><p></p><h2 id=\"the-self-validating-cache\">The Self-Validating Cache</h2>\n<p>The <code>.data</code> property on a MeshVariable returns an <code>NDArray_With_Callback</code> view into the PETSc local vector. Creating this view is not free \u2014 it involves extracting the raw pointer from PETSc, wrapping it in NumPy, registering callbacks, and reshaping. So the variable caches it.</p>\n<p>The danger is stale caches. PETSc can destroy and recreate its internal vectors when:</p>\n<ul>\n<li>A new MeshVariable is added to the mesh (triggers a DM rebuild)</li>\n<li>The mesh adapts (new topology, new vectors)</li>\n</ul>\n<p>After either event, the old cached array view points at deallocated memory. Reading it returns garbage; writing to it corrupts the heap.</p>\n<p>UW3 solves this with a single line of defence: on every <code>.data</code> or <code>.array</code> access, it checks whether <code>id(self._lvec)</code> matches the cached value. Python's <code>id()</code> returns the memory address of an object. If PETSc has replaced the local vector, the new object has a different <code>id</code>, the check fails, and the cache rebuilds automatically.</p>\n<pre><code class=\"language-python\">@property\ndef data(self):\n    cache_valid = (\n        self._canonical_data is not None\n        and self._canonical_data_lvec_id == id(self._lvec)\n    )\n\n    if not cache_valid:\n        self._canonical_data = self._create_canonical_data_array()\n        self._canonical_data_lvec_id = id(self._lvec)\n\n    return self._canonical_data\n</code></pre>\n<p>No code path needs to manually invalidate the cache. No flag to set, no method to call. The cache validates itself on every access. If the underlying vector changed, the view rebuilds. If it didn't, the cached view is returned immediately.</p>\n<h2 id=\"batch-updates\">Batch Updates</h2>\n<p>Sometimes you need to update several variables together. Each individual write triggers a PETSc synchronisation \u2014 which involves MPI communication. If you are setting initial conditions on velocity, pressure, and temperature, that is three synchronisation rounds where one would suffice.</p>\n<p><code>uw.synchronised_array_update()</code> defers all callbacks until the context exits:</p>\n<pre><code class=\"language-python\">with uw.synchronised_array_update():\n    velocity.array[...] = v_initial\n    pressure.array[...] = p_initial\n    temperature.array[...] = T_initial\n# All three synchronise here, once\n</code></pre>\n<p>During the context, writes accumulate but callbacks are queued. On exit, all queued callbacks fire in order, and MPI barriers ensure all ranks stay in step.</p>\n<h2 id=\"two-access-layers\">Two Access Layers</h2>\n<p>MeshVariable exposes two properties for data access:</p>\n<p><strong><code>.data</code></strong> returns a flat <code>(N, num_components)</code> array. This is the internal format \u2014 what PETSc stores. It is always dimensionless (non-dimensionalised if units are active). Direct, fast, no conversion overhead.</p>\n<p><strong><code>.array</code></strong> returns a structured <code>(N, a, b)</code> array where the shape reflects the variable type: <code>(N, 1, 1)</code> for scalars, <code>(N, 1, dim)</code> for vectors, <code>(N, dim, dim)</code> for tensors. It handles unit conversion on read and write \u2014 you can assign values with physical units and they are non-dimensionalised before reaching PETSc.</p>\n<p>For most user code, <code>.array</code> is a good choice. <code>.data</code> is there when you want to avoid the overhead of unit converstions or resizing (for example, copying from one array to another).</p>\n<h2 id=\"what-the-solver-sees\">What the Solver Sees</h2>\n<p>The solvers themselves never use <code>.data</code> or <code>.array</code>. They access the PETSc vector directly via a <code>.vec</code> property that returns the raw <code>_lvec</code>. This is deliberate \u2014 the callback mechanism adds a thin layer of overhead that is irrelevant for user operations but would accumulate over millions of quadrature-point evaluations during assembly.</p>\n<p>The division is clean: users work through <code>.array</code> (safe, synchronised, cached). Solvers work through <code>.vec</code> (direct, fast, PETSc-native). The two paths share the same underlying memory \u2014 the PETSc local vector \u2014 so there is no data duplication.</p>\n<h2 id=\"why-this-design\">Why This Design</h2>\n<p>The context-manager approach in UW2 was safe but required discipline. Every data access had to be wrapped. Nested access for multiple variables was awkward. And the most common bug \u2014 forgetting the context manager \u2014 produced wrong results silently.</p>\n<p>The callback approach eliminates an entire class of bugs. You cannot forget to synchronise because synchronisation is automatic. The self-validating cache eliminates another class \u2014 stale views after DM rebuilds. And batch updates via <code>synchronised_array_update()</code> give you the performance of explicit synchronisation when you need it.</p>\n<p>The cost is one <code>id()</code> comparison per <code>.data</code> access and one callback dispatch per write. For user-level operations \u2014 setting initial conditions, post-processing solution fields, checkpointing \u2014 this is negligible. For solver-level operations \u2014 millions of quadrature evaluations \u2014 the direct <code>.vec</code> path bypasses it entirely.</p>","doi":"https://doi.org/10.59350/6mxqs-3p708","guid":"69ce5868eb7226563af540f3","image":"https://images.unsplash.com/photo-1642602519174-0318c786f6d8?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fHRpbWluZ3xlbnwwfHx8fDE3NzUxNjg3MDN8MA&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775174400,"rid":"gxvk2-d2138","summary":"In Underworld2, the answer was context managers. You would wrap every data access in a with block, and the framework synchronised the arrays on exit. It was safe, but verbose. In Underworld3, you just write to the array. The synchronisation happens automatically. # Underworld2 (old) with mesh.access(temperature): temperature.data[...] = values # Underworld3 (current) temperature.array[...] = values This post explains how we make that work.","tags":["Underworld Code","Development"],"title":"Mesh Variables and PETSc Vectors: Keeping Arrays in Sync","updated_at":1782794175,"url":"https://www.underworldcode.org/mesh-variables-and-petsc-vectors-keeping-arrays-in-sync/","version":"v1"}}],"items":[{"authors":[{"contributor_roles":[],"name":"The Geneva Learning Foundation"}],"blog":{"authors":null,"community_id":"7e26491f-41c6-4665-9088-5aa6643a1ba8","created":1731196800,"current_feed_url":null,"description":"Learning to make a difference","favicon":"https://rogue-scholar.org/api/communities/7e26491f-41c6-4665-9088-5aa6643a1ba8/logo","feed_format":"application/atom+xml","feed_url":"https://redasadki.me/feed/atom/","filter":null,"generator":"WordPress","home_page_url":"https://redasadki.me/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"redasadki","status":"active","subfield":"3304","title":"Reda Sadki","updated":1782838729,"use_api":true},"blog_name":"Reda Sadki","blog_slug":"redasadki","content_html":"<p class=\"has-text-align-left wp-block-paragraph\"><a href=\"https://redasadki.me/?p=23969\">English</a> | <strong>Fran\u00e7ais</strong></p>\n<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:903,&quot;href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/j\\/86517960688&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/webinar\\/register\\/WN_QxyRxifKQFedPC6mBmjoAQ?_x_zm_rtaid=jYYHPqfySXGVWbxPhaeO9Q.1778174418364.f87a83488235397cdbd5dbd2af15002f\\u0026_x_zm_rhtaid=4&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:164,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/redasadki&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:845,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/charlotte-mbuh-2b565298&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:204,&quot;href&quot;:&quot;https:\\/\\/www.learning.foundation\\/climate-fr&quot;,&quot;archived_href&quot;:&quot;http:\\/\\/web-wp.archive.org\\/web\\/20250813124052\\/https:\\/\\/www.learning.foundation\\/climate-fr&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-05 05:54:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-09 01:31:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-12 21:31:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-16 17:06:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-20 19:04:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-25 19:37:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-30 02:16:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-03 20:40:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-10 21:36:41&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-15 11:29:38&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 22:33:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-24 19:08:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-29 08:28:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 16:20:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 15:58:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-04 12:58:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 17:32:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 03:46:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 08:29:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-25 11:06:30&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-14 12:42:03&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-18 18:18:04&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-22 16:32:50&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-26 05:41:21&quot;,&quot;http_code&quot;:404}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-26 05:41:21&quot;,&quot;http_code&quot;:404},&quot;process&quot;:&quot;done&quot;}]\"></span>\n\n\n<p class=\"wp-block-paragraph\">Bonjour,</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous le voyez&nbsp;: le changement climatique nuit &agrave; la sant&eacute; de votre communaut&eacute;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Le jeudi 2&nbsp;juillet 2026, vous &ecirc;tes invit&eacute; &agrave; rencontrer des professionnels de sant&eacute; qui agissent d&eacute;j&agrave;.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/86517960688\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"RESERVEZ VOTRE PLACE\"><strong>R&Eacute;SERVEZ</strong> VOTRE PLACE<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Apportez un d&eacute;fi que le climat provoque dans votre travail.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pourriez repartir avec une r&eacute;ponse d&eacute;j&agrave; test&eacute;e par des coll&egrave;gues.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Que font les professionnels de sant&eacute; quand la route vers le centre est inond&eacute;e, quand le centre est plus chaud que jamais, quand plus de personnes tombent malades, plus souvent qu&rsquo;avant&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette s&eacute;ance porte sur ces solutions locales, celles que les professionnels de sant&eacute; utilisent d&eacute;j&agrave; pour sauver des vies.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Les personnes qui les ont partag&eacute;es, venues de plus de 60&nbsp;pays, seront nos invit&eacute;s d&rsquo;honneur.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Les participants auront acc&egrave;s &agrave; notre <a href=\"https://redasadki.me/2026/05/26/nouvelles-perspectives-health-workers-are-leading-community-responses-to-climate-change-impacts-on-health/\">nouveau rapport sur l&rsquo;action locale</a> face &agrave; l&rsquo;impact de la crise climatique sur la sant&eacute;, et aux <a href=\"https://redasadki.me/2026/05/26/climate-change-and-health-14-recommendations-for-health-workers-national-planners-and-global-partners/\">14&nbsp;recommandations surprenantes</a> pour le personnel de terrain, les planificateurs et les partenaires mondiaux.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>\ud83d\udde3\ufe0f <strong>Cette lettre d&rsquo;information est interactive</strong>. Partagez votre exp&eacute;rience partout o&ugrave; vous voyez cette ic&ocirc;ne.</span></p>\n\n\n\n<p class=\"wp-block-paragraph\">Sinc&egrave;res salutations,</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.linkedin.com/in/redasadki/\">Reda Sadki</a> et <a href=\"https://www.linkedin.com/in/charlotte-mbuh-2b565298/\">Charlotte Mbuh</a><br /><strong>La Fondation Apprendre Gen&egrave;ve</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">P.-S. Dites-nous ce que vous pensez de cette lettre d&rsquo;information. Cela prend deux minutes, et cela fa&ccedil;onne le prochain num&eacute;ro.</p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>La lettre d&rsquo;information du Scholar de la Fondation Apprendre Gen&egrave;ve, num&eacute;ro 5 (2&nbsp;juillet 2026)</em></h3>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Le changement climatique nuit &agrave; la sant&eacute; de votre communaut&eacute;&nbsp;: un guide pratique pour agir</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/19/what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-guide-to-the-certificate-peer-learning-programme-for-leadership-in-climate-change-and-health/\">Lisez le <strong>guide pratique</strong> pour voir ce que vous pouvez faire en tant que professionnel de sant&eacute;</a></p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/c27156-0562-e4a1-f8aa-374ceb7ae1a8_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Vous voyez les pluies arriver t&ocirc;t, le centre de sant&eacute; chauffer, et plus de personnes tomber malades plus souvent. Ce guide vous montre ce que vous pouvez faire, l&agrave; o&ugrave; vous &ecirc;tes, avec ce que vous avez. Vous pouvez commencer cette semaine.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-accent-3-background-color has-background wp-element-button\" href=\"https://www.learning.foundation/climate-fr\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE LE PROGRAMME MAINTENANT\"><strong>REJOIGNEZ</strong> LE PROGRAMME MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcd6 Pourquoi votre travail pendant la derni&egrave;re inondation compte&nbsp;: trois ans d&rsquo;action sur le climat et la sant&eacute;</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Quand la temp&ecirc;te a inond&eacute; les routes &agrave; Bomaka, au Cameroun, une sage-femme nomm&eacute;e <strong>Geh Raphaela Agwa</strong> a sauv&eacute; des jumeaux lors d&rsquo;une pr&eacute;sentation du cordon, puis elle a &eacute;crit ce qu&rsquo;elle avait fait. Ses voisins avaient d&eacute;j&agrave; creus&eacute; les caniveaux pour que les voitures puissent passer. Ni elle ni eux n&rsquo;ont attendu qu&rsquo;une politique leur dise comment faire.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette nouvelle synth&egrave;se relit trois ans de travail qui traitent des r&eacute;cits comme le sien comme une preuve, et non comme une simple anecdote. Elle rassemble ce que les professionnels de sant&eacute; en Afrique, en Asie et en Am&eacute;rique latine voient et font, &agrave; une &eacute;chelle qu&rsquo;aucune enqu&ecirc;te n&rsquo;avait atteinte, et le leur rend comme base pour agir. C&rsquo;est la r&eacute;ponse la plus claire &agrave; ce jour &agrave; une question qui d&eacute;cide si votre savoir est entendu&nbsp;: pourquoi ce que vous observez chaque jour est-il qualifi&eacute; d&rsquo;anecdotique, alors que c&rsquo;est vous qui &eacute;tiez l&agrave;&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/16/lessons-in-resilience-what-health-workers-in-africa-asia-and-latin-america-know-and-do-in-response-to-worsening-climate-change-impacts-on-their-communities/\">D&eacute;couvrez pourquoi l&rsquo;exp&eacute;rience de terrain est la couche manquante de la riposte au climat et &agrave; la sant&eacute;</a></p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Climat et sant&eacute;&nbsp;: l&rsquo;&eacute;v&eacute;nement vous montre ce qui est possible, cette nouvelle formation vous aide &agrave; le faire</h2>\n\n\n\n<p class=\"wp-block-paragraph\">La s&eacute;ance du 2&nbsp;juillet dure une heure. Cette nouvelle formation est l&rsquo;endroit o&ugrave; vous poussez plus loin votre propre d&eacute;fi, &agrave; votre rythme, avec des pairs qui portent le m&ecirc;me.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous &ecirc;tes peut-&ecirc;tre l&rsquo;infirmi&egrave;re qui a vu les pluies arriver t&ocirc;t, l&rsquo;agent de sant&eacute; communautaire qui marche plus loin pour de l&rsquo;eau potable, ou le responsable qui reconstruit un centre que le vent a emport&eacute;. Les situations diff&egrave;rent. La question est la m&ecirc;me. Que pouvez-vous faire, l&agrave; o&ugrave; vous &ecirc;tes, avec ce que vous avez&nbsp;?</p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est la premi&egrave;re formation par les pairs sur les impacts du changement climatique sur la sant&eacute;, construite &agrave; partir du rapport et avec le r&eacute;seau REACH de plus de 4&nbsp;000&nbsp;organisations locales. Vous parcourez ce que des pairs ont fait en urgence, ce qu&rsquo;ils ont fait pour se pr&eacute;parer, et comment ils ont associ&eacute; la communaut&eacute;. Vous repartez avec des &eacute;tapes concr&egrave;tes pour votre propre territoire.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32183\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE CETTE CERTIFICATION MAINTENANT\"><strong>REJOIGNEZ</strong> CETTE CERTIFICATION MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Dites-nous une chose que vous faites face au changement climatique et &agrave; la sant&eacute;. Votre r&eacute;ponse pourrait &ecirc;tre celle qu&rsquo;un coll&egrave;gue recherche.</p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcd6 Utilisez l&rsquo;intelligence artificielle pour dialoguer avec 1&nbsp;000&nbsp;professionnels de sant&eacute; face au climat</h3>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8f768de-858b-6ace-a0a-0b140cc2f647_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le rapport s&rsquo;intitule <em>Teach to Reach 11: Actions locales face &agrave; l&rsquo;impact du changement climatique sur la sant&eacute;</em>. Des professionnels de sant&eacute; en Afrique, en Asie et en Am&eacute;rique latine l&rsquo;ont &eacute;crit, 100&nbsp;d&rsquo;entre eux en d&eacute;tail, dans 19&nbsp;pays. Ils ont r&eacute;pondu &agrave; trois questions simples&nbsp;: que s&rsquo;est-il pass&eacute;, qu&rsquo;avez-vous fait, et comment avez-vous su que cela marchait.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Trois constats reviennent dans chaque pays. Le changement climatique aggrave des maladies d&eacute;j&agrave; connues, sans en inventer de nouvelles&nbsp;: le signal est donc dans le paludisme, le chol&eacute;ra et la malnutrition que vous suivez d&eacute;j&agrave;. Les communaut&eacute;s organisent leurs propres ripostes, de 17&nbsp;mani&egrave;res document&eacute;es. Et les personnes les plus proches du danger sont les moins visibles dans la conversation mondiale sur la recherche et les politiques.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Prenez Yopougon, en C&ocirc;te d&rsquo;Ivoire. Konan Kouam&eacute; Georges et son &eacute;quipe n&rsquo;ont pas attendu qu&rsquo;une directive change. Quand la dengue a suivi les pluies en 2023, ils sont pass&eacute;s d&rsquo;un rapport hebdomadaire &agrave; un rapport quotidien. C&rsquo;est un petit changement &agrave; lire. C&rsquo;est un grand changement &agrave; faire, et le genre que les syst&egrave;mes officiels mettent des ann&eacute;es &agrave; recommander.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez mettre cette intelligence collective au travail d&egrave;s maintenant.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong><a href=\"https://redasadki.me/2026/06/16/talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do-about-climate-change-and-health/\">Posez une question &agrave; notre interface d&rsquo;intelligence artificielle</a> en langage simple, comme &laquo;&nbsp;qu&rsquo;ont dit les professionnels de sant&eacute; de mon pays au sujet des inondations&nbsp;?&nbsp;&raquo;, et vous obtenez une r&eacute;ponse compl&egrave;te et fiable.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf0d Premiers secours psychologiques&nbsp;: <span>le p&ocirc;le national des Pays-Bas pour la sant&eacute; mentale et le soutien psychosocial</span></h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/013ade1-00aa-ba12-a5a-faf0817a00ba_20260611.23732.the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">LOOP, le p&ocirc;le national des Pays-Bas pour la sant&eacute; mentale et le soutien psychosocial, a rejoint le r&eacute;seau europ&eacute;en pour les premiers secours psychologiques (PFA), construit par plus de 2&nbsp;000&nbsp;praticiens avec le soutien de La Fondation Apprendre Gen&egrave;ve. D&eacute;sormais, les personnes qui soutiennent les enfants d&eacute;plac&eacute;s aux Pays-Bas peuvent apprendre de coll&egrave;gues en Ukraine et ailleurs. &laquo;&nbsp;Les professionnels qui soutiennent les enfants touch&eacute;s par les crises humanitaires et les conflits arm&eacute;s ne devraient jamais &ecirc;tre seuls&nbsp;&raquo;, a d&eacute;clar&eacute; Charlotte Mbuh, directrice des programmes de la Fondation.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Le besoin est vaste et l&rsquo;aide est rare. Environ 45&nbsp;% des personnes d&eacute;plac&eacute;es d&rsquo;Ukraine aux Pays-Bas se disent en mauvaise sant&eacute; mentale. Seules 7&nbsp;% environ ont vu un psychologue. Un travailleur social peut suivre plus de cent r&eacute;sidents.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong>D&eacute;couvrez <a href=\"https://redasadki.me/2026/06/11/the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-psychological-first-aid/\">comment ce partenariat a vu le jour</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Bundibugyo&nbsp;: vos coll&egrave;gues de la riposte ont besoin de vous maintenant</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/25a783-2f7f-f873-32ce-e7ad783dcf_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">La premi&egrave;re certification par les pairs sur la maladie &agrave; virus Bundibugyo est ouverte, parce que les personnes qui combattent la flamb&eacute;e en R&eacute;publique d&eacute;mocratique du Congo et en Ouganda ont besoin les unes des autres &agrave; l&rsquo;int&eacute;rieur. Si vous avez travaill&eacute; sur une riposte &agrave; Ebola, notez la seule chose que vous auriez aim&eacute; savoir, l&agrave; o&ugrave; un intervenant pourra la lire cette semaine.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32222\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"REJOINDRE CETTE CERTIFICATION MAINTENANT\"><strong>REJOIGNEZ</strong> CETTE CERTIFICATION MAINTENANT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cette flamb&eacute;e, plus de la moiti&eacute; des personnes qui tombent malades sont des femmes et des filles. Une <a href=\"https://redasadki.me/2026/06/22/rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in-the-democratic-republic-of-congo-and-uganda/\">analyse rapide selon le genre</a> explique ce que cela change pour la riposte, et pourquoi cela ne peut pas attendre.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Vous l&rsquo;avez manqu&eacute;&nbsp;?</strong> D&eacute;couvrez comment <a href=\"https://redasadki.me/2026/06/15/virus-bundibugyo-un-reseau-de-soignants-congolais-tissent-des-liens-de-riposte-et-de-resilience/\">des soignants congolais apprennent les uns des autres</a> en construisant leur riposte.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udde3\ufe0f Bient&ocirc;t&nbsp;: au Togo, une d&eacute;cennie d&rsquo;apprentissage par les pairs a fait grandir des carri&egrave;res</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Palenfo Gnourfateon</strong>, un responsable de longue date de la Fondation, &eacute;tait &agrave; Lom&eacute; pour une enqu&ecirc;te sur la rougeole quand il a r&eacute;uni tous les Scholars qu&rsquo;il pouvait joindre. Reda Sadki s&rsquo;est connect&eacute; pour dire un rapide bonjour. Il est rest&eacute; les 119&nbsp;minutes enti&egrave;res, car la salle &eacute;tait devenue le t&eacute;moignage de ce qu&rsquo;une d&eacute;cennie d&rsquo;apprentissage par les pairs construit.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Winiga Koudema</strong> est un clinicien p&eacute;diatrique au Togo. Il est devenu directeur de district puis d&rsquo;h&ocirc;pital sans formation en &eacute;pid&eacute;miologie. Pendant la COVID-19, un coll&egrave;gue lui a envoy&eacute; le lien d&rsquo;une formation de la Fondation. Les formations l&rsquo;ont men&eacute; &agrave; un dipl&ocirc;me de troisi&egrave;me cycle, puis au conseil, puis &agrave; un poste permanent &agrave; l&rsquo;Organisation mondiale de la Sant&eacute;. &laquo;&nbsp;C&rsquo;est pour moi l&rsquo;occasion de vraiment me relancer&nbsp;&raquo;, a-t-il dit.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Manzama-Esso Kola</strong> est un sociologue venu &agrave; la vaccination par le travail sur le VIH. Une formation de 2019 sur la triangulation des donn&eacute;es a chang&eacute; sa pratique. Il a &eacute;crit un manuel, form&eacute; les responsables du suivi dans 39&nbsp;organisations, et il coordonne aujourd&rsquo;hui une plateforme que la division de la vaccination consulte. &laquo;&nbsp;Nous sommes un acteur reconnu et consult&eacute; en vaccination&nbsp;&raquo;, a-t-il dit.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce ne sont pas des carri&egrave;res qui se sont &eacute;loign&eacute;es du terrain. Elles y sont entr&eacute;es plus profond&eacute;ment. C&rsquo;est le pari du r&eacute;seau Scholar&nbsp;: que l&rsquo;apprentissage vit &agrave; l&rsquo;int&eacute;rieur des personnes qui font tourner le syst&egrave;me, et qu&rsquo;il dure. Comme l&rsquo;a dit Palenfo &agrave; la cl&ocirc;ture de la s&eacute;ance, &laquo;&nbsp;une fois Scholar, toujours Scholar&nbsp;&raquo;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <a href=\"https://redasadki.me\"><strong>Consultez</strong> le blog de Reda Sadki</a> pour trouver l&rsquo;article complet.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccb Ce que les professionnels de sant&eacute; savent d&eacute;j&agrave; sur la m&eacute;nopause</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/170cb12-5c34-6e4e-8ad8-683a4fa7e5_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">La premi&egrave;re formation mondiale par les pairs sur la m&eacute;nopause pour les professionnels de sant&eacute; a ouvert le 22&nbsp;juin, construite avec Menoglobal. Ses premiers jours ont montr&eacute; tout ce que les professionnels de sant&eacute; portent d&eacute;j&agrave;.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Interrog&eacute;e sur ce que la m&eacute;nopause &eacute;voque, une membre d&rsquo;un comit&eacute; de sant&eacute; communautaire au Costa Rica a repris une expression de la m&eacute;decine traditionnelle, &laquo;&nbsp;le second printemps&nbsp;&raquo;, et a &eacute;crit&nbsp;: &laquo;&nbsp;Cela me donne de l&rsquo;espoir et de la paix, car je traverse cette transition.&nbsp;&raquo; Une assistante sociale en sant&eacute; en Afrique a r&eacute;pondu en un mot&nbsp;: &laquo;&nbsp;silence.&nbsp;&raquo; Le savoir &eacute;tait l&agrave;. Il attendait un langage.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f Vous serez surpris par <a href=\"https://redasadki.me/2026/06/28/menopause-what-health-workers-already-know-in-their-own-words/\">ce qu&rsquo;ils ont partag&eacute; la premi&egrave;re semaine</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Partagez une le&ccedil;on, une r&eacute;ussite ou un d&eacute;fi au sujet de la m&eacute;nopause. Vos mots peuvent aider un coll&egrave;gue qui n&rsquo;en a pas encore.</p>\n\n\n\n<h2 class=\"wp-block-heading\">\u270d\ufe0f Des lectures qui valent votre temps</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/c60031-ece8-0730-0c-22f31b22f451_20260527.23635.global-health-architecture-what-are-we-missing.640.jpg?ssl=1\" alt=\"\"/></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques lectures r&eacute;centes de <strong>Reda Sadki</strong> et <strong>Charlotte Mbuh</strong>, de La Fondation Apprendre Gen&egrave;ve, si vous avez dix minutes entre deux r&eacute;unions.</p>\n\n\n\n<p class=\"wp-block-paragraph\">La<strong> 79<sup>e</sup> Assembl&eacute;e mondiale de la Sant&eacute;</strong> a ouvert un processus formel pour r&eacute;former la gouvernance de la sant&eacute; mondiale. Dans un poste de sant&eacute; du nord du Nig&eacute;ria, <strong>Mariam</strong> attend, et l&rsquo;article demande <a href=\"https://redasadki.me/2026/05/27/global-health-architecture-what-are-we-missing/\">qui manque dans la salle</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Lors d&rsquo;une heure de Teach to Reach le 4&nbsp;juin 2026, un patient suspect&eacute; d&rsquo;Ebola est entr&eacute; dans un centre de sant&eacute; en Ouganda et <strong>le personnel a recul&eacute;</strong>, sans formation et sans &eacute;quipement de protection. Ce moment ouvre le r&eacute;cit de <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-what-we-do-when-there-is-fear-in-every-health-worker-article-2-of-3/\">ce que font les professionnels de sant&eacute; quand la peur est dans la salle</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Un micro tendu pour &ecirc;tre c&eacute;l&eacute;br&eacute;e, une enseignante nig&eacute;riane a saisi ce moment pour <strong>avouer un probl&egrave;me qu&rsquo;elle ne peut pas r&eacute;soudre</strong>&nbsp;: ses &eacute;tudiants lui ont demand&eacute; d&rsquo;arr&ecirc;ter parce que la chaleur rendait toute r&eacute;flexion impossible. <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-honoring-tglfs-scholars-as-leaders-article-3-of-3/\">Honorer les Scholars, c&rsquo;&eacute;tait entendre cela aussi</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Faiza Rabbani</strong> se trouvait dans un dispensaire de village au Pendjab quand une jeune femme est pass&eacute;e devant elle en plein travail, sans &eacute;quipement et sans mots pour ce qui lui arrivait. C&rsquo;est le genre de cas <a href=\"https://redasadki.me/2026/05/30/teach-to-reach-newborn-care-a-baby-with-no-equipment-a-woman-with-no-words-article-3-of-4/\">&agrave; partir duquel la formation sur les soins au nouveau-n&eacute; a &eacute;t&eacute; construite</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Choisissez-en une.</p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd1c Ce qui arrive ensuite&nbsp;: un nouveau cadre de leadership nomme le travail pour lequel vous n&rsquo;avez jamais &eacute;t&eacute; form&eacute;, pr&eacute;sent&eacute; le 2&nbsp;juillet</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vous avez r&eacute;solu le refus d&rsquo;une communaut&eacute; de se faire vacciner. Vous avez maintenu un service quand le budget a manqu&eacute;. Vous avez n&eacute;goci&eacute; un passage s&ucirc;r dans une zone de conflit. Personne ne vous a appris tout cela, et cela n&rsquo;appara&icirc;t sur aucune fiche de poste. Le 2&nbsp;juillet, cela change.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Plus de 1&nbsp;300&nbsp;professionnels de sant&eacute; ont contribu&eacute; au nouveau cadre de comp&eacute;tences de la Fondation pour le leadership local en sant&eacute;, fond&eacute; sur une d&eacute;cennie d&rsquo;&eacute;ducation pour le changement. Il se pr&eacute;sente comme un programme manquant, parce qu&rsquo;il nomme le travail d&rsquo;adaptation que la formation officielle laisse de c&ocirc;t&eacute;. Il cartographie ce travail &agrave; travers neuf domaines, chacun d&eacute;crit &agrave; trois niveaux de ma&icirc;trise.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour vous, la promesse est la reconnaissance. Le travail invisible que vous faites d&eacute;j&agrave; peut enfin appara&icirc;tre dans une &eacute;valuation, sur un CV, et dans un parcours d&rsquo;avancement.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous dirigez une &eacute;quipe, il vous donne un langage pour les personnes qui r&eacute;solvent les probl&egrave;mes qu&rsquo;aucun protocole ne couvre. Il trouve du leadership &agrave; tous les niveaux, pas seulement chez les superviseurs. Et parce que chaque comp&eacute;tence est un comportement gradu&eacute; et observable, vous pouvez voir qui est pr&ecirc;t &agrave; faire plus, et l&rsquo;aider &agrave; y arriver.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/86517960688\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"RESERVEZ VOTRE PLACE\"><strong>R&Eacute;SERVEZ</strong> VOTRE PLACE<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>","doi":"https://doi.org/10.59350/63tfs-qy352","guid":"https://redasadki.me/?p=23977","image":"https://redasadki.me/wp-content/uploads/2026/06/newsletter5-035.jpg","language":"fr","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"2361c-0yx88","summary":"English | Fran\u00e7ais Bonjour, Vous le voyez : le changement climatique nuit \u00e0 la sant\u00e9 de votre communaut\u00e9. Le jeudi 2 juillet 2026, vous \u00eates invit\u00e9 \u00e0 rencontrer des professionnels de sant\u00e9 qui agissent d\u00e9j\u00e0. Apportez un d\u00e9fi que le climat provoque dans votre travail. Vous pourriez repartir avec une r\u00e9ponse d\u00e9j\u00e0 test\u00e9e par des coll\u00e8gues.","tags":["The Geneva Learning Foundation","Bundibugyo","Climate And Health","Climate Change","Ebola"],"title":"La lettre d'information du Scholar de la Fondation Apprendre Gen\u00e8ve, num\u00e9ro 5 (2 juillet 2026)","updated_at":1782838843,"url":"https://redasadki.me/2026/06/30/la-lettre-dinformation-du-scholar-de-la-fondation-apprendre-geneve-numero-5-2-juillet-2026/","version":"v1"},{"authors":[{"contributor_roles":[],"name":"The Geneva Learning Foundation"}],"blog":{"authors":null,"community_id":"7e26491f-41c6-4665-9088-5aa6643a1ba8","created":1731196800,"current_feed_url":null,"description":"Learning to make a difference","favicon":"https://rogue-scholar.org/api/communities/7e26491f-41c6-4665-9088-5aa6643a1ba8/logo","feed_format":"application/atom+xml","feed_url":"https://redasadki.me/feed/atom/","filter":null,"generator":"WordPress","home_page_url":"https://redasadki.me/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"redasadki","status":"active","subfield":"3304","title":"Reda Sadki","updated":1782838729,"use_api":true},"blog_name":"Reda Sadki","blog_slug":"redasadki","content_html":"<p class=\"has-text-align-left wp-block-paragraph\"><strong>English</strong> | <a href=\"https://redasadki.me/?p=23977\">Fran\u00e7ais</a></p>\n<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:908,&quot;href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/j\\/85731864236&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\/\\/us02web.zoom.us\\/webinar\\/register\\/WN_V2zemD1tSIO3zW0R9Ptqhg?_x_zm_rtaid=L3k-UbA2S82Bv7jJEDaKOg.1778176294156.055e86fb87e2c4745339b51fee5966a8\\u0026_x_zm_rhtaid=250&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:164,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/redasadki&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:845,&quot;href&quot;:&quot;https:\\/\\/www.linkedin.com\\/in\\/charlotte-mbuh-2b565298&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:91,&quot;href&quot;:&quot;https:\\/\\/www.learning.foundation\\/climate&quot;,&quot;archived_href&quot;:&quot;http:\\/\\/web-wp.archive.org\\/web\\/20250721100812\\/https:\\/\\/www.learning.foundation\\/climate&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-05 05:00:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-08 05:23:50&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-11 09:14:03&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2025-12-14 11:00:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-17 17:10:38&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-20 18:55:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-24 01:45:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-27 07:22:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-30 07:58:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-02 11:45:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-05 19:52:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-09 06:02:32&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-13 00:55:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-16 01:48:00&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 11:28:47&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-22 17:14:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-25 20:26:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-29 00:20:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-01 04:30:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 13:08:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-07 14:04:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-12 11:22:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 14:24:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-22 18:15:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-04 11:24:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-11 11:22:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 14:23:49&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-18 08:58:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-21 15:51:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 07:09:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-29 08:13:05&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-02 04:51:17&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-06 23:05:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-10 10:43:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-14 09:21:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-18 22:44:34&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-22 03:44:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-26 18:05:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-30 06:44:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 08:29:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-06 22:36:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-11 19:21:50&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-05-15 05:42:34&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-19 04:24:06&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-05-24 14:53:53&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-05-28 01:43:12&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-01 00:36:04&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-05 11:57:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-09 02:56:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-13 04:47:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-16 10:40:19&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-19 13:08:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-22 16:42:53&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-26 03:58:56&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-30 14:45:24&quot;,&quot;http_code&quot;:404}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-30 14:45:24&quot;,&quot;http_code&quot;:404},&quot;process&quot;:&quot;done&quot;}]\"></span>\n\n\n<p class=\"wp-block-paragraph\">Dear Reader,</p>\n\n\n\n<p class=\"wp-block-paragraph\">You see that climate change is hurting the health of your community.</p>\n\n\n\n<p class=\"wp-block-paragraph\">On Thursday 2 July 2026, you&nbsp;are invited to meet health workers who are already taking action.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/85731864236\" title=\"CONFIRM YOUR PARTICIPATION\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\">CONFIRM YOUR PARTICIPATION<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Bring one challenge it causes in your work.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You may leave with an answer a peer has already tested.</p>\n\n\n\n<p class=\"wp-block-paragraph\">What do health workers do when the road to the clinic floods, when the clinic is hotter than ever, when more people fall sick, more often, than before?</p>\n\n\n\n<p class=\"wp-block-paragraph\">This session is about those local solutions, the ones health workers are already&nbsp;using to save lives.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The people who shared them, from more than 60 countries, will be our guests of honour.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Participants will get access to our <a href=\"https://redasadki.me/2026/05/26/new-insights-report-health-workers-are-leading-community-responses-to-climate-change-impacts-on-health/\">new report on local action</a>&nbsp;to mitigate the impact of the climate crisis on health&nbsp;and the <a href=\"https://redasadki.me/2026/05/26/climate-change-and-health-14-recommendations-for-health-workers-national-planners-and-global-partners/\">14 surprising recommendations</a> for community staff, planners, and global partners.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>\ud83d\udde3\ufe0f This newsletter is interactive. Share your experience wherever you see this icon.</span></p>\n\n\n\n<p class=\"wp-block-paragraph\">Best regards,</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.linkedin.com/in/redasadki/\">Reda Sadki</a> and <a href=\"https://www.linkedin.com/in/charlotte-mbuh-2b565298/\">Charlotte Mbuh</a><br /><strong>The Geneva Learning Foundation</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">P.-S.&nbsp;Tell us what you think of this newsletter. It takes two minutes, and it shapes the next issue.</p>\n\n\n\n<h3 id=\"h-the-geneva-learning-foundation-scholar-newsletter-issue-5-2-july-2026\" class=\"wp-block-heading\"><em>The Geneva Learning Foundation Scholar Newsletter, issue 5 (2 July 2026)</em></h3>\n\n\n\n<h2 id=\"h-nbsp-climate-change-is-harming-your-community-s-health-a-practical-guide-to-what-you-can-do\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Climate change is harming your community's health: a practical guide to what you can do</h2>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23984\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/64ba16-6228-07f-f5dc-3464f18e0e0_20260619.23886.what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/19/what-you-can-do-if-climate-change-is-harming-your-communitys-health-a-practical-guide-to-the-certificate-peer-learning-programme-for-leadership-in-climate-change-and-health/\">Read the <strong>practical guide</strong> to see what you can do as a health professional</a></p>\n\n\n\n<p class=\"wp-block-paragraph\">You see the rains arriving early, the clinic running hotter, more people falling sick more often. This guide shows you what you can do about it, where you are, with what you have. You can start this week.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-accent-3-background-color has-background wp-element-button\" href=\"https://www.learning.foundation/climate\" title=\"JOIN THE PROGRAMME NOW\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THE PROGRAMME NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<h3 id=\"h-nbsp-why-your-work-during-the-last-flood-nbsp-matters-three-years-of-climate-health-action\" class=\"wp-block-heading\">\ud83d\udcd6&nbsp;Why your work during the last flood&nbsp;matters: three years of climate-health action</h3>\n\n\n\n<p class=\"wp-block-paragraph\">When the storm flooded the roads in Bomaka, Cameroon, a midwife named <strong>Geh Raphaela Agwa</strong> saved twins during a cord presentation, then wrote down what she did. Her neighbours had already dug the gutters so cars could pass. Neither of them waited for a policy to tell them how.</p>\n\n\n\n<p class=\"wp-block-paragraph\">This new review reads three years of work that treats accounts like hers as evidence, not anecdote. It gathers what health workers in Africa, Asia, and Latin America see and do, at a scale no survey had reached, and gives it back to them as a basis for action. It is the clearest answer yet to a question that decides whether your knowledge is heard: why is what you witness every day called anecdotal, when you are the one who was there?</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/16/lessons-in-resilience-what-health-workers-in-africa-asia-and-latin-america-know-and-do-in-response-to-worsening-climate-change-impacts-on-their-communities/\">Read why frontline experience is the missing layer of the climate and health response</a></p>\n\n\n\n<h3 id=\"h-nbsp-climate-change-and-health-the-event-shows-you-what-is-possible-this-new-nbsp-course-helps-you-do-it\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Climate change and health: the event shows you what is possible, this new&nbsp;course helps you do it</h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 2 July session lasts one hour. This new course is where you take your own challenge further, on your own time, with peers carrying the same one.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You may be the nurse who saw the rains come early, the community health worker walking further for safe water, or the officer rebuilding a clinic the wind tore down. The situations differ. The question is the same. What can you do, where you are, with what you have?</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Tell us one thing you are doing about climate change and health. Your answer could be the one a colleague is searching for.</p>\n\n\n\n<p class=\"wp-block-paragraph\">It is the first peer learning course on the health impacts of climate change, built on the report and with the REACH network of more than 4,000 local organisations. You work through what peers did in emergencies, what they did to prepare, and how they brought the community in. You leave with practical steps for your own place.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32182\" title=\"JOIN THIS CERTIFICATION NOW\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THIS CERTIFICATION NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23986\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/65227a-cdbd-eaa3-3276-13bca22f7a0_20260616.23858.talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h3 id=\"h-nbsp-use-artificial-intelligence-to-talk-to-1-000-health-workers-fighting-climate-change-impacts-on-health\" class=\"wp-block-heading\">\ud83d\udcd6&nbsp;Use artificial intelligence to talk to 1,000 health workers fighting climate change impacts on health</h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f&nbsp;</strong><a href=\"https://redasadki.me/2026/06/16/talk-to-the-evidence-a-chat-interface-to-explore-what-health-workers-know-and-do-about-climate-change-and-health/\">Ask our artificial intelligence interface a question</a> in plain language, like \"what did health workers in my country say about floods?\", and you get a complete, reliable answer.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The report is called <em>Teach to Reach 11: Local action to mitigate the impact of the climate crisis on health</em>. Health workers in Africa, Asia, and Latin America wrote it. They answered three plain questions: how did&nbsp;climate change hurt&nbsp;the health of your community, what did you do, and how did you know it worked.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Three findings run across every country. Climate change is making familiar diseases worse, not inventing new ones, so the signal is in the malaria, cholera, and malnutrition you already track. Communities are organising their own responses, in 17 documented ways. And the people closest to the harm are the least visible in the global research and policy conversation.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Take Yopougon, in C\u00f4te d'Ivoire. Konan Kouam\u00e9 Georges and his team did not wait for a guideline to change. When dengue followed the rains in 2023, they switched from weekly reporting to daily. That is a small change to read. It is a large change to do, and the kind formal systems take years to recommend.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You can put that collective intelligence to work now.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23988\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/b358bce-588-de63-caa3-0cf1f651cf7b_20260611.23742.d0-bd-d0-b0-d1-86-d1-96-d0-be-d0-bd-d0-b0-d0-bb-d1-8c-d0-bd-d0-b8-d0-b9-d1-85-d0.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-psychological-first-aid-the-netherlands-national-hub-for-mental-health-and-psychosocial-support\" class=\"wp-block-heading\">\ud83c\udf0d&nbsp;Psychological First Aid: <span>the Netherlands' national hub for mental health and psychosocial support</span></h2>\n\n\n\n<p class=\"wp-block-paragraph\">LOOP, the Netherlands&#8217; national hub for mental health and psychosocial support, has joined the European network for Psychological First Aid (PFA),&nbsp;built by over 2,000 practitioners with support from The Geneva Learning Foundation. Now the people who support displaced children across the Netherlands can learn from colleagues in Ukraine and elsewhere.&nbsp;\"The professionals supporting children affected by humanitarian crises and armed conflict&nbsp;should never have to be alone,\" said Charlotte Mbuh, TGLF's Director of Programmes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The need is wide and the help is thin. About 45% of displaced people from Ukraine in the Netherlands report feeling mentally unhealthy. Only about 7% have seen a psychologist. One social worker can carry more than one hundred residents.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u27a1\ufe0f </strong>Read <a href=\"https://redasadki.me/2026/06/11/the-netherlands-national-mhpss-hub-joins-the-european-peer-learning-network-for-psychological-first-aid/\">how the partnership came together</a>.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23985\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/6d40f3-f06-ea71-6a3-4ccac4bfec7e_20260622.23939.rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-bundibugyo-your-colleagues-in-the-response-need-you-nbsp-now\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;Bundibugyo: your colleagues in the response need you&nbsp;now</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first peer learning certification on Bundibugyo virus disease is open because the people fighting the outbreak in the Democratic Republic of the Congo and Uganda need each other inside it. If you have worked an Ebola response, write down the one thing you wish you had known, where a responder can read it this week.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://go.learning.foundation/tglf/c/32221\" title=\"JOIN THIS CERTIFICATION NOW\" style=\"background-color:#09ac00\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>JOIN</strong> THIS CERTIFICATION NOW<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">In this outbreak, more than half of the people falling sick are women and girls. A <a href=\"https://redasadki.me/2026/06/22/rapid-gender-analysis-what-we-know-so-far-about-the-bundibugyo-ebola-outbreak-in-the-democratic-republic-of-congo-and-uganda/\">rapid gender analysis</a> explains what that changes for the response, and why it cannot wait.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Did you miss it?</strong> Read how <a href=\"https://redasadki.me/2026/06/15/virus-bundibugyo-un-reseau-de-soignants-congolais-tissent-des-liens-de-riposte-et-de-resilience/\">Congolese caregivers are learning from each other</a> as they build their response.</p>\n\n\n\n<h2 id=\"h-coming-soon-in-togo-a-decade-of-peer-learning-grew-careers\" class=\"wp-block-heading\">\ud83d\udde3\ufe0f Coming soon: In Togo, a decade of peer learning grew careers</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Palenfo Gnourfateon</strong>, a long-time TGLF leader, was in Lom\u00e9 for a measles survey when he gathered whatever Scholars he could reach. Reda Sadki joined to say a quick hello. He stayed the full 119 minutes, because the room had become a record of what a decade of peer learning builds.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Winiga Koudema</strong> is a paediatric clinician in Togo. He became a district then a hospital director with no training in epidemiology. During COVID-19 a colleague sent him a link to a TGLF course. The courses led him to a postgraduate diploma, then to consultancy, then to permanent staff at the World Health Organization. \"This is an opportunity for me to truly re-launch myself,\" he said.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Manzama-Esso Kola</strong> is a sociologist who came to vaccination through HIV work. A 2019 course on data triangulation changed his practice. He wrote a manual, trained the monitoring officers across 39 organisations, and now coordinates a platform the immunisation division consults. \"We are a well-recognised and well-consulted actor in vaccination,\" he said.</p>\n\n\n\n<p class=\"wp-block-paragraph\">These are not careers that drifted away from the field. They moved deeper into it. That is the wager of the Scholar network: that the learning lives inside the people who run the system, and that it lasts. As Palenfo put it when the session closed, \"once a scholar, always a scholar.\"&nbsp;</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <a href=\"https://redasadki.me\"><strong>Check</strong> Reda Sadki's blog</a> to find the full article.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?resize=640%2C359&#038;ssl=1\" alt=\"\" class=\"wp-image-23987\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/1aaf15a-1c18-2257-8b0f-887ec42fa035_20260628.23955.menopause-what-health-workers-already-know-in-their-own-words.640-1.jpg?resize=300%2C168&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-what-health-workers-already-know-about-menopause\" class=\"wp-block-heading\">\ud83d\udccb&nbsp;What health workers already know about menopause</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first global peer learning course on menopause for health workers opened on 22 June, built with Menoglobal. Its first days showed how much health workers already carry.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Asked what menopause brings to mind, a community health board member in Costa Rica reached for a phrase from traditional medicine, \"the second Spring\", and wrote, \"It gives me hope and peace, since I am going through this transition.\" A medical social worker in Africa answered in one word: \"silence.\" The knowledge was there. It was waiting for a language.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f&nbsp;You will be surprised by&nbsp;<a href=\"https://redasadki.me/2026/06/28/menopause-what-health-workers-already-know-in-their-own-words/\">what they shared in week one</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udde3\ufe0f Share a menopause lesson, success, or challenge. Your words can help a colleague who has none yet.</p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"430\" src=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?resize=640%2C430&#038;ssl=1\" alt=\"\" class=\"wp-image-23989\" srcset=\"https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?w=640&amp;ssl=1 640w, https://i0.wp.com/redasadki.me/wp-content/uploads/2026/06/8bec11-5431-5fbc-cbd1-2dd680ea6fc2_20260527.23635.global-health-architecture-what-are-we-missing.640-1.jpg?resize=300%2C202&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" /></figure>\n\n\n\n<h2 id=\"h-nbsp-reading-worth-your-time\" class=\"wp-block-heading\">\u270d\ufe0f&nbsp;Reading worth your time</h2>\n\n\n\n<p class=\"wp-block-paragraph\">A few recent reads from The Geneva Learning Foundation's <strong>Reda Sadki</strong> and <strong>Charlotte Mbuh</strong>, if you have ten minutes between meetings.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The<strong> 79th World Health Assembly</strong> opened a formal process to reform how global health is governed. In a health post in northern Nigeria, <strong>Mariam</strong> is waiting, and the piece asks <a href=\"https://redasadki.me/2026/05/27/global-health-architecture-what-are-we-missing/\">who is missing from the room</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">In one Teach to Reach hour on 4 June 2026, a suspected Ebola patient walked into a clinic in Uganda and <strong>the staff backed</strong> away, with no training and no protective equipment. That moment opens the story of <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-what-we-do-when-there-is-fear-in-every-health-worker-article-2-of-3/\">what health workers do when fear is in the room</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Handed a microphone to be celebrated, a Nigerian lecturer used her moment to <strong>confess a problem she cannot solve</strong>: her students asked her to stop because the heat made it impossible to think. <a href=\"https://redasadki.me/2026/06/15/teach-to-reach-honoring-tglfs-scholars-as-leaders-article-3-of-3/\">Honouring Scholars meant hearing that too</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Faiza Rabbani</strong> was in a village dispensary in Punjab when a young woman walked past her in labour, with no equipment and no words for what was happening. It is the kind of case <a href=\"https://redasadki.me/2026/05/30/teach-to-reach-newborn-care-a-baby-with-no-equipment-a-woman-with-no-words-article-3-of-4/\">the newborn care course was built from</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Pick one.</p>\n\n\n\n<h3 id=\"h-nbsp-what-is-coming-next-a-new-leadership-framework-names-the-work-you-were-never-trained-for-presented-on-2-july\" class=\"wp-block-heading\">\ud83d\udd1c&nbsp;What is coming next: a new leadership framework names the work you were never trained for, presented on 2 July</h3>\n\n\n\n<p class=\"wp-block-paragraph\">You have resolved a community's refusal to vaccinate. You have kept a service running when the budget failed. You have negotiated safe passage in a conflict zone. No one taught you any of it, and it appears on no job description. On 2 July, that changes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Over 1,300 health workers contributed to TGLF's new competency framework for local health leadership, grounded in a decade of education for change. It calls itself a missing curriculum, because it names the adaptive work that formal training leaves out. It maps that work across nine domains, each described at three levels of proficiency.</p>\n\n\n\n<p class=\"wp-block-paragraph\">For you, the promise is recognition. The invisible work you already do can finally appear in a performance review, on a CV, and in a path to advancement.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you lead a team, it gives you a language for the people who solve the problems no protocol covers. It finds leadership at every level, not only in supervisors. And because each competency is a graded, observable behaviour, you can see who is ready to do more, and help them get there.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button tw-has-icon has-icon__external\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://us02web.zoom.us/j/85731864236\" title=\"SAVE YOUR SEAT\" style=\"background-color:#0966c2\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>SAVE</strong> YOUR SEAT<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3h7v2H5v14h14v-7h2v7q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z\"></path></svg></a></div>\n</div>","doi":"https://doi.org/10.59350/4jsfn-kf182","guid":"https://redasadki.me/?p=23969","image":"https://redasadki.me/wp-content/uploads/2026/06/newsletter5-036.jpg","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"rvg8k-nfk19","summary":"English | Fran\u00e7ais Dear Reader, You see that climate change is hurting the health of your community. On Thursday 2 July 2026, you are invited to meet health workers who are already taking action. Bring one challenge it causes in your work. You may leave with an answer a peer has already tested.","tags":["The Geneva Learning Foundation","Bundibugyo","Climate And Health","Climate Change","Ebola"],"title":"The Geneva Learning Foundation Scholar Newsletter, issue 5 (2 July 2026)","updated_at":1782838841,"url":"https://redasadki.me/2026/06/30/the-geneva-learning-foundation-scholar-newsletter-issue-5-2-july-2026/","version":"v1"},{"authors":[{"contributor_roles":[],"family":"Marcum","given":"Christopher Steven","url":"https://orcid.org/0000-0002-0899-6143"}],"blog":{"authors":null,"community_id":"8bdb1ae7-4621-4fa5-ad1a-3a639417dfd5","created":1768694400,"current_feed_url":null,"description":"Perspectives on science, data, and technology that don't fit anywhere else.","favicon":"https://rogue-scholar.org/api/communities/8bdb1ae7-4621-4fa5-ad1a-3a639417dfd5/logo","feed_format":"application/atom+xml","feed_url":"http://chrismarcum.com/marcum-blog/feed.atom","filter":null,"generator":"Jekyll","home_page_url":"https://www.chrismarcum.com/marcum-blog/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"chrismarcum","status":"active","subfield":"3312","title":"Open Evidence","updated":1782820183,"use_api":null},"blog_name":"Open Evidence","blog_slug":"chrismarcum","content_html":"<p>The Office of Management and Budget (OMB) has proposed revisions to its Uniform Guidance under 2 CFR 200, which sets government-wide standards for federal financial assistance. Simultaneously, the National Science Foundation (NSF) has issued draft updates to its Proposal and Award Policies and Procedures Guide (historically called the PAPPG now renamed the Guidance on Financial Assistance or GFA). These two policies work together because the Uniform Guidance establishes the overarching regulatory framework that the National Science Foundation must implement within its specific agency grant terms and conditions.</p>\n<p>These proposed policy frameworks intersect directly with core equities surrounding public access to federally-funded research and data. The NSF proposal references these equities by incorporating data management requirements that align with federal public access plans and by eliminating the traditional twelve-month publication delay for peer-reviewed journal articles and conference proceedings. At the same time, the broader OMB proposal introduces rules affecting cost considerations for scholarly publishing, specifically making publication costs like article processing charges unallowable under direct costs unless approved in advance (and some confusing language that may prevent journal subscriptions under indirect costs).</p>\n<p>Public participation is critical even if comments are ignored by this Administration (they may help inform a future Administration's actions and can amplify the distress signal to members of Congress). As of publication of this blog post, there were nearly 70,000 public comments about the OMB rule received and 40K had been published. Comments are due July, 13th). I've yet to submit my own (stay tuned!). Comments on the NSF's GFA proposal under are due by August 24, 2026. There are only 3 published comments to the NSF proposal as of today. I suggest commenting early and often.  You don't need to submit a detailed, expert comment to make your voice heard. You can simply state your concern in plain language. Commenting helps improve the public record on a proposed rulemaking and is an important tool for participatory democracy.</p>\n<p>Submit comments here:</p>\n<ul>\n<li><a href=\"https://www.regulations.gov/document/OMB-2026-0034-0001\">OMB's Regulation for Federal Financial Assistance (2 CFR 200)</a> comments are due July 13, 2026</li>\n<li><a href=\"https://www.regulations.gov/document/NSF-2026-OTR-0001-0002\">NSF's Agency Information Collection Activities; Proposals, Submissions, and Approvals: National Science Foundation Proposal/Award Information Guidance on Financial Assistance</a> comments are due August 24, 2026</li>\n</ul>\n<h1 id=\"crosswalk\">CrossWalk</h1>\n<p>I've read both proposals carefully. For full transparency, I had privileged access earlier versions of both 2 CFR 200 and the GFA revisions in my former role at OMB. I was also a contributor to the 2024 revisions of the Uniform Guidance and reviewed the previous iteration of the GFA too. When I left OMB in July of 2025 the Uniform Guidance in 2 CFR 200 internal revisions included:</p>\n<ul>\n<li>Transitioning the guidance into a regulation (as officially proposed)</li>\n<li>Removed ELAs and all language that could be construed by political appointees as DEIA (a bespoke revision, not what was officially proposed)</li>\n<li>Focused almost exclusively on indirect costs by limiting them to the <em>de minimus</em> at 15% (obviously, OMB changed directions)</li>\n</ul>\n<p>At that time of my departure, the version I last saw had practically everything else remaining in tact. There was some back-and-forth between career and political officials about certain cost-principles (at some point, there was a bizarre prohibition on using indirects to support things like libraries at Unis which was thankfully struck from early drafts). There was also a strong intent by career staff to do a comprehensive regulatory impact analysis (RIA) with full economic benefit/cost considerations. Political appetite for that appears to have waned as <a href=\"https://www.regulations.gov/document/OMB-2026-0034-0038\">the released version</a> of the RIA is thin on actual economic details.</p>\n<p>Because the two documents work together with respect to things I care deeply about like public access to federally-funded research and data, I thought share my read of how the NSF and OMB policies compare to each other.</p>\n<h2 id=\"award-selection-merit-and-peer-review-and-administration-priorities\">Award selection, merit and peer-review, and Administration priorities</h2>\n<p>One of the most widely discussed and consequential changes in the OMB rule concerns how discretionary awards are selected. Proposed \u00a7 200.202(a)(1)(iii) requires program design to align with administration policies and priorities. Proposed \u00a7 200.205(b) requires agency heads to designate senior appointees to conduct a pre-issuance review of all discretionary awards, ensuring proposals are consistent with applicable law, Federal agency priorities, and the national interest, and applying principles that include demonstrably advancing the President's policy priorities, several substantive funding prohibitions, and commitments to Gold Standard Science. Proposed \u00a7 200.205(c) directs those appointees not to ratify or routinely defer to others' recommendations. Proposed \u00a7 200.205(d) provides that peer-review recommendations remain advisory and are not to be treated as binding.</p>\n<p>Technically, peer-review has always been fire-walled from funding decisions. Agencies have always had the discretion to ignore peer-review by funding proposals that were scored poorly, or not funding those that were scored highly, by review panels. What's new here is the implication that <em>all</em> granting decisions undergo political oversight before being finalized. Much as been said about this aspect of the OMB proposal (I recommend the piece by Science Editor-in-Chief <a href=\"https://www.science.org/doi/10.1126/science.aej3572\">Holden Thorpe</a> ).</p>\n<p>The NSF GFA does not reproduce this framework as explicitly as is stated in 2 CFR 200. Its merit review guide (Guide 8) is described in the Summary of Changes as having no significant changes. It retains the Intellectual Merit and Broader Impacts criteria, describes a process in which a Program Director's recommendation is approved by an NSF leadership official and then reviewed by a Grants Officer for financial, policy, and risk considerations, and states that award decisions are discretionary and consider NSF policies and priorities. The GFA does not reference senior appointees, the President's policy priorities, or a pre-issuance review applying those priorities, and it does not state that peer-review is subject to oversight for alignment with administration or Presidential priorities. Because \u00a7 200.205 is a government-wide requirement, it would apply to NSF directly under 2 CFR 200 once final, but the GFA as drafted does not implement it. However, the GFA does repeatedly reference vague conditions that proposals will be reviewed in the context of \"priorities.\"</p>\n<h2 id=\"gold-standard-science-gss\">Gold Standard Science (GSS)</h2>\n<p>Both documents reference EO 14303 and Gold Standard Science, but in different ways. The OMB rule embeds Gold Standard Science in award selection through \u00a7 200.205(b)(5) to (7), directing agencies to favor institutions that demonstrate success in implementing it. The NSF GFA treats GSS as a scientific-rigor and integrity expectation in Guide 13 and as a driver of Data Management and Sharing Plan requirements in Guide 5. The NSF GFA does not explicitly apply GSS in its award principles but its invocation in the text implies it will likely guide political pre-issue grant review.</p>\n<h2 id=\"nondiscrimination-and-funding-prohibitions-eg-deia-prohibitions\">Nondiscrimination and funding prohibitions (e.g. DEIA prohibitions)</h2>\n<p>The OMB rule adds substantive funding prohibitions through \u00a7 200.205(b)(2), \u00a7 200.300(b), \u00a7 200.218, and \u00a7 200.219, covering racial preferences, DEIA practices that violate anti-discrimination law, gender ideology, child transition, disparate-impact liability, and viewpoint discrimination in event services. The NSF GFA Guide 19 retains general nondiscrimination on the bases of race, color, national origin, disability, sex, and age, and removes references to revoked Executive Orders, limited English proficiency, environmental justice, and certain Department of Education coordinator requirements. The GFA does not reproduce the OMB prohibitions. However, the rules would apply to NSF directly under 2 CFR 200 when the rule is finalized.</p>\n<h2 id=\"award-type-and-foreign-or-domestic-scope\">Award type and foreign or domestic scope</h2>\n<p>The OMB rule eliminates fixed amount awards and subawards (\u00a7\u00a7 200.201(b), 200.333, 200.1, 200.101, 200.102). The GFA removes all fixed-price award references, which is a direct implementation. The OMB rule establishes a domestic-first framework for research and development awards and restricts foreign entities (\u00a7 200.202(e)); the GFA implements an equivalent foreign-organization justification standard tied to the national interest. The OMB rule prohibits covered foreign collaborations (\u00a7 200.220); the GFA addresses foreign-collaboration risk through its research security regime in Guide 14 rather than by restating that section. The OMB rule requires English-language announcements and applications (\u00a7 200.111); the GFA removes limited-English-proficiency requirements, which is consistent with the new 2 CFR 200 proposal.</p>\n<h2 id=\"integrity-and-disclosure\">Integrity and disclosure</h2>\n<p>The OMB rule revises the conflict-of-interest provision (\u00a7 200.112) to require disclosure of personnel employed by the awarding agency within the preceding two years; the GFA implements this near-verbatim in Guide 14, substituting NSF for the awarding agency. The OMB rule revises mandatory disclosures (\u00a7 200.113), including a ten-day transmittal of OIG disclosures to the U.S. Attorney's Office for the District of Columbia; the GFA addresses misconduct and disclosure in Guides 13 and 25 but does not reproduce that explicitly. I suspect that the NSF scientific integrity policy would be implicated here in some way but it is not clear</p>\n<h2 id=\"cost-principles\">Cost principles</h2>\n<p>The OMB rule makes publication costs unallowable, including page charges and article processing charges (APCs), except where required by statute or approved in advance, while keeping printing costs allowable (\u00a7 200.461). The GFA states that publication costs are disallowed and reflects the closeout exception, but its  budget guidance in Guide 4 still lists page charges and reprints as allowable. This is an internal inconsistency in the GFA.</p>\n<p>It is reassuring to see language in the GFA that invokes the policies set forth by the 2022 OSTP Public Access Memo (recast as being consistent with GSS) in Guides 5 and 21, respectively:</p>\n<ul>\n<li>\"Further implements public access requirements through revisions to Data Management and Sharing Plan requirements that align with NSF's Gold Standard Science Implementation Plan.\"</li>\n<li>\"Updates public access requirements by removing the 12-month publication delay for peer-reviewed journal articles and conference proceedings.\"</li>\n</ul>\n<p>There has been some confusion about whether or not the OMB ban on APCs is inconsistent with agency public access policies that require immediate public access to federally funded research. Let me be absolutely clear: the 2022 OSTP Public Access Policy (i.e., the Nelson Memo) makes no reference to any business model. Federal agencies are free to implement the zero-embargo policy by asserting their Federal Purpose License (incidentally codified in \u00a7 2 CFR 200.315(b)) by requiring authors to deposit their author-accepted manuscripts in the agency repository (at NSF, it's PAR at NIH it's PMC, for instance).</p>\n<p>Paying APCs is a business decision that publishers impose on authors - it's entirely unrelated to agency policy per se. Some publishers have been acting in bad-faith to convince (and sometimes coerce) authors into paying APCs as the <em>only</em> way to comply with federal public access policies. They intentionally conflate <em>open access</em> with <em>public access</em> - open access is never mentioned in the Nelson Memo. Authors may choose APCs in order to publish their work as open access; or they may retain their rights to deposit their author-accepted manuscript in the agency designated repositories. If a publisher says that authors must pay a fee to deposit their own manuscripts, then that means they are tying their editorial decisions to their business model. The agencies' Federal Purpose License preempts any agreement between authors and publishers because the author's institutions agreed to the terms when they signed the funding contract with the agency.</p>\n<p>However, that is not to say that there may be unintended consequences of not allowing APCs in direct grants. That's been widely discussed in response to NIH's proposal to cap APCs:</p>\n<ul>\n<li><a href=\"https://www.science.org/content/article/nih-details-options-limiting-its-payments-open-access-publishing-fees\">NIH details options for limiting its payments for open-access publishing fees\nOther publishing proposals would scrap reimbursements or pay peer reviewers, unprecedented steps for a major government funder</a></li>\n<li><a href=\"https://upstream.force11.org/my-response-to-nih-request-for-information-on-proposed-apc-caps/\">My Response to the NIH Request for Information on Proposed APC Caps</a></li>\n<li><a href=\"https://www.insidehighered.com/news/government/science-research-policy/2025/08/27/nih-publisher-fee-cap-plan-not-comprehensive\">NIH Publisher Fee Cap Plan 'Not Comprehensive Enough,' Critics Say</a></li>\n<li><a href=\"https://undark.org/2026/01/07/apc-science-publishing/\">In Scientific Publishing, Who Should Foot the Bill?</a></li>\n</ul>\n<p>The GFA does not invoke the Federal Purpose License, which remains unchanged at \u00a7 2 CFR 200.315(b) in the OMB proposal:</p>\n<blockquote>\n<p>To the extent permitted by law, the recipient or sub-recipient may copyright any work that is subject to copyright and was developed, or for which ownership was acquired, under a Federal award. The Federal agency reserves a royalty-free, nonexclusive, and irrevocable right to reproduce, publish, or otherwise use the work for Federal purposes and to authorize others to do so. This includes the right to require recipients and sub-recipients to make such works available through agency-designated public access repositories.</p>\n</blockquote>\n<p>Critically, the OMB rule does not change the <em>de minimis</em> indirect cost rate or modify indirects directly - however, there are indirect modifications of the indirect costs (zing!) because OMB made heavy revisions to Subpart E, which apply to both direct and indirect cost considerations. For example, OMB should clarify whether proposed revisions to \u00a7 200.454(b) regarding \"costs of the recipient's or sub-recipient's subscriptions to business, professional, academic, and technical periodicals are unallowable\" mean that Universities cannot use their indirects for libraries to pay for subscriptions to academic journals. A valid argument could be made for prohibiting academic journal subscriptions as direct costs but providing periodicals as a service to the entire University is an historical practice that makes no sense to prevent from flowing as indirect facilities and administrative costs.</p>\n<p>The GFA's 15% rate reflects the existing \u00a7 200.414. Additionally: the OMB rule adds an award-selection preference for institutions with lower indirect cost rates (\u00a7 200.205(b)(3)) while the GFA does not adopt that preference directly and the OMB rule makes a narrow change to prior written approval (\u00a7 200.407); the GFA updates its Prior Approval Matrix as a framework alignment.</p>\n<h2 id=\"an-ai-assisted-crosswalk-of-the-two-proposals\">An AI-Assisted Crosswalk of the Two Proposals</h2>\n<p>I asked Claude Opus 4.8 with high effort using the following prompt:\nto generate a crosswalk table:</p>\n<blockquote>\n<p>Attached are two proposed federal rule changes. One is a proposed change to 2 CFR 200 by the Office of Management and Budget. The second is a proposed change to the NSF's GFA. The two policies work hand in hand in how the NSF sets the terms and conditions of their grants, contracts, and awards. Your task is to do a complete and thorough crosswalk of the two proposed changes, evaluate whether and how the NSF GFA would implement the proposed 2 CFR 200 changes and if there are any deviations.</p>\n</blockquote>\n<p>I then went through and checked that the cross-references were correct (I didn't find any major issues) and added my own notes and analysis  in the rightmost column. Use at your own risk!</p>\n<h2 id=\"theme-1-award-selection-meritpeer-review-and-alignment-with-priorities\">Theme 1: Award selection, merit/peer-review, and alignment with priorities</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Program design must align with administration policies and priorities</td>\n<td>\u00a7 200.202(a)(1)(iii) (instr. 53): a Federal program must be designed with goals that \"Align with administration policies and priorities.\" Preamble A.5 and Section \"200.202.\"</td>\n<td>Guide 8 (\"Proposal Processing and Merit Review\") retains Intellectual Merit and Broader Impacts (\u00a7 B). Guide 9: \"Award of NSF assistance is discretionary,\" with \"program budget and priorities\" as factors. Guide 8 \u00a7F: award abstract \"articulate how the project serves the national interest.\" Summary of Changes, Guide 8: \"No significant changes.\"</td>\n<td>GFA references discretionary awards and \"NSF policies and priorities\" but does not adopt full alignment with OMB's proposal or its implications that political oversight is mandatory (see below).</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Pre-issuance review by senior appointees; peer-review is advisory</td>\n<td>\u00a7 200.205(b) (instr. 55): agency heads \"must designate one or more senior appointees to conduct a pre-issuance review of all discretionary awards\" to ensure proposals are \"consistent with applicable law, Federal agency priorities, and the national interest,\" applying principles including that awards \"demonstrably advance the President's policy priorities.\" \u00a7 200.205(c): senior appointees \"must not ministerially ratify or routinely defer to the recommendations of others.\" \u00a7 200.205(d): peer-review recommendations \"remain advisory and are not\u2026treated as de facto binding.\" Preamble (\u00a7 200.205 strengthens merit review and establishes pre-issuance review consistent with EO 14332).</td>\n<td>Guide 8 \u00a7A: Program Director recommendation \"is approved by the NSF leadership official\" before the Grants Officer. Guide 8 \u00a7F: recommendations \"are reviewed by NSF leadership and then evaluated by NSF Grants Officers for financial, policy, and risk considerations.\" No reference to senior appointees, the President's policy priorities, the \u00a7 200.205(b)(2) prohibitions, or the \"peer-review advisory/not binding\" clause. Summary of Changes, Guide 8: \"No significant changes.\"</td>\n<td>OMB's government-wide pre-issuance review and the political-priorities principles are absent from the GFA except vaguely referenced as \"priorities\". However, it would apply to NSF directly under 2 CFR 200 once it is finalized.</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Gold Standard Science (EO 14303) as an award principle</td>\n<td>\u00a7 200.205(b)(5)-(7) (instr. 55): applicants \"should commit to complying with administration policies\u2026respecting Gold Standard Science\"; awards should include \"a commitment to achieving Gold Standard Science\"; for science grants, agencies \"should prioritize institutions that have demonstrated success in implementing Gold Standard Science.\" EO 14303 listed in authority citation.</td>\n<td>Guide 13 \u00a7D \"Gold Standard Science\" (p.140): defines the term and states NSF \"expects the highest standards of scientific rigor, integrity and adherence to tenets of Gold Standard Science.\" Guide 5: DMSP requirements \"align with NSF's Gold Standard Science Implementation Plan.\" Summary of Changes, Guide 5 and Guide 13.</td>\n<td>GFA treats Gold Standard Science as a scientific-rigor and integrity expectation and a data-management driver, not as a senior-appointee award-selection principle.</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Substantive funding prohibitions (DEI, gender ideology, child transition, disparate impact, viewpoint discrimination)</td>\n<td>\u00a7 200.205(b)(2) (instr. 55): awards must not fund racial preferences, \"denial\u2026of the sex binary,\" illegal immigration, or \"anti-American values.\" \u00a7 200.300(b) (instr. 66): prohibits funding DEI/DEIA practices that violate anti-discrimination law, \"gender ideology as defined in Executive Order 14168,\" and child \"transition.\" \u00a7 200.218 (instr. 63): eliminate disparate-impact liability. \u00a7 200.219 (instr. 64): prohibit discriminatory event services.</td>\n<td>Guide 19 (\"Discrimination, Sexual Harassment, and Assault,\" p.173): general nondiscrimination based on \"race, color, national origin, disability, sex, or age.\" Summary of Changes, Guide 19: \"Removes references and requirements to revoked executive orders, including certain non-discrimination, limited English proficiency, and environmental justice requirements,\" and removes ED Section 504 / Title IX coordinator / age-evaluation requirements.</td>\n<td>GFA removes revoked-EO DEI/LEP/EJ content but does not reproduce the OMB DEI, gender-ideology, transition, disparate-impact, or event-services prohibitions. Of course,those would apply to NSF directly under 2 CFR 200 once finalized.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-2-award-type-structure-and-foreigndomestic-scope\">Theme 2: Award type, structure, and foreign/domestic scope</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>5</td>\n<td>Elimination of fixed amount awards and subawards</td>\n<td>\u00a7 200.201(b) (instr. 52): fixed amount awards \"not permitted unless otherwise authorized by Federal statute\"; \u00a7 200.333 (instr. 82): fixed amount subawards \"also are not permitted\"; \u00a7 200.1 (instr. 43.b) removes the definition; \u00a7\u00a7 200.101, 200.102 remove references.</td>\n<td>Summary of Changes, Guide 1: \"Removes references to fixed-price awards.\" No fixed-price or fixed-amount award language remains in the GFA body (verified absence).</td>\n<td>These changes appear to be fully aligned between the two proposals.</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Domestic-first framework for research and development awards</td>\n<td>\u00a7 200.202(e) (instr. 53): R&amp;D awards must go to U.S./State/Tribal entities; foreign entities only where authorized or with a compelling interest \"determined by the agency's senior appointee\"; \"domestic-first framework\"; international elements only if \"in the national interest.\"</td>\n<td>Guide 2 \u00a7C: foreign-organization funding must be \"necessary and beneficial to U.S. research and education and in the national interest of the United States,\" with factors mirroring \u00a7 200.202(e)(3).</td>\n<td>This is fully implemented in the GFA, however, the NSF does not reference the \"senior appointee\" determination.</td>\n</tr>\n<tr>\n<td>7</td>\n<td>Prohibition on covered foreign collaborations</td>\n<td>\u00a7 200.220 (instr. 65): Federal funds may not support collaborations with a \"covered foreign country or covered foreign entity,\" subject to exceptions.</td>\n<td>Guide 14 (\"Research Security\"): foreign disclosure, Malign Foreign Talent Recruitment Program restrictions, foreign-countries-of-concern provisions, foreign financial disclosure. Summary of Changes, Guide 14.</td>\n<td>NSF addresses foreign-collaboration risk through its research security regime; it does not reproduce \u00a7 200.220 verbatim.</td>\n</tr>\n<tr>\n<td>8</td>\n<td>English-language-only announcements and applications</td>\n<td>\u00a7 200.111 (instr. 49): all announcements, applications, and award information \"must be in the English language.\"</td>\n<td>Summary of Changes, Guide 19: removes limited-English-proficiency requirements.</td>\n<td>These are full aligned in the two proposals.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-3-integrity-and-disclosure\">Theme 3: Integrity and disclosure</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>9</td>\n<td>Conflict of interest: disclose agency employment within preceding two years</td>\n<td>\u00a7 200.112 (instr. 50): disclose whether personnel who worked on the application or will work on the award \"were employed by the awarding Federal agency during the preceding two years prior to application submission\u2026for informational purposes.\"</td>\n<td>Guide 14 \"Former NSF Staff\": near-verbatim text, substituting \"NSF\" for \"the awarding Federal agency.\" Summary of Changes, Guide 3.</td>\n<td>This change is consistent between the two policies.</td>\n</tr>\n<tr>\n<td>10</td>\n<td>Mandatory disclosures of criminal/False Claims violations; OIG transmittal</td>\n<td>\u00a7 200.113 (instr. 51): prompt written disclosure of credible evidence of fraud, conflict of interest, bribery, gratuity, or False Claims violations; OIG disclosures \"transmitted to the United States Attorney's Office for the District of Columbia within ten days.\"</td>\n<td>GFA addresses misconduct/disclosure in Guides 13 and 25; research misconduct under 45 CFR 689.</td>\n<td>GFA does not reproduce the \u00a7 200.113 USAO-DC transmittal mechanic.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-4-cost-principles-and-allowability\">Theme 4: Cost principles and allowability</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>11</td>\n<td>Publication costs unallowable</td>\n<td>\u00a7 200.461 (instr. 107): publication costs \"(including page charges, article processing charges (APCs), or similar fees\u2026) are unallowable\" except where required by statute or approved in advance; printing costs allowable; closeout exception at (c)(2).</td>\n<td>Summary of Changes, Guide 12: \"Disallows publication costs consistent with proposed revisions to 2 CFR 200.\" Closeout treatment in Guide 11. But Guide 4 \u00a7B6.3 \"Documentation and Printing (Line G2)\" still permits \"Reports, reprints, page charges and illustrations.\"</td>\n<td>Inconsistent. Stated change and closeout treatment align with \u00a7 200.461, but Guide 4 still lists page charges as allowable.</td>\n</tr>\n<tr>\n<td>12</td>\n<td>De minimis indirect cost rate (15%)</td>\n<td>No change. Preamble Section IX: \"OMB is not proposing updates to the indirect cost rate negotiation system.\" \u00a7 200.414 not amended. 15% is the current rate.</td>\n<td>Guide 4 \u00a7B \"De Minimis Rate\": \"up to 15%\" of MTDC. Summary of Changes, Guide 12: \"consistent with 2 CFR 200\" (no \"proposed\").</td>\n<td>Current-rule. Not traceable to this rule.</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Preference for lower indirect cost rates in award selection</td>\n<td>\u00a7 200.205(b)(3) (instr. 55): \"preference for discretionary awards should be given to institutions with lower indirect cost rates.\"</td>\n<td>Guide 4 indirect-cost guidance describes negotiated and de minimis rates; no award-selection preference for lower rates.</td>\n<td>The GFA refers back to NSF's existing indirect cost-principles throughout the document.</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Prior written approval framework</td>\n<td>\u00a7 200.407 (instr. 96): removes paragraph (d); adds (l) for \u00a7 200.454 memberships and subscriptions; general limitation that agencies \"must not impose additional prior approval requirements without OMB approval.\"</td>\n<td>Guide 11 \u00a7C \"Changes to Projects that Require Prior Approval From NSF\"; \"NSF Prior Approval Matrix.\" Summary of Changes, Guide 12.</td>\n<td>There is no one-to-one match to the narrow \u00a7 200.407 change.</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Other cost-principle revisions (advertising/PR, conferences, memberships, selling/marketing, travel)</td>\n<td>\u00a7\u00a7 200.421, 200.432, 200.454, 200.467, 200.475 (instr. 97, 100, 105, 108, 110).</td>\n<td>Guide 4 references several of these by section (for example, 2 CFR 200.432 for meals, 200.465 home office, 200.445 working-from-home, 200.475 airfare).</td>\n<td>The GFA partially incorporates this by reference. GFA incorporates 2 CFR 200 cost principles generally rather than restating each revision.</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"theme-5-property-termination-and-structure\">Theme 5: Property, termination, and structure</h2>\n<table>\n<thead>\n<tr>\n<th>#</th>\n<th>Policy change</th>\n<th>OMB 2 CFR 200 location and text</th>\n<th>NSF GFA location and text</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>16</td>\n<td>Equipment management by States and Tribes</td>\n<td>\u00a7 200.313(b) (instr. 72): States and Indian Tribes manage and dispose of equipment under their own laws; other recipients follow (c) through (e).</td>\n<td>Guide 15 \u00a72 \"Title and Use of Equipment\" (p.146): title \"normally vests in the recipient upon acquisition unless the award specifies otherwise\"; references 2 CFR 200.312-200.313. Summary of Changes, Guide 15: align with \"current 2 CFR 200.313.\"</td>\n<td>The single proposed change to \u00a7 200.313(b) is not specifically restated.</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Termination and suspension at agency discretion</td>\n<td>\u00a7 200.340 (instr. 87): new (a)(2) discretionary termination where an award \"does not effectuate program goals, Federal agency priorities, or the national interest\"; exceptions for entitlement/formula/specified programs; \u00a7 200.101(d) makes \u00a7 200.340 govern non-statutory conflicts; \u00a7 200.339 revised (instr. 86).</td>\n<td>Guide 25 \u00a7A (p.197): \"changes in priorities\" listed as a termination reason; \"Termination\" defined by reference to \u00a7 200.201; suspension/termination \"pursuant to a) 2 CFR 200.339 and 2 CFR 200.340.\" Summary of Changes, Guide 25.</td>\n<td>The proposed policies are fully aligned here; this is the mechanism used by DOGE to justify their arbitrary canceling of government contracts in 2025 and now it'll be codified in reg if the rule is finalized.</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Regulatory status, effective date, and conflict precedence</td>\n<td>\u00a7\u00a7 200.101(d), 200.102, 200.106, 200.110 (instr. 44-48): clarify that part 200 governs in non-statutory conflicts (subpart F and \u00a7 200.340), agency adherence to other subtitle A parts, and effective-date structure.</td>\n<td>Guide 1: \"2 CFR 200 takes precedence over any requirements in the GFA,\" citing 2 CFR 200.102.</td>\n<td>Aligned in principle per the GFA statement.</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Definitions revised (\u00a7 200.1)</td>\n<td>\u00a7 200.1 (instr. 43): revises \"Federal award date,\" \"improper payment,\" \"PII,\" \"unobligated balance,\" \"compliance supplement,\" \"notice of funding opportunity\"; removes \"Fixed amount award\" and \"Protected PII.\" Does not change \"Indian Tribe.\"</td>\n<td>GFA defines terms by reference to 2 CFR 200.1 throughout (for example, \"Federal Agency,\" \"Local Government,\" \"Indian Tribe\"). Summary of Changes, Guide 2: replaces \"Tribal Nations\" with \"Indian Tribes,\" align with \"current 2 CFR 200.\"</td>\n<td>It's unclear whether any tribal consultation was done before the change from \"Tribal Nations\" to \"Indian Tribes\" were proposed.</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Prohibition of certain telecommunications/surveillance equipment</td>\n<td>\u00a7 200.216 (instr. 62): retains prohibition on covered telecommunications and video surveillance equipment/services.</td>\n<td>Guide 4 covers the American Security Drone Act of 2023 (covered drones), a separate authority.</td>\n<td>Other authority. \u00a7 200.216 is not specifically mentioned in the GFA but GFA's drone provision rests on statute, not \u00a7 200.216.</td>\n</tr>\n</tbody>\n</table>","doi":"https://doi.org/10.59350/jgh5j-ch105","guid":"https://www.chrismarcum.com/marcum-blog/2026/06/30/A%20Crosswalk%20Between%20OMB%20and%20NSF%20Proposed%20Rules%20on%20Grantmaking","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"aajd5-7q411","summary":"The Office of Management and Budget (OMB) has proposed revisions to its Uniform Guidance under 2 CFR 200, which sets government-wide standards for federal financial assistance.","tags":["General","Government"],"title":"A Crosswalk Between OMB and NSF Proposed Rules on Grantmaking","updated_at":1782822454,"url":"https://www.chrismarcum.com/marcum-blog/2026/06/30/A-Crosswalk-Between-OMB-and-NSF-Proposed-Rules-on-Grantmaking.html","version":"v1"},{"authors":[{"affiliation":[{"id":"https://ror.org/0153tk833","name":"University of Virginia"}],"contributor_roles":[],"family":"Turner","given":"Stephen D.","url":"https://orcid.org/0000-0001-9140-9028"}],"blog":{"authors":[{"name":"Stephen Turner"}],"community_id":"382941a7-2ffa-41df-8bbb-5f772188517f","created":1780876800,"current_feed_url":null,"description":"A practicing data scientist's take on AI, genomics, biosecurity, and the ways AI is reshaping how science gets done. Weekly updates from the field. Occasional notes on programming.","favicon":"https://rogue-scholar.org/api/communities/382941a7-2ffa-41df-8bbb-5f772188517f/logo","feed_format":"application/rss+xml","feed_url":"https://blog.stephenturner.us/feed","filter":null,"generator":"Substack","home_page_url":"https://blog.stephenturner.us","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"stephenturner","status":"active","subfield":"1311","title":"Paired Ends","updated":1782814365,"use_api":null},"blog_name":"Paired Ends","blog_slug":"stephenturner","content_html":"<p>I've used <a href=\"https://www.qedscience.com/\">QED Science</a> and the <a href=\"https://natureresearchassistant.com/\">Nature Research Assistant</a> to review manuscripts I'm writing before I submit. They're fine. </p><p>There's an argument to be made for openly developing SKILL.md files or prompts for AI-assisted peer review, so others can take, use, and modify to fit their needs. I'm sure all QED/Nature/whatever are doing is wrapping a frontier model with a detailed SKILL.md and/or a lightweight harness, with connectors to PubMed, bioRxiv, etc. </p><p>A few weeks ago I wrote a Claude skill to do just that. It leans on <a href=\"https://consensus.app/\">Consensus</a>, and the <a href=\"https://consensus.app/home/mcp/\">Consensus Claude MCP connector</a>, so that all the resources it cites during a mock peer review come from actual published and peer-reviewed literature.</p><p>Here's the skill: <strong><a href=\"https://github.com/stephenturner/skill-peer-review-assistant\">github.com/stephenturner/skill-peer-review-assistant</a></strong>.</p><p>The peer review assistant takes a file manuscript and produces a structured peer review report grounded in live literature searches through Consensus. It runs several targeted queries: checking whether the paper's central claims hold up against the broader literature, finding recent high-impact papers absent from the reference list, and assessing whether the methods the authors used have been superseded. The output is a Word document with named sections covering background accuracy, missing citations, methods assessment, major and minor concerns, a clear recommendation, and a full audit log of every search query and result count. It only cites what Consensus actually returned in that session, flags any searches that failed or hit plan-tier caps, and distinguishes between concerns that threaten the paper's conclusions and those that don't.</p><p class=\"button-wrapper\" data-attrs=\"{&quot;url&quot;:&quot;https://github.com/stephenturner/skill-peer-review-assistant&quot;,&quot;text&quot;:&quot;Claude Skill: Mock Peer Review&quot;,&quot;action&quot;:null,&quot;class&quot;:null}\" data-component-name=\"ButtonCreateButton\"><a class=\"button primary\" href=\"https://github.com/stephenturner/skill-peer-review-assistant\"><span>Claude Skill: Mock Peer Review</span></a></p><p>In the workshop I taught a couple of weeks ago I demonstrated using this skill on an actual manuscript I had in prep. It's toward the end of the <a href=\"https://blog.stephenturner.us/p/ai-literature-review-consensus-workshop-recording\">video here</a>.</p><div class=\"digest-post-embed\" data-attrs=\"{&quot;nodeId&quot;:&quot;36deb213-4658-4711-aa8c-bd38b6914b23&quot;,&quot;caption&quot;:&quot;Last week I taught a workshop on AI-powered Literature Review &amp; Synthesis as part of the AI Upskilling series run by Ryan Wright, sponsored by the Provost's Office. Two workshops, in fact: over 135 people registered so we split the workshop into an in-person session one day and Zoom the next. Here's the recording of the Zoom session.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI-powered Literature Review &amp; Synthesis&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1536121,&quot;name&quot;:&quot;Stephen D. Turner&quot;,&quot;bio&quot;:&quot;https://stephenturner.us/&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WGQE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1706730-c948-4acf-9c45-b14b4e3da1b9_651x651.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-23T18:23:48.806Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6c2c1c0-7578-4056-9996-e18e1d53f33a_5712x4284.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.stephenturner.us/p/ai-literature-review-consensus-workshop-recording&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:203285373,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:6,&quot;publication_id&quot;:161890,&quot;publication_name&quot;:&quot;Paired Ends&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfDI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894081de-334e-4173-8a0c-e64762c2c838_1030x1030.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}\"></div><p>For demonstration purposes here, I ran the skill on a paper that I already published.</p><div class=\"callout-block\" data-callout=\"true\"><p>Nagraj VP, Benefield AE, Williams D, &amp; Turner SD. (2024). <strong>PLANES: Plausibility Analysis of Epidemiological Signals.</strong> <em>PLoS ONE</em> 20.3 (2025): e0320442. DOI: <a href=\"http://10.1371/journal.pone.0320442\">10.1371/journal.pone.0320442</a>.</p></div><p>I wrote about the paper here.</p><div class=\"digest-post-embed\" data-attrs=\"{&quot;nodeId&quot;:&quot;46b75932-0cdf-4ab9-928c-7ae84ea0e161&quot;,&quot;caption&quot;:&quot;Update March 2025: The preprint described in this paper is now peer-reviewed and published in PLoS ONE.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;PLANES: Plausibility Analysis of Epidemiological Signals&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1536121,&quot;name&quot;:&quot;Stephen D. Turner&quot;,&quot;bio&quot;:&quot;https://stephenturner.us/&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WGQE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1706730-c948-4acf-9c45-b14b4e3da1b9_651x651.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-09-03T11:56:00.519Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_nlo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b2a85f-6645-49e8-ad87-2446bf82eaf3_1280x962.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.stephenturner.us/p/planes-plausibility-analysis-of-epidemiological-signals-rplanes-r-package&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:148220621,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:161890,&quot;publication_name&quot;:&quot;Paired Ends&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfDI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894081de-334e-4173-8a0c-e64762c2c838_1030x1030.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}\"></div><p>Here's the peer review I got back.</p><div class=\"file-embed-wrapper\" data-component-name=\"FileToDOM\"><div class=\"file-embed-container-reader\"><div class=\"file-embed-container-top\"><image class=\"file-embed-thumbnail-default\" src=\"https://substackcdn.com/image/fetch/$s_!0Cy0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg\"></image><div class=\"file-embed-details\"><div class=\"file-embed-details-h1\">PLANES peer review</div><div class=\"file-embed-details-h2\">60.7KB \u2219 PDF file</div></div><a class=\"file-embed-button wide\" href=\"https://blog.stephenturner.us/api/v1/file/0b62e2bc-9be4-4979-a4d5-9ba6a9ecc295.pdf\"><span class=\"file-embed-button-text\">Download</span></a></div><div class=\"file-embed-description\">This review was prepared with assistance from Consensus (consensus.app), which was used to search peer-reviewed literature for claim verification, citation completeness, and methods assessment. All search results are documented in the Audit Log.</div><a class=\"file-embed-button narrow\" href=\"https://blog.stephenturner.us/api/v1/file/0b62e2bc-9be4-4979-a4d5-9ba6a9ecc295.pdf\"><span class=\"file-embed-button-text\">Download</span></a></div></div><p>The <a href=\"https://github.com/stephenturner/skill-peer-review-assistant\">Claude skill</a> I wrote leaves a lot to be desired. I like how Nature Review Assistant goes through the entire manuscript and calls out problems and unsubstantiated claims as inline comments in a Word docx. But that's the point \u2014 if we develop these skills and harnesses as a community in the open, we can all work to make these better and customize them to particular fields or journals. </p><p>In addition to the benefits of open-source / community development, I also have the benefit of consolidated control over my data. If you're paying for Claude or you're on an enterprise plan, they're not training on your inputs or outputs.<a class=\"footnote-anchor\" data-component-name=\"FootnoteAnchorToDOM\" id=\"footnote-anchor-1\" href=\"#footnote-1\" target=\"_self\">1</a> Keeping the ecosystem contained means I have fewer third party companies' TOS I need to keep track of. </p><p class=\"button-wrapper\" data-attrs=\"{&quot;url&quot;:&quot;https://blog.stephenturner.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}\" data-component-name=\"ButtonCreateButton\"><a class=\"button primary\" href=\"https://blog.stephenturner.us/subscribe?\"><span>Subscribe now</span></a></p><div class=\"footnote\" data-component-name=\"FootnoteToDOM\"><a id=\"footnote-1\" href=\"#footnote-anchor-1\" class=\"footnote-number\" contenteditable=\"false\" target=\"_self\">1</a><div class=\"footnote-content\"><p>Personally, I'm not too concerned here anyway. The whole point of writing a manuscript is to eventually publish said manuscript. </p></div></div>","doi":"https://doi.org/10.59350/b35aa-bp637","guid":"204249018","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"06spz-x3g69","summary":"Open-source skill to use Claude + Consensus for pre-submission mock peer review backed by citations to published, peer-reviewed literature.","tags":["AI"],"title":"A Claude skill for pre-submission peer review","updated_at":1782815912,"url":"https://blog.stephenturner.us/p/claude-skill-peer-review-consensus","version":"v1"},{"authors":[{"contributor_roles":[],"name":"Atarraya"}],"blog":{"authors":null,"community_id":"f17066f5-0dbf-48d0-a413-b22a79861a94","created":1723852800,"current_feed_url":null,"description":"Nuestras historias","favicon":"https://rogue-scholar.org/api/communities/f17066f5-0dbf-48d0-a413-b22a79861a94/logo","feed_format":"application/atom+xml","feed_url":"https://blogatarraya.com/feed/atom/","filter":null,"generator":"Other","home_page_url":"https://blogatarraya.com","issn":null,"language":"spa","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"atarraya","status":"active","subfield":"1202","title":"BLOG ATARRAYA","updated":1782814408,"use_api":true},"blog_name":"BLOG ATARRAYA","blog_slug":"atarraya","content_html":"<div></div>","doi":"https://doi.org/10.59350/d5dfv-npf07","guid":"https://blogatarraya.com/?p=6945","language":"es","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782086400,"rid":"qz2jb-c2f60","tags":["Historia De La Iglesia","Historia De La Prensa","Historia Pol\u00edtica","N\u00famero 30"],"title":"Entre la fe y la rebeld\u00eda: los sacerdotes que desafiaron a la Iglesia en Zacatecas a mediados del siglo XIX","updated_at":1782815717,"url":"https://blogatarraya.com/2026/06/22/entre-la-fe-y-la-rebeldia-los-sacerdotes-que-desafiaron-a-la-iglesia-en-zacatecas-a-mediados-del-siglo-xix/","version":"v1"},{"authors":[{"contributor_roles":[],"name":"Atarraya"}],"blog":{"authors":null,"community_id":"f17066f5-0dbf-48d0-a413-b22a79861a94","created":1723852800,"current_feed_url":null,"description":"Nuestras historias","favicon":"https://rogue-scholar.org/api/communities/f17066f5-0dbf-48d0-a413-b22a79861a94/logo","feed_format":"application/atom+xml","feed_url":"https://blogatarraya.com/feed/atom/","filter":null,"generator":"Other","home_page_url":"https://blogatarraya.com","issn":null,"language":"spa","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"atarraya","status":"active","subfield":"1202","title":"BLOG ATARRAYA","updated":1782814408,"use_api":true},"blog_name":"BLOG ATARRAYA","blog_slug":"atarraya","content_html":"<div></div>","doi":"https://doi.org/10.59350/7z9sq-grh46","guid":"https://blogatarraya.com/?p=6950","language":"es","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782691200,"rid":"hddc5-jx206","tags":["Historia De Las Mujeres","Historia Social","N\u00famero 30"],"title":"Las madres italianas ante la Primera Guerra Mundial en Buenos Aires (1914-1918)","updated_at":1782815716,"url":"https://blogatarraya.com/2026/06/29/las-madres-italianas-ante-la-primera-guerra-mundial-en-buenos-aires-1914-1918/","version":"v1"},{"authors":[{"contributor_roles":[],"name":"The rOpenSci Team"}],"blog":{"authors":[{"name":"The rOpenSci Team"}],"community_id":"19c501a7-647b-4a11-9f5e-cf400817cce3","created":1780876800,"current_feed_url":null,"description":"Open Tools and R Packages for Open Science","favicon":"https://rogue-scholar.org/api/communities/19c501a7-647b-4a11-9f5e-cf400817cce3/logo","feed_format":"application/feed+json","feed_url":"https://ropensci.org/blog/index.json","filter":null,"generator":"Other","home_page_url":"https://ropensci.org/blog","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"ropensci","status":"active","subfield":"1710","title":"rOpenSci - open tools for open science","updated":1782805081,"use_api":null},"blog_name":"rOpenSci - open tools for open science","blog_slug":"ropensci","content_html":"<!-- Before sending DELETE THE INDEX_CACHE and re-knit! --><p>Dear rOpenSci friends, it's time for our monthly news roundup! <!-- blabla --> You can read this post <a href=\"https://ropensci.org/blog/2026/06/30/news-june-2026\">on our blog</a>. Now let's dive into the activity at and around rOpenSci!</p><h2 id=\"ropensci-hq\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#ropensci-hq\"> <small>\ud83d\udd17</small></a>rOpenSci HQ</h2><h3 id=\"champions-program-update\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#champions-program-update\"> <small>\ud83d\udd17</small></a>Champions Program update</h3><p>We have two concurrent cohorts, both in Spanish.</p><p>The 2025\u20132026 cohort is nearing the end of its participation in the program, so we are organizing the closing meeting and the overall evaluation.</p><p>The 2026\u20132027 cohort is continuing their training activities, meeting with their mentors, and starting to work on their packages, and they have been formally introduced on our blog! Read all about the <a href=\"https://ropensci.org/blog/2026/06/09/champions-2026/\">11 new Champions</a>.</p><h3 id=\"new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"> <small>\ud83d\udd17</small></a>New editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney</h3><p>We're thrilled to <a href=\"https://ropensci.org/blog/2026/06/11/neweditorsq22026/\">introduce</a> new editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney. An official welcome and thank you to all three!</p><h3 id=\"a-new-guide-organizing-events-for-first-time-contributors\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#a-new-guide-organizing-events-for-first-time-contributors\"> <small>\ud83d\udd17</small></a>A new guide: Organizing Events for First-time Contributors</h3><p>Steffi LaZerte and Yanina Bellini Saibene released a fantastic new rOpenSci guide! Learn how to organize events for first-time contributors such as mini-hackathons and mini-translathons. Read more in the <a href=\"https://ropensci.org/blog/2026/06/02/ftc-guide/\">release announcement</a>.</p><h3 id=\"r-universe-updates\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#r-universe-updates\"> <small>\ud83d\udd17</small></a>R-Universe updates</h3><p>\"Five recent R-Universe features you might have missed\": A clickbait title for a blog post you don't want to miss! \ud83d\ude09 Jeroen Ooms <a href=\"https://ropensci.org/blog/2026/06/07/r-universe-updates/\">describes five recent additions</a> to the R-Universe platform:</p><ul><li>Social media cards that actually look good</li><li>PACKAGES.rds support (or: implementing R internals in JavaScript)</li><li>Fancy sort/filter bars in the WebUI</li><li>For the impatient: trigger a sync manually</li><li>Making check results easier to find and share</li></ul><p>In other news, R-universe user Tom Palmer also wrote about five things: <a href=\"https://remlapmot.github.io/post/2026/runiverse-tips/\">\"Five tips for managing your R-universe \ud83d\ude80\"</a>. You won't believe the fifth one. \ud83d\ude09</p><h3 id=\"yanina-joins-the-2026-sovereign-tech-fellowship\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#yanina-joins-the-2026-sovereign-tech-fellowship\"> <small>\ud83d\udd17</small></a>Yanina Joins the 2026 Sovereign Tech Fellowship</h3><p>We're excited to share that our Community Manager, Yanina Bellini Saibene, <a href=\"https://www.sovereign.tech/news/meet-the-2026-sovereign-tech-fellows\">has been selected as a 2026 Sovereign Tech Fellow</a>. During the fellowship, she will focus on making open source more accessible through improved contribution guidance, newcomer-focused mini-hackathons, multilingual training resources, and more sustainable localization practices across communities in the R ecosystem. These efforts will build on and extend rOpenSci's work in community building, mentorship, and open science.</p><h3 id=\"quincea\u00f1era-celebrating-15-years-together\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#quincea%c3%b1era-celebrating-15-years-together\"> <small>\ud83d\udd17</small></a><em>Quincea\u00f1era</em>: celebrating 15 years together</h3><p>In June, we held two community events and a co-working session to mark rOpenSci's 15th anniversary. Across all three sessions, people shared memories of their first contribution, discussed ideas for the next 15 years, and reminded us of how genuinely welcoming rOpenSci <em>and</em> it's community are. There's more to come :-) Keep an eye out for what we have planned for the rest of the year.</p><h3 id=\"software-peer-review-updates\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-peer-review-updates\"> <small>\ud83d\udd17</small></a>Software Peer-Review updates</h3><p>Community member <a href=\"https://ropensci.org/author/athanasia-mo-mowinckel/\">Athanasia Mo Mowinckel</a> has started a new AI agent \"skills\" repo at <a href=\"https://github.com/ropensci-review-tools/ropensci-skills\"><code>ropensci-review-tools/ropensci-skills</code></a>. The repo holds a variety of \"skills\", which are human-readable markdown files, for AI agents to assist in preparing software for peer-review. Anybody thinking about using AI systems to prepare software for peer-review is encouraged to try out these experimental skills, and to help us improve them for others by opening issues or pull requests in <a href=\"https://github.com/ropensci-review-tools/ropensci-skills\">the GitHub repo</a>.</p><p>Our recent updates to the <a href=\"https://ropensci.org/blog/2026/06/01/goodpractice/\">goodpractice package</a> have also been enhanced with an all-new AI \"skill\". <a href=\"https://github.com/ropensci-review-tools/goodpractice/blob/main/inst/skills/goodpractice4agents.md\">This skill</a> instructs agents to edit and improve your package's code to comply with the full suite of goodpractice checks. You can try it out with the package's new <a href=\"https://docs.ropensci.org/goodpractice/reference/use_skill_gp.html\"><code>use_skill_gp()</code> function</a>.</p><h3 id=\"coworking\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#coworking\"> <small>\ud83d\udd17</small></a>Coworking</h3><p>Read <a href=\"https://ropensci.org/blog/2023/06/21/coworking/\">all about coworking</a>!</p><ul><li>Tuesday July 7nd 2026, 09:00 Americas Pacific (16:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-07/\">\"Debugging in R\"</a>, with <a href=\"https://ropensci.org/author/yanina-bellini-saibene/\">Yanina Bellini Saibene</a> and cohost <a href=\"https://ropensci.org/author/shannon-pileggi\">Shannon Pileggi</a>.<ul><li>Read up on debugging in R.</li><li>Meet community host, Shannon Pileggi, and discuss tips and tricks for debugging in R.</li></ul></li><li>Tuesday August 4th, 09:00 Australia Western (01:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-08/\">\"Vale and Text Linting\"</a>, with <a href=\"https://ropensci.org/author/steffi-lazerte\">Steffi LaZerte</a> and cohost <a href=\"https://ropensci.org/author/jonathan-carroll/\">Jonathan Carroll</a>.<ul><li>Read up on text linting.</li><li>Setup a linting framework for your projects.</li><li>Meet co-host, Jonathan Carroll, and discuss Vale and text linting.</li></ul></li><li>Tuesday September 1st, 14:00 Europe Central (12:00 UTC) <a href=\"https://ropensci.org/events/coworking-2026-09/\">\"Getting to Know SORTEE\"</a>, with <a href=\"https://ropensci.org/author/steffi-lazerte\">Steffi LaZerte</a> and cohost <a href=\"https://ropensci.org/author/ed-ivimey-cook/\">Ed Ivimey-Cook</a>.<ul><li>Visit <a href=\"https://sortee.org/\">SORTEE</a> (Society for Open, Reliable, and Transparent Ecology and Evolutionary Biology).</li><li>Meet co-host, Ed Ivimey-Cook, and learn more about SORTEE and how you might get involved.</li></ul></li></ul><p>And remember, you can always cowork independently on work related to R, work on packages that tend to be neglected, or work on what ever you need to get done!</p><h2 id=\"software-package\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-package\"> <small>\ud83d\udd17</small></a>Software \ud83d\udce6</h2><p>The following two packages recently became a part of our software suite:</p><ul><li><p><a href=\"https://docs.ropensci.org/pvEBayes\">pvEBayes</a>, developed by Yihao Tan together with Marianthi Markatou, Saptarshi Chakraborty, and Raktim Mukhopadhyay: A suite of empirical Bayes methods to use in pharmacovigilance. Contains various model fitting and post-processing functions. For more details see Tan et al.\u00a0(2025) <a href=\"https://doi.org/10.1002/sim.70195\">https://doi.org/10.1002/sim.70195</a>, <a href=\"https://doi.org/10.48550/arXiv.2512.01057\">https://doi.org/10.48550/arXiv.2512.01057</a>; Koenker and Mizera (2014) <a href=\"https://doi.org/10.1080/01621459.2013.869224\">https://doi.org/10.1080/01621459.2013.869224</a>; Efron (2016) <a href=\"https://doi.org/10.1093/biomet/asv068\">https://doi.org/10.1093/biomet/asv068</a>. It has been <a href=\"https://github.com/ropensci/software-review/issues/760\">reviewed</a> by Kathryn Doering and Collin Cademartori.</p></li><li><p><a href=\"https://docs.ropensci.org/nycOpenData\">nycOpenData</a>, developed by Christian Martinez: Provides a unified set of helper functions to access datasets from the NYC Open Data platform <a href=\"https://opendata.cityofnewyork.us/\">https://opendata.cityofnewyork.us/</a>. Functions return results as tidy tibbles and support optional filtering, sorting, and row limits via the Socrata API. The package includes endpoints for 311 service requests, DOB job applications, juvenile justice metrics, school safety, environmental data, event permitting, and additional citywide datasets. It has been <a href=\"https://github.com/ropensci/software-review/issues/750\">reviewed</a> by Haolin Dong and Michael Pascale.</p></li></ul><p>Discover <a href=\"https://ropensci.org/packages\">more packages</a>, read more about <a href=\"https://ropensci.org/software-review\">Software Peer Review</a>.</p><h3 id=\"new-versions\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#new-versions\"> <small>\ud83d\udd17</small></a>New versions</h3><p>The following seventeen packages have had an update since the last newsletter: <a href=\"https://docs.ropensci.org/weathercan\" title=\"Download Weather Data from Environment and Climate Change Canada\">weathercan</a> (<a href=\"https://github.com/ropensci/weathercan/releases/tag/v1.0.0\"><code>v1.0.0</code></a>), <a href=\"https://docs.ropensci.org/occCite\" title=\"Querying and Managing Large Biodiversity Occurrence Datasets\">occCite</a> (<a href=\"https://github.com/ropensci/occCite/releases/tag/v0.6.2\"><code>v0.6.2</code></a>), <a href=\"https://docs.ropensci.org/lightr\" title=\"Read Spectrometric Data and Metadata\">lightr</a> (<a href=\"https://github.com/ropensci/lightr/releases/tag/v2.0.0\"><code>v2.0.0</code></a>), <a href=\"https://docs.ropensci.org/gutenbergr\" title=\"Download and Process Public Domain Works from Project Gutenberg\">gutenbergr</a> (<a href=\"https://github.com/ropensci/gutenbergr/releases/tag/v0.5.2\"><code>v0.5.2</code></a>), <a href=\"https://docs.ropensci.org/slopes\" title=\"Calculate Slopes of Roads, Rivers and Trajectories\">slopes</a> (<a href=\"https://github.com/ropensci/slopes/releases/tag/v2.0.0\"><code>v2.0.0</code></a>), <a href=\"https://docs.ropensci.org/qualtRics\" title=\"Download Qualtrics Survey Data\">qualtRics</a> (<a href=\"https://github.com/ropensci/qualtRics/releases/tag/v3.3.0\"><code>v3.3.0</code></a>), <a href=\"https://docs.ropensci.org/srr\" title=\"rOpenSci Software Review Roclets\">srr</a> (<a href=\"https://github.com/ropensci-review-tools/srr/releases/tag/v1.0.0\"><code>v1.0.0</code></a>), <a href=\"https://docs.ropensci.org/goodpractice\" title=\"Advice on R Package Building\">goodpractice</a> (<a href=\"https://github.com/ropensci-review-tools/goodpractice/releases/tag/v1.1\"><code>v1.1</code></a>), <a href=\"https://docs.ropensci.org/pkgmatch\" title=\"Find R Packages Matching Either Descriptions or Other R Packages\">pkgmatch</a> (<a href=\"https://github.com/ropensci-review-tools/pkgmatch/releases/tag/v0.5.4\"><code>v0.5.4</code></a>), <a href=\"https://docs.ropensci.org/pkgstats\" title=\"Metrics of R Packages\">pkgstats</a> (<a href=\"https://github.com/ropensci-review-tools/pkgstats/releases/tag/v0.2.3\"><code>v0.2.3</code></a>), <a href=\"https://docs.ropensci.org/cffr\" title=\"Generate Citation File Format (CFF) Metadata for R Packages\">cffr</a> (<a href=\"https://github.com/ropensci/cffr/releases/tag/v1.4.1\"><code>v1.4.1</code></a>), <a href=\"https://docs.ropensci.org/dfms\" title=\"Dynamic Factor Models\">dfms</a> (<a href=\"https://github.com/ropensci/dfms/releases/tag/v1.0.1\"><code>v1.0.1</code></a>), <a href=\"https://docs.ropensci.org/osmdata\" title=\"Import OpenStreetMap Data as Simple Features or Spatial Objects\">osmdata</a> (<a href=\"https://github.com/ropensci/osmdata/releases/tag/v0.4.0\"><code>v0.4.0</code></a>), <a href=\"https://docs.ropensci.org/aRxiv\" title=\"Interface to the arXiv API\">aRxiv</a> (<a href=\"https://github.com/ropensci/aRxiv/releases/tag/0.20\"><code>0.20</code></a>), <a href=\"https://docs.ropensci.org/Athlytics\" title=\"A Reproducible Framework for Endurance Data Analysis\">Athlytics</a> (<a href=\"https://github.com/ropensci/Athlytics/releases/tag/v1.0.6\"><code>v1.0.6</code></a>), <a href=\"https://docs.ropensci.org/ReLTER\" title=\"An Interface for the eLTER Community\">ReLTER</a> (<a href=\"https://github.com/ropensci/ReLTER/releases/tag/3.1.1\"><code>3.1.1</code></a>), and <a href=\"https://docs.ropensci.org/read.abares\" title=\"Read Australian Agricultural Data from Government Agencies\">read.abares</a> (<a href=\"https://github.com/ropensci/read.abares/releases/tag/v3.0.0\"><code>v3.0.0</code></a>).</p><p>The writexl package has a <a href=\"https://github.com/ropensci/writexl/pull/98#issuecomment-4191858158\">new maintainer</a>, Bill Denney. NLMR is now maintained by <a href=\"https://github.com/ropensci/NLMR/issues/116#issuecomment-4280937012\">Jakub Nowosad</a>.</p><h2 id=\"software-peer-review\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-peer-review\"> <small>\ud83d\udd17</small></a>Software Peer Review</h2><p>There are eighteen recently closed and active submissions and 4 submissions on hold. Issues are at different stages:</p><ul><li><p>Four at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%226/approved%22\">'6/approved'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/760\">pvEBayes</a>, Empirical Bayes Methods for Pharmacovigilance. Submitted by <a href=\"https://github.com/YihaoTancn\">Yihao Tan</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/750\">nycOpenData</a>, Convenient Access to NYC Open Data API Endpoints. Submitted by <a href=\"https://github.com/martinezc1\">Christian Martinez</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/730\">ernest</a>, A Toolkit for Nested Sampling. Submitted by <a href=\"https://github.com/kylesnap\">Kyle Dewsnap</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/671\">pkgmatch</a>, Find R Packages Matching Either Descriptions or Other R Packages. Submitted by <a href=\"https://mpadge.github.io\">mark padgham</a>.</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%225/awaiting-reviewer(s)-response%22\">'5/awaiting-reviewer(s)-response'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/762\">lakefetch</a>, Calculate Fetch and Wave Exposure for Lake Sampling Points. Submitted by <a href=\"https://github.com/jeremylfarrell\">jeremylfarrell</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/704\">priorsense</a>, Prior Diagnostics and Sensitivity Analysis. Submitted by <a href=\"https://github.com/n-kall\">Noa Kallioinen</a>. (Stats).</p></li></ul></li><li><p>Five at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%224/review(s)-in-awaiting-changes%22\">'4/review(s)-in-awaiting-changes'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/744\">RAQSAPI</a>, A Simple Interface to the US EPA Air Quality System Data Mart API. Submitted by <a href=\"https://github.com/mccroweyclinton-EPA\">mccroweyclinton-EPA</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/743\">RAMEN</a>, RAMEN: Regional Association of Methylome variability with the Exposome and geNome. Submitted by <a href=\"https://erick-navarrodelgado.netlify.app\">Erick Navarro-Delgado</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/741\">logolink</a>, An Interface for Running NetLogo Simulations. Submitted by <a href=\"https://danielvartan.com\">Daniel Vartanian</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/718\">rcrisp</a>, Automate the Delineation of Urban River Spaces. Submitted by <a href=\"https://github.com/cforgaci\">Claudiu Forgaci</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/615\">galamm</a>, Generalized Additive Latent and Mixed Models. Submitted by <a href=\"https://osorensen.no\">\u00d8ystein S\u00f8rensen</a>. (Stats).</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%223/reviewer(s)-assigned%22\">'3/reviewer(s)-assigned'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/765\">ciecl</a>, International Classification of Diseases ICD-10/ICD-11 for Chile. Submitted by <a href=\"https://github.com/Rodotasso\">Rodolfo Tasso</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/763\">EpiStrainDynamics</a>, Infer temporal trends of multiple pathogens. Submitted by <a href=\"https://www.smwindecker.com\">Saras Windecker</a>. (Stats).</p></li></ul></li><li><p>Two at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%222/seeking-reviewer(s)%22\">'2/seeking-reviewer(s)'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/740\">fcmconfr</a>, Fuzzy Cognitive Map Analysis in R. Submitted by <a href=\"https://github.com/bhroston\">benroston</a>. (Stats).</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/717\">coevolve</a>, Fit Bayesian Generalized Dynamic Phylogenetic Models using Stan. Submitted by <a href=\"https://scottclaessens.github.io/\">Scott Claessens</a>. (Stats).</p></li></ul></li><li><p>Three at <a href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%221/editor-checks%22\">'1/editor-checks'</a>:</p><ul><li><p><a href=\"https://github.com/ropensci/software-review/issues/775\">grumpy</a>, Read NumPy .npy and .npz Files. Submitted by <a href=\"https://hugogruson.fr/\">Hugo Gruson</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/752\">metasurvey</a>, Reproducible Survey Data Processing with Step Pipelines. Submitted by <a href=\"https://github.com/mauroloprete\">Mauro Loprete</a>.</p></li><li><p><a href=\"https://github.com/ropensci/software-review/issues/725\">LBDiscoverAnalysis</a>, Co-occurrence Discovery Models and Visualization for Biomedical LBD. Submitted by <a href=\"https://github.com/chaoliu-cl\">Chao Liu</a>.</p></li></ul></li></ul><p>Find out more about <a href=\"https://ropensci.org/software-review\">Software Peer Review</a> and how to get involved.</p><h2 id=\"on-the-blog\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#on-the-blog\"> <small>\ud83d\udd17</small></a>On the blog</h2><!-- Do not forget to rebase your branch! --><h3 id=\"software-review\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#software-review\"> <small>\ud83d\udd17</small></a>Software Review</h3><ul><li><p><a href=\"https://ropensci.org/blog/2026/06/11/neweditorsQ22026\">Ronny Hernandez Mora, Joel Nitta, and Nick Tierney Join rOpenSci Software Peer Review Editorial Team</a> by Ronny Hernandez Mora, Joel Nitta, Nicholas Tierney, and Yanina Bellini Saibene. Introducing three new editors for rOpenSci software peer review.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/19/maintainers-month\">Celebrating Our Maintainers during Maintainers Month</a> by Yanina Bellini Saibene. A Look Back at our Maintainer Month 2026 social media campaign.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/01/goodpractice\">Our goodpractice Package Has New Superpowers</a> by Mark Padgham and Athanasia Mo Mowinckel. We have worked hard over the past few months on major upgrades to our goodpractice package. Checks are now grouped into categories, making it easier to control which checks are run. The biggest change has been adding over 100 new checks, from new lints to many new CRAN checks.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/02/ftc-guide\">A New Guide: Organizing Events for First-time Contributors</a> by Steffi LaZerte and Yanina Bellini Saibene. We introduce our Guide book for organizing events to support first-time contributors to FOSS.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/07/r-universe-updates\">Five recent R-universe features you might have missed</a> by Jeroen Ooms. In this technote we look at a few recent additions that make R-universe a little nicer, faster, or more convenient to use.</p></li><li><p><a href=\"https://ropensci.org/blog/2026/06/09/champions-2026\">Eleven Latin American Voices for Open Science: The New Cohort of Champions rOpenSci 2026</a> by Basti\u00e1n Olea Herrera, Denisse Fierro Arcos, Durga Valentina Linares Herrera, Evelia Lorena Coss Navarrete, Gladys Choque Ulloa, Jos\u00e9 Daniel Conejeros, Linda Cabrera Orellana, Mar\u00eda Florencia Tames, Marina Cecilia Cock, Patricia A. Loto, Estefania Torrej\u00f3n, and Yanina Bellini Saibene. Introducing 11 new rOpenSci Champions. Other languages: <a href=\"https://ropensci.org/es/blog/2026/06/09/champions-2026\" lang=\"es\">Once voces latinoamericanas para la ciencia abierta: la nueva cohorte de Campeon(a|e)s rOpenSci 2026 (es)</a>.</p></li></ul><h2 id=\"calls-for-contributions\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-contributions\"> <small>\ud83d\udd17</small></a>Calls for contributions</h2><h3 id=\"calls-for-maintainers\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-maintainers\"> <small>\ud83d\udd17</small></a>Calls for maintainers</h3><p>If you're interested in maintaining any of the R packages below, you might enjoy reading our blog post <a href=\"https://ropensci.org/blog/2023/02/07/what-does-it-mean-to-maintain-a-package/\">What Does It Mean to Maintain a Package?</a>.</p><ul><li><p><a href=\"https://docs.ropensci.org/charlatan\">charlatan</a>, create fake data in R. <a href=\"https://github.com/ropensci/charlatan/issues/150\">Issue for volunteering</a>.</p></li><li><p><a href=\"https://docs.ropensci.org/hddtools\">hddtools</a>, Tools to discover hydrological data, accessing catalogues and databases from various data providers. <a href=\"https://github.com/ropensci/hddtools/issues/36\">Issue for volunteering</a>.</p></li></ul><h3 id=\"calls-for-contributions-1\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#calls-for-contributions-1\"> <small>\ud83d\udd17</small></a>Calls for contributions</h3><p>Refer to our <a href=\"https://ropensci.org/help-wanted/\">help wanted page</a> \u2013 before opening a PR, we recommend asking in the issue whether help is still needed.</p><h2 id=\"package-development-corner\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#package-development-corner\"> <small>\ud83d\udd17</small></a>Package development corner</h2><p>Some useful information for R package developers. \ud83d\udc40</p><h3 id=\"goodpractices-new-features-and-behind-the-scene-notes\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#goodpractices-new-features-and-behind-the-scene-notes\"> <small>\ud83d\udd17</small></a>goodpractice's new features and behind-the-scene notes</h3><p>Software Review Lead Mark Padgham and long-time community member <a href=\"https://ropensci.org/author/athanasia-mo-mowinckel/\">Athanasia Mo Mowinckel</a> have written a blog post particularly relevant to package developers for two reasons:</p><ul><li>Learn how goodpractice, which helps make your package better, has improved.</li><li>Read how Mark and Mo collaborated, including their use of LLMs in the development process.</li></ul><h3 id=\"dumb-ways-for-an-open-source-project-to-die\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#dumb-ways-for-an-open-source-project-to-die\"> <small>\ud83d\udd17</small></a>Dumb Ways for an Open Source Project to Die</h3><p>If you're interested in open-source software projects' survivability, you'll enjoy this <a href=\"https://nesbitt.io/2026/05/19/dumb-ways-for-an-open-source-project-to-die.html\">write-up by Andrew Nesbitt</a> shared by Yanina Bellini Saibene.</p><h3 id=\"refactoring-with-jarl-unused-functions-and-more\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#refactoring-with-jarl-unused-functions-and-more\"> <small>\ud83d\udd17</small></a>Refactoring with Jarl: unused functions and more</h3><p>Hannah Frick and Ma\u00eblle Salmon wrote <a href=\"https://blog.r-hub.io/2026/06/02/jarl/\">\"Refactoring with Jarl: a coffee chat\"</a> on the R-hub blog.</p><h3 id=\"a-strategy-for-recovering-data-on-request-interruption\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#a-strategy-for-recovering-data-on-request-interruption\"> <small>\ud83d\udd17</small></a>A strategy for recovering data on request interruption</h3><p>G\u00e1bor Cs\u00e1rdi summarized <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/\">recent changes to the gh package</a>. Especially interesting is his strategy for <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\">interruptions</a>: the user starts a long query then interrupts the process\u2026 how to not lose the data that's already been received? The solution is to make it accessible through <a href=\"https://rlang.r-lib.org/reference/last_error.html\"><code>rlang::last_error()</code></a>. More details in the <a href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\">post</a>.</p><h3 id=\"curl-summer-of-bliss\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#curl-summer-of-bliss\"> <small>\ud83d\udd17</small></a>curl summer of bliss</h3><p>The curl project <a href=\"https://daniel.haxx.se/blog/2026/06/15/curl-summer-of-bliss/\">announced</a> that it will not accept any vulnerability report during the month of July this year. This is both the opportunity for maintainers to take a break, and to advertise paid curl support, in which there will be no interruption of service.</p><h3 id=\"to-conventionally-commit-or-not\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#to-conventionally-commit-or-not\"> <small>\ud83d\udd17</small></a>To conventionally commit or not</h3><p>Sumner Evans wrote an interesting post <a href=\"https://sumnerevans.com/posts/software-engineering/stop-using-conventional-commits/\">criticizing the conventional commits convention</a> (starting commits with e.g.\u00a0<code>fix:</code> for bug fixes, <code>feat:</code> for new features, etc).</p><h3 id=\"more-than-gitignore\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#more-than-gitignore\"> <small>\ud83d\udd17</small></a>More than .gitignore</h3><p>Nelson Figueroa wrote a useful <a href=\"https://nelson.cloud/.gitignore-isnt-the-only-way-to-ignore-files-in-git/\">overview</a> of the different ways to make Git ignore some files.</p><h3 id=\"how-to-work-with-llms-without-losing-your-skills\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#how-to-work-with-llms-without-losing-your-skills\"> <small>\ud83d\udd17</small></a>How to work with LLMs without losing your skills</h3><p>Vicki Boykis wrote an insightful post <a href=\"https://vickiboykis.com/2026/05/28/we-should-be-more-tired-than-the-model/\">\"We should be more tired than the model\"</a> including pratical tips such as \"Starting to use the agent only after I've spent 20 minutes on the problem\" or \"Discussing an agent's proposed implementation with another person instead\".</p><h2 id=\"last-words\"><a class=\"anchor d-print-none\" href=\"https://ropensci.org/blog/2026/06/30/news-june-2026//#last-words\"> <small>\ud83d\udd17</small></a>Last words</h2><p>Thanks for reading! If you want to get involved with rOpenSci, check out our <a href=\"https://contributing.ropensci.org\">Contributing Guide</a>. This guide will help direct you to the right place, whether you want to make code contributions, non-code contributions, or contribute in other ways such as through sharing use cases. You can also support our work through <a href=\"https://ropensci.org/donate\">donations</a>.</p><p>If you haven't subscribed to our newsletter yet, you can <a href=\"https://ropensci.org/news/\">do so though our signup form</a>. Until it's time for our next newsletter, you can keep in touch with us through our <a href=\"https://ropensci.org/\">website</a>, <a href=\"https://hachyderm.io/@rOpenSci\">Mastodon</a>, or <a href=\"https://www.linkedin.com/company/ropensci/\">LinkedIn</a>. See you soon!</p>","doi":"https://doi.org/10.59350/312sy-1dt83","guid":"https://doi.org/10.59350/312sy-1dt83","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1782777600,"rid":"mm3pb-hmd04","summary":"Dear rOpenSci friends, it's time for our monthly news roundup! You can read this post on our blog. Now let's dive into the activity at and around rOpenSci! \ud83d\udd17rOpenSci HQ \ud83d\udd17Champions Program update We have two concurrent cohorts, both in Spanish. The 2025\u20132026 cohort is nearing the end of its participation in the program, so we are organizing the closing meeting and the overall evaluation.","tags":["Newsletter"],"title":"rOpenSci News Digest, June 2026","updated_at":1782806444,"url":"https://ropensci.org/blog/2026/06/30/news-june-2026/","version":"v1"},{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>In Underworld2, adding a new rheology was a matter of writing C code inside the StGermain framework, compiling it, and registering it with the component system. The barrier was high enough that most users never tried. The available rheologies were the ones the developers had implemented, and combining them required understanding the C internals.</p><p>In Underworld3, a constitutive model is a Python class where the relationship between fluxes and gradients is encoded as a SymPy expression. You can build a viscous model, add plasticity, add elasticity, make it anisotropic. At every stage the mathematics is visible, inspectable, and differentiable. The framework handles Jacobians, C code generation, and PETSc integration. You handle the physics.</p><pre><code class=\"language-python\">stokes = uw.systems.Stokes(mesh)\nstokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = viscosity_fn\n</code></pre><p>This post explains how constitutive models work in UW3, from simple viscous flow through to viscoelastic-plastic rheologies with stress history.</p><h2 id=\"the-constitutive-relationship\">The Constitutive Relationship</h2><p>A constitutive model in Underworld3 defines the relationship between a flux (e.g. stress - a momentum flux) and gradients of the unknowns (e.g. strain rate - gradients of velocity). For a Stokes flow problem, the solver needs a flux term $\\mathbf{F_1}$ that expresses the deviatoric stress:</p><p>$$<br>\\sigma_{ij} = C_{ijkl} , \\dot\\varepsilon_{kl}<br>$$</p><p>where $C_{ijkl}$ is the constitutive tensor (viscosity in this case) and $\\dot\\varepsilon$ is the symmetric strain rate tensor derived from the velocity gradient. For isotropic viscous flow, $C_{ijkl}$ reduces to $2\\eta , I_{ijkl}$ where $\\eta$ is the viscosity and $I$ is the symmetric identity tensor. For more complex rheologies, the constitutive tensor can depend on the strain rate itself, on pressure, temperature, stress history, or material orientation.</p><p>The constitutive model's job is to build this tensor symbolically. The solver reads the model's <code>.flux</code> property, which returns the stress as a SymPy matrix expression. From there, the JIT pipeline described in our <a href=\"https://www.underworldcode.org/how-underworld3-turns-sympy-into-c/\">SymPy-to-C post</a> takes over: automatically deriving Jacobians, unwrapping nested expressions, C code generation, PETSc integration.</p><h2 id=\"viscous-flow-the-starting-point\">Viscous Flow: The Starting Point</h2><p>The simplest constitutive model is <code>ViscousFlowModel</code>. It has one parameter: shear viscosity.</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = uw.expression(\n    r\"\\eta\", uw.quantity(1e21, \"Pa*s\")\n)\n</code></pre><p>The viscosity can be a constant, a UWexpression with units, a SymPy expression involving temperature and pressure, or a mesh variable. The model does not care. It builds the stress tensor symbolically:</p><p>$$<br>\\sigma = 2\\eta , \\dot\\varepsilon<br>$$</p><p>You can inspect this at any time:</p><pre><code class=\"language-python\">stokes.constitutive_model.flux\n# Returns: 2 * \u03b7 * \u03b5\u0307(u)  \u2014 as a SymPy Matrix\n</code></pre><p>In a Jupyter notebook, this renders as mathematics. You can see exactly what the solver will compute. If the viscosity expression is wrong, you see it here before running the solver.</p><h2 id=\"parameters-as-guarded-descriptors\">Parameters as Guarded Descriptors</h2><p>A common source of bugs in scientific code is mis-spelling a parameter name. You write <code>stokes.constitutive_model.Parameters.viscosty = 1e21</code> and nothing complains. The parameter you intended to set keeps its default value. The solver runs. The answer is wrong.</p><p>UW3's parameter system prevents this. Every constitutive model defines a <code>_Parameters</code> class whose attributes are descriptors. If you try to set an attribute that does not match a declared parameter, you get an immediate <code>AttributeError</code> listing the valid names:</p><pre><code class=\"language-python\">stokes.constitutive_model.Parameters.viscosty = 1e21\n# AttributeError: Cannot set 'viscosty' on ViscousFlowModel Parameters.\n# Valid parameters: shear_viscosity_0\n# (Did you mean 'shear_viscosity_0'? Use .viscosity as a shorthand.)\n</code></pre><p>The descriptor names are the API. <code>shear_viscosity_0</code> is both the internal name and the user-facing setter. For convenience, viscous models also provide a <code>.viscosity</code> alias that maps to <code>shear_viscosity_0</code>.</p><p>Each parameter descriptor carries a LaTeX symbol, a default value factory, a description, and optional units. The defaults are created lazily through the owning model's symbol factory, ensuring that every parameter gets a unique SymPy symbol even when multiple models coexist.</p><h2 id=\"anisotropy-and-tensor-representations\">Anisotropy and Tensor Representations</h2><p>The scalar viscosity in <code>ViscousFlowModel</code> produces an isotropic constitutive tensor. But many geodynamics problems involve directional weakness: fault zones, shear bands, crystallographic fabric. <code>TransverseIsotropicFlowModel</code> handles this by introducing a director vector $\\mathbf{n}$ and a second viscosity:</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.TransverseIsotropicFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta_matrix   # matrix viscosity\nstokes.constitutive_model.Parameters.shear_viscosity_1 = eta_fault    # fault-plane viscosity\nstokes.constitutive_model.Parameters.director = n_vector              # orientation\n</code></pre><p>The constitutive tensor becomes:</p><p>$$<br>C_{ijkl} = 2\\eta_0 , I_{ijkl} + 2(\\eta_0 - \\eta_1) , A_{ijkl}(\\mathbf{n})<br>$$</p><p>where $A_{ijkl}$ is the anisotropic correction involving products of the director components. When $\\eta_0 = \\eta_1$, the correction vanishes and you recover isotropic flow. When $\\eta_1 &lt; \\eta_0$, the material is weak along planes perpendicular to the director.</p><p>Building this tensor correctly requires care with index symmetries. The rank-4 constitutive tensor $C_{ijkl}$ has 81 components in 3D (16 in 2D), but the symmetries of stress and strain rate reduce the independent entries. The standard approach in finite element work is to flatten the symmetric tensors into vectors and the constitutive tensor into a matrix. There are two common ways to do this, and the difference matters.</p><h3 id=\"voigt-notation\">Voigt Notation</h3><p>In Voigt notation, the stress and strain rate tensors are written as vectors by listing the independent components:</p><p>$$<br>\\tau_I = (\\tau_{11}, \\tau_{22}, \\tau_{12}), \\quad \\dot\\varepsilon_I = (\\dot\\varepsilon_{11}, \\dot\\varepsilon_{22}, 2\\dot\\varepsilon_{12})<br>$$</p><p>Note the factor of 2 on the off-diagonal strain rate. The constitutive matrix $C_{IJ}$ is then the rearrangement of the rank-4 tensor without scaling. For isotropic viscosity in 2D:</p><p>$$<br>\\left[\\begin{matrix} \\tau_{11} \\\\ \\tau_{22} \\\\ \\tau_{12} \\end{matrix}\\right] =<br>\\left[\\begin{matrix} \\eta &amp; 0 &amp; 0 \\\\ 0 &amp; \\eta &amp; 0 \\\\ 0 &amp; 0 &amp; \\eta/2 \\end{matrix}\\right]<br>\\left[\\begin{matrix} \\dot\\varepsilon_{11} \\\\ \\dot\\varepsilon_{22} \\\\ 2\\dot\\varepsilon_{12} \\end{matrix}\\right]<br>$$</p><p>This is what you will find in most finite element textbooks. It works for computing stress from strain rate, but it has a problem: $\\tau_I \\dot\\varepsilon_I \\neq \\tau_{ij}\\dot\\varepsilon_{ij}$. The vector inner product does not reproduce the tensor inner product. And $C_{IJ}$ does not transform correctly under rotations.</p><h3 id=\"mandel-notation\">Mandel Notation</h3><p></p><p>Mandel notation fixes both problems by applying a scaling matrix $\\mathbf{P}$ that puts a factor of $\\sqrt{2}$ on the off-diagonal components:</p>\n<p>$$<br>\n\\tau^{ * } _ {I} = P _ {IJ},\\tau _ {J}, \\quad \\dot\\varepsilon^{ * } _ {I} = P _ {IJ},\\dot\\varepsilon _ {J}, \\quad C^{ * } _ {IJ} = P _ {IK} ,C _ {KL} , P _ {LJ}<br>\n$$</p>\n<p>where $\\mathbf{P} = \\textrm{diag}(1, 1, \\sqrt{2})$ in 2D, or $\\textrm{diag}(1,1,1,\\sqrt{2},\\sqrt{2},\\sqrt{2})$ in 3D. In Mandel form, the isotropic constitutive matrix becomes:</p>\n<p>$$<br>\nC^{ * } _ {IJ} = \\eta , \\delta _ {IJ}<br>\n$$</p>\n<p>This is just $\\eta$ times the identity. The fourth-order symmetric identity tensor, which has an awkward $1/2$ factor in its off-diagonal rank-4 components, becomes the matrix identity in Mandel form.</p>\n<p>The advantage of this approach is that rotations work naturally. If $\\mathbf{R}$ is a rotation matrix, then the rotated Mandel constitutive matrix is:</p>\n<p>$$<br>\nC'^{ * } _ {IJ} = R^{ * }_ {IK} , C^{ * } _ {KL} , R^{ * T} _ {LJ}<br>\n$$</p>\n<p>where $R^{ * }$ is the Mandel-form rotation matrix derived from $\\mathbf{R}$. This is why UW3 builds the transverse isotropic constitutive tensor in Mandel form. The anisotropic correction is defined in the material frame, rotated to the global frame using the director, and converted back to the rank-4 tensor. In Voigt notation, the same rotation would require tracking which components get the factor of 2 and which do not.</p>\n<h3 id=\"how-uw3-uses-these-representations\">How UW3 Uses These Representations</h3><p>The internal representation is the full rank-4 tensor $C_{ijkl}$. The Mandel form is available to the user through the <code>.C</code> property (capital C) for inspection and for supplying custom anisotropic tensors. The raw rank-4 tensor is available through <code>.c</code> (lowercase). If you provide a scalar viscosity, the model builds the rank-4 tensor directly. If you provide a Mandel matrix, the model converts it. Stress is passed to PETSc in Voigt form via <code>.flux_1d</code> to match its symmetric tensor storage conventions. The conversions between these representations are handled by utility functions in <code>maths/tensors.py</code>, and the index book keeping is automatic and dimension-independent.</p><h2 id=\"adding-plasticity\">Adding Plasticity</h2><p><code>ViscoPlasticFlowModel</code> extends <code>ViscousFlowModel</code> with a yield stress. When the deviatoric stress exceeds the yield stress, the effective viscosity drops to keep the stress at the yield surface:</p><pre><code class=\"language-python\">stokes.constitutive_model = uw.constitutive_models.ViscoPlasticFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta\nstokes.constitutive_model.Parameters.yield_stress = uw.expression(\n    r\"\\tau_y\", uw.quantity(100, \"MPa\")\n)\n</code></pre><p>The plastic viscosity is computed from the yield stress and the second invariant of the strain rate:</p><p>$$<br>\\eta_\\textrm{pl} = \\frac{\\tau_y}{2 , \\dot\\varepsilon_{II}}<br>$$</p><p>The effective viscosity is the lesser of the viscous and plastic values.<br>$$<br>\\eta_\\textrm{eff} = \\min(\\eta_\\textrm{v}, \\eta_\\textrm{pl})<br>$$<br>The model provides several other ways to combine them, because the choice affects Newton solver convergence. The default (\"smooth\") form uses a corrected harmonic blend:<br>$$<br>\\eta_\\textrm{eff} = \\eta_v \\cdot \\frac{1 + f}{1 + f + f^2}, \\quad f = \\frac{\\eta_\\textrm{v}}{\\eta_\\textrm{pl}}<br>$$</p><p>This function is smooth everywhere, approaches $\\eta_v$ when $f \\to 0$ (below yield), and approaches $\\eta_{pl}$ exactly when $f \\to \\infty$ (fully yielded). Other modes include harmonic averaging, a soft-min approximation, and a sharp min. The smooth default works well with Newton iteration because the Jacobian is continuous.</p><p>None of this blending logic requires special solver code. The effective viscosity is a SymPy expression. The solver differentiates it symbolically for the Jacobian. If you switch from smooth to sharp yielding, the Jacobian updates automatically.</p><h2 id=\"adding-elasticity-stress-has-memory\">Adding Elasticity: Stress Has Memory</h2><p>Viscous and plastic models are instantaneous. The stress depends only on the current strain rate. Elastic behaviour introduces memory: the stress depends on the deformation history.</p><p><code>ViscoElasticPlasticFlowModel</code> handles this. The Maxwell viscoelastic rheology combines viscous and elastic responses:</p><p>$$<br>\\dot\\varepsilon = \\frac{\\sigma}{2\\eta} + \\frac{\\dot\\sigma}{2\\mu}<br>$$</p><p>Rearranging and discretising in time, the stress at the current step depends on the stress at previous steps. This stress history is a transported term, advected (and rotated) with the flow.</p><pre><code class=\"language-python\">stokes = uw.systems.VE_Stokes(mesh, order=2)\nstokes.constitutive_model = uw.constitutive_models.ViscoElasticPlasticFlowModel\nstokes.constitutive_model.Parameters.shear_viscosity_0 = eta\nstokes.constitutive_model.Parameters.shear_modulus = uw.expression(\n    r\"\\mu\", uw.quantity(1e10, \"Pa\")\n)\n</code></pre><p>The time discretisation uses backward differentiation formulas (BDF) with coefficients that adapt to variable timestep sizes. At order 1, this is the implicit Euler method. At order 2, BDF-2 gives second-order accuracy in time. When the timestep changes abruptly, the model falls back to BDF-1 automatically to avoid instabilities from extrapolating stress history over a large time gap.</p><p>The stress history lives on particles via the solver's <code>DFDt</code> (flux time derivative) infrastructure. When you assign a constitutive model that requires stress history, the solver creates the necessary particle storage and sets up advection automatically. The same BDF/Adams-Moulton framework that handles temperature advection handles stress advection. The constitutive model declares <code>requires_stress_history = True</code>, and the solver takes care of the rest.</p><p>If you don't want to use particles for tracking the stress history, you can use a semi-Lagrangian version of the <code>DFDt</code> which is a drop-in replacement at the user level. </p><p>For VEP problems, the viscoelastic effective strain rate includes contributions from the stress history, and the plastic yield criterion is evaluated against this total deformation rate. The <code>bdf_blend</code> parameter controls blending between BDF-1 and BDF-2 near the yield surface, where pure BDF-2 can produce oscillations. The model auto-detects the appropriate blend: pure VE problems get full BDF-2 accuracy, while VEP problems get a stable near-optimal blend.</p><p>Recent work has extended the anisotropic model to <code>TransverseIsotropicVEPFlowModel</code>, combining directional weakness with viscoelastic stress memory and plastic yielding. The yield criterion is evaluated on the resolved shear stress on the fault plane, computed from the full stress tensor and the director orientation. In UW3, this is a class that inherits from the VEP model and overrides the stress computation with additional director terms. The Jacobian follows automatically. In UW2, it would have been extremely difficult to implement.</p><h2 id=\"the-solvers-view\">The Solver's View</h2><p>From the solver's perspective, a constitutive model is just an object with a <code>.flux</code> property that returns a SymPy Matrix. The same object pattern is used for constitutive models for stokes flow, heat diffusion, Darcy flow ... The solver does not know whether the flux comes from a constant viscosity, a temperature-dependent Frank-Kamenetskii law, a viscoelastic model with stress history, or an anisotropic fabric model. It differentiates the flux to get the Jacobian, compiles both to C, and registers them with PETSc.</p><p>The assignment pattern reflects this:</p><pre><code class=\"language-python\"># Assign a class \u2014 solver instantiates with its own Unknowns\nstokes.constitutive_model = uw.constitutive_models.ViscousFlowModel\n\n# Or assign an instance you've already configured\nmodel = uw.constitutive_models.ViscoElasticPlasticFlowModel(stokes.Unknowns, order=2)\nmodel.Parameters.shear_viscosity_0 = eta\nmodel.Parameters.shear_modulus = mu\nstokes.constitutive_model = model\n</code></pre><p>When you assign a model, the solver shares its <code>Unknowns</code> object with the model. This gives the model access to the velocity gradient (for computing strain rate), the DFDt stress history (for viscoelasticity), and the coordinate system (for computing directors in curvilinear geometry, for example). The model and solver are collaborators, not independent objects.</p><h2 id=\"the-design-pattern\">The Design Pattern</h2><p>The constitutive model system embodies a design choice that runs through all of Underworld3: separate the physics from the numerics. The physics lives in the constitutive model. It knows about viscosity, yield stress, elastic moduli, directors, stress history. It expresses all of this using SymPy objects.</p><p>The numerical part lives in the solver. This knows about weak forms, Jacobians, PETSc assembly, Newton iteration, time stepping. It reads the model's symbolic expressions and compiles them.</p><p>The boundary between the two is a SymPy Matrix. Everything on one side of that boundary is human-readable physics. On the other side is machine-generated numerics. You can change the physics without touching the solver. You can change the solver without touching the physics. And because the boundary is symbolic, both sides are inspectable at every stage.</p><p>In UW2, the physics and numerics were entangled in C. Changing one required understanding both. In UW3, you can write a new rheology in an afternoon, in a notebook, without compiling anything. That is the practical consequence of making constitutive models symbolic objects.</p>","doi":"https://doi.org/10.59350/5fe9q-8ps48","guid":"69d7d320eb7226563af542d3","image":"https://images.unsplash.com/photo-1665473052284-164335672208?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fHN5cnVwfGVufDB8fHx8MTc3NTc1MzA5NXww&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775952000,"rid":"61qad-eae12","summary":"In Underworld2, adding a new rheology was a matter of writing C code inside the StGermain framework, compiling it, and registering it with the component system. The barrier was high enough that most users never tried. The available rheologies were the ones the developers had implemented, and combining them required understanding the C internals.","tags":["Underworld Code","Tricks Of The Trade","Development"],"title":"Constitutive Models in Symbolic Form","updated_at":1782794178,"url":"https://www.underworldcode.org/constitutive-models-in-symbolic-form/","version":"v1"},{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"},{"contributor_roles":[],"family":"Knight","given":"Ben"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>Geodynamics involves quantities that span extraordinary ranges. Viscosity might be $10^{21}$ Pa\u00b7s, density $3300$ kg/m$^3$, thermal diffusivity $10^{-6}$ m$^2$/s. A single model combines all of these, and the solver needs them in a form where the numbers are close to unity. That means we need to non-dimensionalise our systems of equations. Every user of a geodynamics code does this in some fashion, but most codes force the user to do the book keeping themselves.</p><p>Underworld3 handles this differently. You write a model in physical units. The framework tracks those units through the symbolic pipeline, non-dimensionalises everything before it reaches PETSc, and re-dimensionalises the results when you read them back. The solver always works in non-dimensional space, but you never see a non-dimensionalised quantity unless you ask for one.</p><pre><code class=\"language-python\">import underworld3 as uw\n\n# Create quantities with physical units\nviscosity = uw.quantity(1e21, \"Pa*s\")\ndensity   = uw.quantity(3300, \"kg/m**3\")\ngravity   = uw.quantity(9.8, \"m/s**2\")\ndepth     = uw.quantity(2900, \"km\")\n\n# These are Pint objects \u2014 arithmetic preserves units\nbuoyancy = density * gravity * depth\nbuoyancy.units   # &lt;Unit('kilogram / meter / second ** 2 * kilometer')&gt;\nbuoyancy.to(\"GPa\")  # converts correctly\n</code></pre><p>This post describes how the units system works, what it cost us to build, and why we think it was worth it.</p><h2 id=\"the-problem-with-manual-scaling\">The Problem with Manual Scaling</h2><p>In a typical geodynamics workflow without automatic units, you choose reference values for length, time, mass, and temperature. Then you divide every input parameter by the appropriate combination of reference values to produce dimensionless numbers and pass the result to the solver. The solver returns dimensionless solutions. You then have to multiply by the reference values to get physical values.</p><p>This works, but it has failure modes that are quiet and expensive. The most common: you non-dimensionalise a quantity with the wrong combination of reference scales, or you forget to non-dimensionalise one parameter entirely. The solver runs. It converges. The answer looks plausible. And it is wrong by a factor of $10^6$.</p><p>You can guard against this with careful documentation and naming conventions. But every problem requires active attention to refererence quantities and scaling, and discipline in propagating scalings through a script or workflow. Every scale-change is an opportunity for bugs to be introduced.</p><h2 id=\"string-input-pint-object-storage\">String Input, Pint Object Storage</h2><p>The user-facing API is simple. <code>uw.quantity()</code> takes a number and a unit string (thank you to Pint for consistent conversion) and returns a <code>UWQuantity</code> object backed by the Pint library:</p><pre><code class=\"language-python\">eta = uw.quantity(1e21, \"Pa*s\")\neta.value   # 1e+21 \u2014 what the user sees\neta.units   # &lt;Unit('pascal * second')&gt;\n\n# Arithmetic works through Pint\nkappa = uw.quantity(1e-6, \"m**2/s\")\ntime_scale = depth**2 / kappa\ntime_scale.to(\"Myr\")  # meaningful geological time\n</code></pre><p>The principle is: accept strings for convenience, store Pint objects internally. This means every quantity carries its units as metadata, not as part of a naming convention. When you ask <code>eta.units</code>, you get a Pint Unit object that knows how to convert, compare, and combine with other unit-aware objects.</p><p>A Pint Quantity is a value plus units. You can convert it. A Pint Unit is just the unit, without a value. The distinction matters because <code>.to()</code> is a method on quantities, not on units. If you try <code>eta.units.to(\"Pa*s\")</code>, you get an <code>AttributeError</code>. This catches a real conceptual error: conversion is something we do to a measurement, not to a label.</p><h2 id=\"uwexpression-the-symbolic-bridge\">UWexpression: The Symbolic Bridge</h2><p>Quantities are concrete numbers with units. But Underworld3's solver pipeline works with SymPy expressions that defer evaluation. The bridge between these two worlds is UWexpression.</p><pre><code class=\"language-python\"># A UWexpression wraps a quantity with a symbolic name\nalpha = uw.expression(r\"\\alpha\", uw.quantity(3e-5, \"1/K\"), \"thermal expansivity\")\nDeltaT = uw.expression(r\"\\Delta T\", uw.quantity(1500, \"K\"), \"temperature contrast\")\n\n# In SymPy, alpha behaves like any symbol\nbuoyancy_contribution = alpha * DeltaT   # a SymPy product\n\n# But it knows its units\nalpha.units            # &lt;Unit('1 / kelvin')&gt;\nbuoyancy_ratio.units   # dimensionless \u2014 the K cancels\n</code></pre><p>The UWexpression is a <code>SymPy.Symbol</code> subclass. It participates in symbolic algebra exactly like any other symbol. You can differentiate through it, simplify around it, substitute it. But inside, it holds a reference to its concrete value, and that value carries units.</p><p>This is the transparent container principle. A UWexpression does not have its own units. It derives them from whatever it contains. If it wraps a UWQuantity, the units come from the quantity. If it wraps a composite SymPy expression built from other unit-carrying atoms, the units are computed on demand by walking the expression tree.</p><pre><code class=\"language-python\"># Units are discovered, not stored\ncomposite = alpha * density * gravity\ncomposite_units = uw.get_units(composite)\n# Computed: (1/K) * (kg/m\u00b3) * (m/s\u00b2) = kg/(K\u00b7m\u00b2\u00b7s\u00b2)\n</code></pre><p>There is no cached units attribute on composite expressions. Every time you ask for units, the system walks the tree, finds the atomic quantities, and computes the result through Pint arithmetic. This sounds expensive, but it only happens when someone asks. The solver never asks. It works in dimensionless space, where units have already been stripped at the compilation boundary.</p><h2 id=\"derivatives-and-units\">Derivatives and Units</h2><p>Spatial derivatives require special treatment. If temperature has units of kelvin and the coordinate has units of metres, then $\\partial T / \\partial x$ has units of K/m. The units system handles this explicitly.</p><p>In Underworld3, spatial derivatives of mesh variables are represented as special SymPy function objects that store a reference back to the parent variable and know which coordinate index they differentiate with respect to. When <code>get_units()</code> encounters one of these derivative symbols, it extracts the variable's units and the coordinate's units, and computes the quotient. A velocity gradient $\\partial v / \\partial x$ with units of (m/s)/m correctly reduces to 1/s. A temperature gradient with units of K/m can be combined with a thermal conductivity in W/(m\u00b7K) to produce a heat flux in W/m\u00b2.</p><p>When you write <code>T.diff(x)</code> in UW3, the result is not a generic SymPy Derivative object. It is an <code>UnderworldAppliedFunctionDeriv</code> that carries metadata about the parent variable and the differentiation coordinate. The units system reads that metadata directly: variable units divided by coordinate units. For the SymPy algebra, the derivative is still a symbol. For the units system, it is a symbol whose units can be computed from first principles.</p><p>This matters because constitutive models are built from derivatives. A viscous stress $\\sigma = 2 \\eta \\dot\\varepsilon$ involves the strain rate, which is a velocity gradient. The units of the stress expression are computed by walking the tree: $\\eta$ contributes Pa\u00b7s, the strain rate contributes 1/s, and the product gives Pa. If you accidentally define a viscosity with units of kg instead of Pa\u00b7s, the units of the stress will not be pascal, and <code>get_units()</code> will tell you.</p><p>The Jacobian computation that happens inside the solver uses SymPy's <code>derive_by_array()</code> to differentiate the residual with respect to the unknown fields and their gradients. This is general symbolic differentiation and does not need to consult the units system at all. By the time these derivatives are used, the expressions have been unwrapped and non-dimensionalised, so units have already been stripped. The two kinds of differentiation live in different parts of the pipeline: spatial derivatives with units exist in the user-facing symbolic layer; Jacobian derivatives exist in the dimensionless compilation layer.</p><p>One case we have not yet tested is differentiating with respect to a design parameter for adjoint problems. If you wanted $\\partial J / \\partial \\eta$ where $J$ is a cost functional and $\\eta$ is (say) a viscosity parameter, SymPy's symbolic differentiation would produce the correct expression. The general unit-discovery machinery (<code>compute_expression_units()</code>) should be able to walk the resulting expression tree and determine its units and scaling in the equation system. But we have not tested this part of the code explicitly \u2014 <em>(caveat emptor) !</em></p><h2 id=\"rendering-and-simplifying-units\">Rendering and Simplifying Units</h2><p>Pint arithmetic preserves units faithfully, but the results can be verbose. Multiply a density in kg/m$^3$ by a gravity in m/s$^2$ by a length in km, and you get units of <code>kilogram / meter / second ** 2 * kilometer</code>. Correct, but not what you want to read.</p><p>UW3 provides three tools for cleaning this up, all available at the top level:</p><pre><code class=\"language-python\"># to_reduced_units: cancel and simplify to named SI units\nforce = uw.quantity(100, \"kg*m/s**2\")\nuw.to_reduced_units(force)   # 100.0 newton\n\n# to_compact: choose magnitude-appropriate prefixes\nlength = uw.quantity(1e9, \"m\")\nuw.to_compact(length)        # 1.0 gigameter\n\n# .to(): explicit conversion to a specific unit\npressure = uw.quantity(1e5, \"Pa\")\npressure.to(\"bar\")           # 1.0 bar\n</code></pre><p><code>to_reduced_units()</code> is the workhorse for dimensional analysis. It collapses compound units into their simplest named form. <code>to_compact()</code> adjusts prefixes so the number is human-readable. Both work on UWQuantity, UWexpression, UnitAwareArray, and raw Pint objects.</p><p>The model also uses magnitude-aware display when reporting reference scales. When you set reference quantities, the summary shows <code>2900 kilometer</code> rather than <code>2.9e6 meter</code>, and <code>40 megayear</code> rather than <code>1.26e15 second</code>. These are the same values in different clothes, chosen to match how a geodynamicist thinks about them.</p><h2 id=\"the-gateway-pattern\">The Gateway Pattern</h2><p>The units system operates at boundaries, not throughout the computation. Three gateways handle all the transitions:</p><p><strong>Input gateway</strong> \u2014 <code>uw.quantity()</code> creates dimensional values from user input. This is where units enter the system.</p><p><strong>Compilation gateway</strong> \u2014 when the JIT compiler prepares expressions for C code generation, it unwraps everything. UWexpressions become their non-dimensional <code>.data</code> values. UWQuantities become dimensionless floats. Mesh variable symbols become array accessors. By the time SymPy's code printer sees the expression, there are no units left. The C code works entirely with doubles.</p><p><strong>Output gateway</strong> \u2014 <code>evaluate()</code> takes the solver's dimensionless results, looks up what units the expression should have, and wraps the result in a <code>UnitAwareArray</code> with the correct Pint units attached. The user sees physical numbers.</p><p>This means the SymPy algebra layer in the middle never tracks units. It does not need to. The expressions are symbolically correct regardless of what units the atoms carry. The physical correctness is guaranteed by the gateways: dimensional in, dimensionless through the solver, dimensional out.</p><h2 id=\"reference-quantities-and-non-dimensionalisation\">Reference Quantities and Non-Dimensionalisation</h2><p>To cross the compilation gateway, the system needs reference scales. The user provides these through the model:</p><pre><code class=\"language-python\">model = uw.get_default_model()\nmodel.set_reference_quantities(\n    domain_depth     = uw.quantity(2900, \"km\"),\n    plate_velocity   = uw.quantity(5, \"cm/year\"),\n    mantle_viscosity = uw.quantity(1e21, \"Pa*s\"),\n    mantle_temperature = uw.quantity(1500, \"K\"),\n)\n</code></pre><p>From these, the system derives fundamental scales for length, time, mass, and temperature. Any quantity can then be non-dimensionalised by dividing by the appropriate combination of fundamental scales. Viscosity in Pa\u00b7s becomes a number near 1. Length in km becomes a number near 1. The solver works with well-conditioned numbers throughout.</p><p>The non-dimensionalisation is automatic and pervasive. When you assign a dimensional value to a mesh variable through <code>.array</code>, the unit conversion layer non-dimensionalises it before writing to PETSc. When you read <code>.array</code>, it re-dimensionalises. The <code>.data</code> property bypasses this and gives you the raw dimensionless values that PETSc stores.</p><p>This is why <code>.array</code> is the recommended access path for user code. It handles the unit boundary transparently. <code>.data</code> is for when you want to work in solver space directly or avoid the conversion overhead.</p><h2 id=\"what-the-solver-sees\">What the Solver Sees</h2><p>The JIT compiler (described in our <a href=\"https://www.underworldcode.org/how-underworld3-turns-sympy-into-c/\">SymPy-to-C post</a>) extracts runtime constants from the expression tree. Each UWexpression that has no spatial dependence becomes an entry in a flat constants array. At extraction time, the compiler calls <code>.data</code> on each constant, which returns the non-dimensional value.</p><p>The C code that PETSc runs looks like this:</p><pre><code class=\"language-c\">out[0] = constants[0] * petsc_u_x[0];\n// constants[0] is the non-dimensional viscosity \u2014 a number as close to 1 as we can make it !\n</code></pre><p>If you change a parameter between solves, the constants array is repacked with new non-dimensional values. No recompilation. The structural form of the expression has not changed, only the numbers.</p><p>This separation is important for time-stepping problems. The time-step size, continuation parameters, BDF coefficients all change between solves. They are UWexpressions in the symbolic layer, constants in the compiled C, and they update cheaply because the unit conversion and non-dimensionalisation happen at packing time, not at compile time.</p><h2 id=\"what-this-cost\">What This Cost</h2><p>The units system was the hardest part of the Underworld3 rebuild. We described this in the <a href=\"https://www.underworldcode.org/ai-and-scientific-software-what-we-learned-rebuilding-underworld3/\">AI development post</a> \u2014 it was Phase 2, the one where context overflowed and sessions drifted.</p><p>The difficulty was not in the units library itself. Pint is mature and works well. The difficulty was that units touch everything. The mesh construction code, the variable initialisation, the solver templates, the JIT compiler, the evaluation pathway, the visualisation layer, the checkpoint system. Adding units meant revisiting every module in the codebase.</p><p>Two principles eventually brought the work under control.</p><p>First: \"the user must see every quantity as having units, no exceptions. If a quantity is dimensionless, that is the unit they see.\" This eliminated a whole category of special cases where some values had units and some did not.</p><p>Second: \"here is a dimensionless version of the problem and here is an equivalent with units. The PETSc view of this problem has to be exactly the same.\" This gave us a clear test criterion. Run the problem both ways. Compare the PETSc vectors. If they match, the non-dimensionalisation is correct. If they do not, something is wrong at a gateway.</p><p>Once we had those two principles, the remaining work was straightforward. Not easy, but straightforward.</p><h2 id=\"units-in-practice\">Units in Practice</h2><p>A complete example putting it together:</p><pre><code class=\"language-python\">import underworld3 as uw\nimport sympy\n\n# Physical parameters\neta_0 = uw.expression(\"eta_0\", uw.quantity(1e21, \"Pa*s\"))\nrho   = uw.expression(\"rho\",   uw.quantity(3300, \"kg/m**3\"))\ng     = uw.expression(\"g\",     uw.quantity(9.8,  \"m/s**2\"))\nalpha = uw.expression(\"alpha\", uw.quantity(3e-5, \"1/K\"))\nDT    = uw.expression(\"DT\",    uw.quantity(1500, \"K\"))\n\n# Rayleigh number \u2014 computed symbolically with units\nL = uw.quantity(2900, \"km\")\nkappa = uw.quantity(1e-6, \"m**2/s\")\nRa = (rho * alpha * g * DT * L**3) / (eta_0 * kappa)\n\n# Ra is dimensionless \u2014 the units cancel exactly\nRa.to_reduced_units()  # ~1e7, dimensionless\n</code></pre><p>The Rayleigh number computation is familiar from any geodynamics textbook. The difference is that here, the units are checked automatically. If you accidentally used a velocity where a diffusivity should go, Pint would produce a quantity with leftover dimensions, and downstream code would catch the inconsistency.</p><p>This does not replace physical intuition. You still need to know that a Rayleigh number of $10^7$ means vigorous convection. But it does replace the mental arithmetic of tracking dimensions through a chain of multiplications and divisions. The computer handles that now.</p><hr><p><em>The Underworld project is supported by AuScope and the Australian Government through the National Collaborative Research Infrastructure Strategy (NCRIS). Source code: </em><a href=\"https://github.com/underworldcode/underworld3?ref=underworldcode.org\"><em>github.com/underworldcode/underworld3</em></a></p>","doi":"https://doi.org/10.59350/2390e-w7d86","guid":"69d57d11eb7226563af541e4","image":"https://images.unsplash.com/photo-1611077544775-6e72542a206f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI5fHxzY2FsZXxlbnwwfHx8fDE3NzU1OTkxNTZ8MA&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775606400,"rid":"s65sw-a3580","summary":"Geodynamics involves quantities that span extraordinary ranges. Viscosity might be $10^{21}$ Pa\u00b7s, density $3300$ kg/m$^3$, thermal diffusivity $10^{-6}$ m$^2$/s. A single model combines all of these, and the solver needs them in a form where the numbers are close to unity. That means we need to non-dimensionalise our systems of equations.","tags":["Underworld Code","Development"],"title":"Physical Units in Computational Geodynamics","updated_at":1782794176,"url":"https://www.underworldcode.org/physical-units-in-computational-geodynamics/","version":"v1"},{"authors":[{"contributor_roles":[],"family":"Moresi","given":"Louis","url":"https://orcid.org/0000-0003-3685-174X"}],"blog":{"authors":null,"community_id":"c8b71a5b-b872-47ab-89f7-7c84741d68fc","created":1697760000,"current_feed_url":null,"description":"Geodynamics, Computation and Education","favicon":"https://rogue-scholar.org/api/communities/c8b71a5b-b872-47ab-89f7-7c84741d68fc/logo","feed_format":"application/rss+xml","feed_url":"https://www.underworldcode.org/rss/","filter":null,"generator":"Ghost","home_page_url":"https://www.underworldcode.org/","issn":null,"language":"eng","license":"https://creativecommons.org/licenses/by/4.0/legalcode","prefix":"10.59350","relative_url":null,"secure":true,"slug":"underworldcode","status":"active","subfield":"1908","title":"Underworld Geodynamics Community","updated":1782475466,"use_api":true},"blog_name":"Underworld Geodynamics Community","blog_slug":"underworldcode","content_html":"<p>In Underworld2, the answer was context managers. You would wrap every data access in a <code>with</code> block, and the framework synchronised the arrays on exit. It was safe, but verbose.</p>\n<p>In Underworld3, you just write to the array. The synchronisation happens automatically.</p>\n<pre><code class=\"language-python\"># Underworld2 (old)\nwith mesh.access(temperature):\n    temperature.data[...] = values\n\n# Underworld3 (current)\ntemperature.array[...] = values\n</code></pre>\n<p>This post explains how we make that work.</p>\n<h2 id=\"the-problem\">The Problem</h2>\n<p>PETSc stores field data in distributed vectors. Each MPI rank owns a portion of the mesh and holds a <em>local vector</em> (<code>_lvec</code>) that includes ghost values from neighbouring ranks. The solver reads and writes these local vectors during assembly and solution.</p>\n<p>The user wants to work with NumPy arrays. They want to set initial conditions, apply corrections, read solution values \u2014 all using familiar NumPy indexing. They do not want to know about local vectors, global vectors, ghost regions, or scatter operations.</p>\n<p>The challenge is bridging these two worlds without introducing bugs. If the user modifies an array but PETSc doesn't see the change, the solver works with stale data. If PETSc rebuilds its internal data structures (because the mesh adapted or a new variable was added), the user's cached array might try to view points at freed memory locations.</p>\n<h2 id=\"ndarraywithcallback-a-reactive-numpy-array\">NDArray_With_Callback: A Reactive NumPy Array</h2>\n<p>The core mechanism is <code>NDArray_With_Callback</code> \u2014 a NumPy ndarray subclass that fires a callback whenever its data is modified. When you write <code>temperature.data[0:10] = 300.0</code>, the array detects the assignment and triggers a synchronisation callback that copies the modified values into the PETSc local vector and scatters them to neighbouring ranks.</p>\n<p>The user sees a NumPy array. Behind it, every write triggers:</p>\n<ol>\n<li>Values are written into the PETSc local vector</li>\n<li>A local-to-global scatter copies owned values to the global vector</li>\n<li>A global-to-local scatter fills ghost regions from neighbouring ranks</li>\n</ol>\n<p>After step 3, every rank has consistent data including ghost values. The solver can proceed safely.</p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img src=\"https://www.underworldcode.org/content/images/2026/04/arrays-sync-flow.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"2000\" height=\"695\" srcset=\"https://www.underworldcode.org/content/images/size/w600/2026/04/arrays-sync-flow.png 600w, https://www.underworldcode.org/content/images/size/w1000/2026/04/arrays-sync-flow.png 1000w, https://www.underworldcode.org/content/images/size/w1600/2026/04/arrays-sync-flow.png 1600w, https://www.underworldcode.org/content/images/size/w2400/2026/04/arrays-sync-flow.png 2400w\" sizes=\"(min-width: 720px) 720px\"><figcaption><span style=\"white-space: pre-wrap;\">The data synchronisation pipeline: a write to .data or .array triggers a callback that packs values into the PETSc local vector, scatters to the global vector, and fills ghost regions from neighbouring MPI ranks.</span></figcaption></figure><p></p><p></p><h2 id=\"the-self-validating-cache\">The Self-Validating Cache</h2>\n<p>The <code>.data</code> property on a MeshVariable returns an <code>NDArray_With_Callback</code> view into the PETSc local vector. Creating this view is not free \u2014 it involves extracting the raw pointer from PETSc, wrapping it in NumPy, registering callbacks, and reshaping. So the variable caches it.</p>\n<p>The danger is stale caches. PETSc can destroy and recreate its internal vectors when:</p>\n<ul>\n<li>A new MeshVariable is added to the mesh (triggers a DM rebuild)</li>\n<li>The mesh adapts (new topology, new vectors)</li>\n</ul>\n<p>After either event, the old cached array view points at deallocated memory. Reading it returns garbage; writing to it corrupts the heap.</p>\n<p>UW3 solves this with a single line of defence: on every <code>.data</code> or <code>.array</code> access, it checks whether <code>id(self._lvec)</code> matches the cached value. Python's <code>id()</code> returns the memory address of an object. If PETSc has replaced the local vector, the new object has a different <code>id</code>, the check fails, and the cache rebuilds automatically.</p>\n<pre><code class=\"language-python\">@property\ndef data(self):\n    cache_valid = (\n        self._canonical_data is not None\n        and self._canonical_data_lvec_id == id(self._lvec)\n    )\n\n    if not cache_valid:\n        self._canonical_data = self._create_canonical_data_array()\n        self._canonical_data_lvec_id = id(self._lvec)\n\n    return self._canonical_data\n</code></pre>\n<p>No code path needs to manually invalidate the cache. No flag to set, no method to call. The cache validates itself on every access. If the underlying vector changed, the view rebuilds. If it didn't, the cached view is returned immediately.</p>\n<h2 id=\"batch-updates\">Batch Updates</h2>\n<p>Sometimes you need to update several variables together. Each individual write triggers a PETSc synchronisation \u2014 which involves MPI communication. If you are setting initial conditions on velocity, pressure, and temperature, that is three synchronisation rounds where one would suffice.</p>\n<p><code>uw.synchronised_array_update()</code> defers all callbacks until the context exits:</p>\n<pre><code class=\"language-python\">with uw.synchronised_array_update():\n    velocity.array[...] = v_initial\n    pressure.array[...] = p_initial\n    temperature.array[...] = T_initial\n# All three synchronise here, once\n</code></pre>\n<p>During the context, writes accumulate but callbacks are queued. On exit, all queued callbacks fire in order, and MPI barriers ensure all ranks stay in step.</p>\n<h2 id=\"two-access-layers\">Two Access Layers</h2>\n<p>MeshVariable exposes two properties for data access:</p>\n<p><strong><code>.data</code></strong> returns a flat <code>(N, num_components)</code> array. This is the internal format \u2014 what PETSc stores. It is always dimensionless (non-dimensionalised if units are active). Direct, fast, no conversion overhead.</p>\n<p><strong><code>.array</code></strong> returns a structured <code>(N, a, b)</code> array where the shape reflects the variable type: <code>(N, 1, 1)</code> for scalars, <code>(N, 1, dim)</code> for vectors, <code>(N, dim, dim)</code> for tensors. It handles unit conversion on read and write \u2014 you can assign values with physical units and they are non-dimensionalised before reaching PETSc.</p>\n<p>For most user code, <code>.array</code> is a good choice. <code>.data</code> is there when you want to avoid the overhead of unit converstions or resizing (for example, copying from one array to another).</p>\n<h2 id=\"what-the-solver-sees\">What the Solver Sees</h2>\n<p>The solvers themselves never use <code>.data</code> or <code>.array</code>. They access the PETSc vector directly via a <code>.vec</code> property that returns the raw <code>_lvec</code>. This is deliberate \u2014 the callback mechanism adds a thin layer of overhead that is irrelevant for user operations but would accumulate over millions of quadrature-point evaluations during assembly.</p>\n<p>The division is clean: users work through <code>.array</code> (safe, synchronised, cached). Solvers work through <code>.vec</code> (direct, fast, PETSc-native). The two paths share the same underlying memory \u2014 the PETSc local vector \u2014 so there is no data duplication.</p>\n<h2 id=\"why-this-design\">Why This Design</h2>\n<p>The context-manager approach in UW2 was safe but required discipline. Every data access had to be wrapped. Nested access for multiple variables was awkward. And the most common bug \u2014 forgetting the context manager \u2014 produced wrong results silently.</p>\n<p>The callback approach eliminates an entire class of bugs. You cannot forget to synchronise because synchronisation is automatic. The self-validating cache eliminates another class \u2014 stale views after DM rebuilds. And batch updates via <code>synchronised_array_update()</code> give you the performance of explicit synchronisation when you need it.</p>\n<p>The cost is one <code>id()</code> comparison per <code>.data</code> access and one callback dispatch per write. For user-level operations \u2014 setting initial conditions, post-processing solution fields, checkpointing \u2014 this is negligible. For solver-level operations \u2014 millions of quadrature evaluations \u2014 the direct <code>.vec</code> path bypasses it entirely.</p>","doi":"https://doi.org/10.59350/6mxqs-3p708","guid":"69ce5868eb7226563af540f3","image":"https://images.unsplash.com/photo-1642602519174-0318c786f6d8?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fHRpbWluZ3xlbnwwfHx8fDE3NzUxNjg3MDN8MA&ixlib=rb-4.1.0&q=80&w=2000","language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","published_at":1775174400,"rid":"gxvk2-d2138","summary":"In Underworld2, the answer was context managers. You would wrap every data access in a with block, and the framework synchronised the arrays on exit. It was safe, but verbose. In Underworld3, you just write to the array. The synchronisation happens automatically. # Underworld2 (old) with mesh.access(temperature): temperature.data[...] = values # Underworld3 (current) temperature.array[...] = values This post explains how we make that work.","tags":["Underworld Code","Development"],"title":"Mesh Variables and PETSc Vectors: Keeping Arrays in Sync","updated_at":1782794175,"url":"https://www.underworldcode.org/mesh-variables-and-petsc-vectors-keeping-arrays-in-sync/","version":"v1"}],"out_of":50729,"page":1,"per_page":10,"total-results":50729}
