Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : // MOOSE includes 11 : #include "MaterialWarehouse.h" 12 : #include "MaterialBase.h" 13 : 14 : void 15 23052 : MaterialWarehouse::addObjects(std::shared_ptr<MaterialBase> block, 16 : std::shared_ptr<MaterialBase> neighbor, 17 : std::shared_ptr<MaterialBase> face, 18 : THREAD_ID tid /*=0*/) 19 : { 20 23052 : MooseObjectWarehouse<MaterialBase>::addObject(block, tid); 21 23052 : _neighbor_materials.addObject(neighbor, tid); 22 23052 : _face_materials.addObject(face, tid); 23 23052 : } 24 : 25 : const MooseObjectWarehouse<MaterialBase> & 26 31060279 : MaterialWarehouse::operator[](Moose::MaterialDataType data_type) const 27 : { 28 31060279 : switch (data_type) 29 : { 30 12178754 : case Moose::NEIGHBOR_MATERIAL_DATA: 31 12178754 : return _neighbor_materials; 32 : 33 18878627 : case Moose::FACE_MATERIAL_DATA: 34 18878627 : return _face_materials; 35 : 36 2898 : default: 37 2898 : return *this; 38 : } 39 : } 40 : 41 : void 42 9436 : MaterialWarehouse::initialSetup(THREAD_ID tid /*=0*/) const 43 : { 44 9436 : MooseObjectWarehouse<MaterialBase>::initialSetup(tid); 45 9416 : _neighbor_materials.initialSetup(tid); 46 9416 : _face_materials.initialSetup(tid); 47 9416 : } 48 : 49 : void 50 313205 : MaterialWarehouse::timestepSetup(THREAD_ID tid /*=0*/) const 51 : { 52 313205 : MooseObjectWarehouse<MaterialBase>::timestepSetup(tid); 53 313205 : _neighbor_materials.timestepSetup(tid); 54 313205 : _face_materials.timestepSetup(tid); 55 313205 : } 56 : 57 : void 58 0 : MaterialWarehouse::subdomainSetup(THREAD_ID tid /*=0*/) const 59 : { 60 0 : MooseObjectWarehouse<MaterialBase>::subdomainSetup(tid); 61 0 : _face_materials.subdomainSetup(tid); 62 0 : } 63 : 64 : void 65 0 : MaterialWarehouse::neighborSubdomainSetup(THREAD_ID tid /*=0*/) const 66 : { 67 0 : _neighbor_materials.subdomainSetup(tid); 68 0 : } 69 : 70 : void 71 6039378 : MaterialWarehouse::subdomainSetup(SubdomainID id, THREAD_ID tid /*=0*/) const 72 : { 73 6039378 : MooseObjectWarehouse<MaterialBase>::subdomainSetup(id, tid); 74 6039378 : _face_materials.subdomainSetup(id, tid); 75 6039378 : } 76 : 77 : void 78 18278029 : MaterialWarehouse::neighborSubdomainSetup(SubdomainID id, THREAD_ID tid /*=0*/) const 79 : { 80 18278029 : _neighbor_materials.subdomainSetup(id, tid); 81 18278029 : } 82 : 83 : void 84 3625368 : MaterialWarehouse::residualSetup(THREAD_ID tid /*=0*/) const 85 : { 86 3625368 : MooseObjectWarehouse<MaterialBase>::residualSetup(tid); 87 3625368 : _neighbor_materials.residualSetup(tid); 88 3625368 : _face_materials.residualSetup(tid); 89 3625368 : } 90 : 91 : void 92 573044 : MaterialWarehouse::jacobianSetup(THREAD_ID tid /*=0*/) const 93 : { 94 573044 : MooseObjectWarehouse<MaterialBase>::jacobianSetup(tid); 95 573044 : _neighbor_materials.jacobianSetup(tid); 96 573044 : _face_materials.jacobianSetup(tid); 97 573044 : } 98 : 99 : void 100 1344762 : MaterialWarehouse::updateActive(THREAD_ID tid /*=0*/) 101 : { 102 1344762 : MooseObjectWarehouse<MaterialBase>::updateActive(tid); 103 1344762 : _neighbor_materials.updateActive(tid); 104 1344762 : _face_materials.updateActive(tid); 105 1344762 : } 106 : 107 : void 108 24888 : MaterialWarehouse::sort(THREAD_ID tid /*=0*/, bool sort_all_objects /*=false*/) 109 : { 110 24888 : checkThreadID(tid); 111 : 112 38829 : for (auto & object_pair : _all_block_objects[tid]) 113 13947 : sortHelper(object_pair.second); 114 25691 : for (auto & object_pair : _all_boundary_objects[tid]) 115 809 : sortHelper(object_pair.second); 116 : 117 34346 : for (auto & object_pair : _neighbor_materials._all_block_objects[tid]) 118 9464 : sortHelper(object_pair.second); 119 24882 : for (auto & object_pair : _neighbor_materials._all_boundary_objects[tid]) 120 0 : sortHelper(object_pair.second); 121 : 122 34346 : for (auto & object_pair : _face_materials._all_block_objects[tid]) 123 9464 : sortHelper(object_pair.second); 124 24882 : for (auto & object_pair : _face_materials._all_boundary_objects[tid]) 125 0 : sortHelper(object_pair.second); 126 : 127 24882 : if (sort_all_objects) 128 : { 129 5888 : sortHelper(_all_objects[tid]); 130 5888 : sortHelper(_neighbor_materials._all_objects[tid]); 131 5888 : sortHelper(_face_materials._all_objects[tid]); 132 : } 133 : 134 24882 : updateActive(tid); 135 24882 : }