Vale signs agreements to develop Mega Hubs in the Middle East and provide decarbonization solutions for steelmaking
Recent searches
Quick Links
•
Vale signs agreements to develop Mega Hubs in the Middle East and provide decarbonization solutions for steelmaking
Vale announces that it has signed three agreements with local authorities and clients to jointly study the feasibility of developing industrial complexes (Mega Hubs) in the Kingdom of Saudi Arabia, the United Arab Emirates and the Sultanate of Oman to produce low carbon footprint products to the steelmaking industry.
The parties are seeking to cooperate in the development of these Mega Hubs to produce hot briquetted iron (HBI) and steel products to supply both the local and seaborne markets with significant reduction of CO2 emissions.
The production of HBI using natural gas emits around 60%1 less CO2 than the pig iron production through the integrated BF-BoF route. In the future, the replacement of natural gas by hydrogen and the usage of renewable energy could totally eliminate carbon emissions.
Vale is expected to build and operate concentration and briquetting plants within the hubs, providing secure supply of high-grade agglomerated products. Local parties are expected to promote the construction of the required logistics infrastructure. Investors and/or clients are expected to construct and operate the direct reduction plants and be off takers of HBI for either the export or domestic markets. These Mega Hubs shall supply different markets across the globe supporting the decarbonization of the steelmaking industry.
Vale’s Chief Executive Officer Eduardo Bartolomeo said: “We are very pleased to announce these partnerships, which we believe will be key to support the decarbonization of the steelmaking industry. With this initiative Vale will guarantee the availability of high-grade agglomerated products and foster the expansion of the low carbon steel industry.”
Marcello Spinelli, Vale’s Executive Vice President, Iron Ore, said: “We see a great potential in the direct reduction route, with the demand for these high-grade agglomerated products growing 100 Mt in the next 15-20 years. We shall structurally increase our supply of these highly valuable agglomerated products over the next years, improving the value of our product portfolio. We strongly believe that the Middle East, with its competitive energy prices, strategic location and entrepreneurial mindset, has a unique set of conditions to successfully develop these integrated hubs.”
This initiative contributes to Vale’s commitment to reduce 15% of net scope 3 emissions by 2035. Additionally, Vale seeks to reduce its absolute scope 1 and 2 emissions by 33% by 2030 and achieve net zero by 2050, in line with the Paris Agreement, leading the evolution process towards sustainable mining.
Green briquettes and the path to decarbonization
Vale’s green briquettes were firstly announced last year after being developed for almost 20 years. The product was initially designed to replace direct charge and sinter products in the integrated blast furnace-basic oxygen furnace (BF-BoF) steelmaking route, potentially reducing carbon emissions up to 10%. Green briquettes can also be used in the direct reduction route (as in the Mega Hubs), offering an even “greener” option to the steelmaking sector.
To this date Vale has signed agreements with more than 30 clients for the development of joint solutions to decarbonize the steel industry. These clients represent around 50% of the company’s scope 3 emissions.
About agreements signed
• On October 26th, 2022, Vale signed a Memorandum of Understanding (MoU) with the Saudi Arabia’s National Industrial Development Center (NIDC) to jointly study a Mega Hub development at Ras Al Khair Industrial City. Under the Ministry of Industry and Mineral Resources, the National Industrial Development Center (NIDC) is responsible for establishing the relationships with leading industrial organizations, driving the industrial development of the Kingdom of Saudi Arabia (KSA), being a reference and thought leader for the local industrial sector, supporting economic and technical leadership in the Kingdom.
• On October 27th, 2022, Vale signed a Memorandum of Understanding (MoU) with the Emirates Steel Arkan (ESA) to jointly study a Mega Hub development at Khalifa Economic Zones Abu Dhabi (KEZAD). ESA is a public joint stock company and the UAE’s largest steel and building materials manufacturer. The Group supply the domestic and international markets with high-quality steel finished products including wire rods, rebars, heavy sections and sheet piles. Additionally, the Group produces premium cement, blocks, pipes, and dry mortar, creating a one-stop shop for the manufacturing and construction sectors. The Group plays a major role in contributing to the diversification of the UAE’s economy in line with the UAE Industrial Strategy ‘Operation 300bn’ and the Abu Dhabi Economic Vision 2030. Through SENAAT, Emirates Steel Arkan is part of ADQ, one of the region’s largest holding companies with a broad portfolio of major enterprises spanning key sectors of Abu Dhabi’s diversified economy.
• On October 30th, 2022, Vale signed a Cooperation Memorandum with the Ministry of Commerce, Industry and Investment Promotion of the Sultanate of Oman to jointly study a Mega Hub development at Special Economic Zone at Duqm.
Media Relations Office - vale
imprensa@vale.com
https://saladeimprensa.vale.com/press-releases
The following has evaluated to null or missing: ==> restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items [in template "44549#44620#65143" at line 4, column 42] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: pressTopicVocabularyId = restClient.g... [in template "44549#44620#65143" at line 4, column 17] ----
1<#assign
2 images_path = "/documents/d/guest/"
3 namespace = "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_" + stringUtil.randomId()
4 pressTopicVocabularyId = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items[0].id
5/>
6
7<#function getDisplayPageUrl asset>
8 <#local
9 assetRenderer = asset.getAssetRenderer()
10 baseViewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, asset, !stringUtil.equals(assetLinkBehavior, "showFullContent"))?split("?")?first?split("/-/")?first
11 />
12 <#return baseViewURL?replace(themeDisplay.getURLPortal(), "")/>
13</#function>
14
15<#function getCategoryFilterEndpoint asset>
16 <#local
17 pressTopicCategory = asset.getCategories()?filter(category -> category.getVocabularyId() == pressTopicVocabularyId)?first
18 pressTopicCategoryId = pressTopicCategory.getCategoryId()
19 />
20 <#return "/-/categories/" + pressTopicCategoryId />
21</#function>
22
23<#function getDDMFormFieldsValue DDMFormFieldsReferencesMap DDMFormFieldValuesMap fieldReference>
24 <#local field = DDMFormFieldsReferencesMap[fieldReference].name />
25 <#return DDMFormFieldValuesMap[field][0].getValue().getString(locale)!"" />
26</#function>
27
28<#function getCustomDisplayPageDataAttr customDisplayPageJson categoryFilterEndpoint>
29 <#local
30 groupId = customDisplayPageJson.getLong("groupId")
31 uuid = customDisplayPageJson.getString("id")
32 privateLayout = customDisplayPageJson.getBoolean("privateLayout")
33 />
34 <#local customDisplayPageDataAttr>
35 data-vale-custom-display-page='{"groupId":${groupId},"uuid":"${uuid}","privateLayout":${privateLayout?c}}'
36 data-vale-category-endpoint=${categoryFilterEndpoint}
37 </#local>
38 <#return customDisplayPageDataAttr/>
39</#function>
40
41<section class="vale-widget-imprensa-relacionadas bg-verde-vale" id="vale-widget-imprensa-relacionadas-${namespace}">
42 <div class="fragment-container overflow-hidden">
43 <div class="container">
44 <div class="titulo d-flex justify-content-between mt-7 mb-5">
45 <h2 class="text-amarelo-vale">
46 <@liferay.language key="press" />
47 </h2>
48 <div class="d-none d-md-flex align-self-center justify-content-end">
49 <img
50 class="${namespace} carrossel-card-branco-categoria-button-prev btn btn-primary border-amarelo-vale bg-amarelo-vale mr-3 p-1 rounded-circle"
51 src="${images_path}seta-2-esq_bra"
52 alt="button-prev"
53 />
54 <img
55 class="${namespace} carrossel-card-branco-categoria-button-next btn btn-primary border-amarelo-vale bg-amarelo-vale p-1 rounded-circle"
56 src="${images_path}seta-2-dir_bra"
57 alt="button-next"
58 />
59 </div>
60 </div>
61 <div class="swiper ${namespace} carrossel-card-branco-categoria">
62 <div class="swiper-wrapper mb-sm-6">
63 <#if entries?has_content>
64 <#list entries as curEntry>
65 <#assign
66 assetRenderer = curEntry.getAssetRenderer()
67 article = assetRenderer.getArticle()
68
69 categoryFilterEndpoint = getCategoryFilterEndpoint(curEntry)
70
71 DDMFormFieldValuesMap = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()
72 DDMFormFieldsReferencesMap = assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true)
73
74 customDisplayPageJsonString = getDDMFormFieldsValue(DDMFormFieldsReferencesMap, DDMFormFieldValuesMap, "customDisplayPage")
75 customDisplayPageJson = jsonFactoryUtil.createJSONObject(customDisplayPageJsonString)
76
77 hasCustomDisplayPage = customDisplayPageJson.getString("groupId")?has_content
78 customDisplayPageDataAttr = hasCustomDisplayPage?then(
79 getCustomDisplayPageDataAttr(customDisplayPageJson, categoryFilterEndpoint), "")
80
81 displayPageUrl = getDisplayPageUrl(curEntry) + categoryFilterEndpoint
82 />
83 <div class="swiper-slide">
84 <a href="${displayPageUrl}" class="text-decoration-none" ${customDisplayPageDataAttr}>
85 <div class="box d-flex flex-column justify-content-between p-3">
86 <div>
87 <p class="text-verde-aqua mb-2">
88 <#assign categories = curEntry.getCategories() />
89 <#list categories as category>
90 <#if category.vocabularyId == pressTopicVocabularyId>
91 ${category.name}
92 <#break>
93 </#if>
94 </#list>
95 </p>
96 <p class="text-verde-vale">
97 ${curEntry.getTitle(locale)}
98 </p>
99 </div>
100 <p class="text-cinza-escuro m-0">
101 <#assign dataField = DDMFormFieldsReferencesMap['data'].name />
102 <#assign data = DDMFormFieldValuesMap[dataField][0].getValue().getString(locale) />
103 <#assign date_localized = dateUtil.formatDate("yyyy-MM-dd", data, locale)/>
104
105 ${date_localized}
106 </p>
107 <img
108 class="onda position-absolute"
109 src="${images_path}onda_verde"
110 />
111 </div>
112 </a>
113 </div>
114 </#list>
115 </#if>
116 </div>
117 </div>
118 <a
119 class="bg-amarelo-vale border-amarelo-vale btn btn-nm btn-primary mb-6"
120 href="${(locale == 'pt_BR')?then('/imprensa','/press-releases')}"
121 target="_blank"
122 >
123 <@liferay.language key="access-press-area" />
124 </a>
125 </div>
126 </div>
127</section>
128
129<style>
130.vale-widget-imprensa-relacionadas .onda {
131 position: absolute;
132 bottom: 1.875rem;
133 right: -0.125rem;
134}
135
136.vale-widget-imprensa-relacionadas .box {
137 background-color: var(--branco);
138 border-left: 10px solid var(--amarelo-vale);
139 height: 14.6875rem;
140 margin-bottom: 2rem;
141}
142
143.vale-widget-imprensa-relacionadas p {
144 display: -webkit-box;
145 line-clamp: 4;
146 overflow: hidden;
147 -webkit-line-clamp: 4;
148 -webkit-box-orient: vertical;
149}
150
151@media screen and (min-width: 768px) {
152 .vale-widget-imprensa-relacionadas .box {
153 border-left: 20px solid var(--amarelo-vale);
154 height: 11.875rem;
155 }
156
157 .vale-widget-imprensa-relacionadas p {
158 line-clamp: 3;
159 -webkit-line-clamp: 3;
160 }
161}
162
163.vale-widget-imprensa-relacionadas .container {
164 overflow: visible;
165}
166
167.vale-widget-imprensa-relacionadas .swiper {
168 overflow: visible;
169}
170
171.vale-widget-imprensa-relacionadas .swiper-slide {
172 width: auto;
173}
174
175</style>
176
177<script>
178(function(){
179
180var swiper = new Swiper(".${namespace}.carrossel-card-branco-categoria", {
181 slidesPerView: 1,
182 spaceBetween: 32,
183 navigation: {
184 nextEl: ".${namespace}.carrossel-card-branco-categoria-button-next",
185 prevEl: ".${namespace}.carrossel-card-branco-categoria-button-prev",
186 disabledClass: "disabled",
187 navigationDisabledClass: "disabled",
188 },
189 pagination: {
190 clickable: true,
191 },
192 slideClass: "swiper-slide",
193 breakpoints: {
194 768: {
195 slidesPerView: 2,
196 },
197 1024: {
198 slidesPerView: 3,
199 },
200 },
201});
202
203 // Tagueamento
204
205 const namespace = document.querySelector("#vale-widget-imprensa-relacionadas-${namespace}");
206
207 const section = namespace.querySelector("h2").innerText;
208
209 const links = namespace.querySelectorAll("a");
210
211 const handleEventLinkClick = (title, href) => {
212 Analytics.track("Link", {
213 section: section,
214 rotulo: title + " : " + href,
215 });
216 };
217
218 links.forEach(link => {
219 const text = link.querySelector('p.text-verde-vale');
220 const title = text ? text.innerText : '';
221 link.addEventListener("click", () => handleEventLinkClick(title, link.href))
222 })
223
224 // Configurar URL de página de exibição dinâmica
225 const displayPageUrls = namespace.querySelectorAll('a[data-vale-custom-display-page]');
226
227 displayPageUrls.forEach(displayPageUrl => {
228 const customDisplayPage = displayPageUrl.dataset["valeCustomDisplayPage"];
229 const categoryEndpoint = displayPageUrl.dataset["valeCategoryEndpoint"];
230 Liferay.Service(
231 '/layout/get-layout-by-uuid-and-group-id',
232 JSON.parse(customDisplayPage),
233 layout => {
234 const friendlyURL = layout["friendlyURL"];
235 if (friendlyURL) {
236 displayPageUrl.href = friendlyURL + categoryEndpoint;
237 }
238 }
239 );
240 })
241})()
242
243</script>
See also