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 21296 : 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 21296 : MooseObjectWarehouse<MaterialBase>::addObject(block, tid); 21 21296 : _neighbor_materials.addObject(neighbor, tid); 22 21296 : _face_materials.addObject(face, tid); 23 21296 : } 24 : 25 : const MooseObjectWarehouse<MaterialBase> & 26 31147676 : MaterialWarehouse::operator[](Moose::MaterialDataType data_type) const 27 : { 28 31147676 : switch (data_type) 29 : { 30 11924081 : case Moose::NEIGHBOR_MATERIAL_DATA: 31 11924081 : return _neighbor_materials; 32 : 33 19220697 : case Moose::FACE_MATERIAL_DATA: 34 19220697 : return _face_materials; 35 : 36 2898 : default: 37 2898 : return *this; 38 : } 39 : } 40 : 41 : void 42 8726 : MaterialWarehouse::initialSetup(THREAD_ID tid /*=0*/) const 43 : { 44 8726 : MooseObjectWarehouse<MaterialBase>::initialSetup(tid); 45 8706 : _neighbor_materials.initialSetup(tid); 46 8706 : _face_materials.initialSetup(tid); 47 8706 : } 48 : 49 : void 50 308226 : MaterialWarehouse::timestepSetup(THREAD_ID tid /*=0*/) const 51 : { 52 308226 : MooseObjectWarehouse<MaterialBase>::timestepSetup(tid); 53 308226 : _neighbor_materials.timestepSetup(tid); 54 308226 : _face_materials.timestepSetup(tid); 55 308226 : } 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 5831951 : MaterialWarehouse::subdomainSetup(SubdomainID id, THREAD_ID tid /*=0*/) const 72 : { 73 5831951 : MooseObjectWarehouse<MaterialBase>::subdomainSetup(id, tid); 74 5831951 : _face_materials.subdomainSetup(id, tid); 75 5831951 : } 76 : 77 : void 78 17588687 : MaterialWarehouse::neighborSubdomainSetup(SubdomainID id, THREAD_ID tid /*=0*/) const 79 : { 80 17588687 : _neighbor_materials.subdomainSetup(id, tid); 81 17588687 : } 82 : 83 : void 84 3577102 : MaterialWarehouse::residualSetup(THREAD_ID tid /*=0*/) const 85 : { 86 3577102 : MooseObjectWarehouse<MaterialBase>::residualSetup(tid); 87 3577102 : _neighbor_materials.residualSetup(tid); 88 3577102 : _face_materials.residualSetup(tid); 89 3577102 : } 90 : 91 : void 92 565120 : MaterialWarehouse::jacobianSetup(THREAD_ID tid /*=0*/) const 93 : { 94 565120 : MooseObjectWarehouse<MaterialBase>::jacobianSetup(tid); 95 565120 : _neighbor_materials.jacobianSetup(tid); 96 565120 : _face_materials.jacobianSetup(tid); 97 565120 : } 98 : 99 : void 100 1100063 : MaterialWarehouse::updateActive(THREAD_ID tid /*=0*/) 101 : { 102 1100063 : MooseObjectWarehouse<MaterialBase>::updateActive(tid); 103 1100063 : _neighbor_materials.updateActive(tid); 104 1100063 : _face_materials.updateActive(tid); 105 1100063 : } 106 : 107 : void 108 17574 : MaterialWarehouse::sort(THREAD_ID tid /*=0*/) 109 : { 110 17574 : checkThreadID(tid); 111 : 112 30717 : for (auto & object_pair : _all_block_objects[tid]) 113 13147 : sortHelper(object_pair.second); 114 18367 : for (auto & object_pair : _all_boundary_objects[tid]) 115 797 : sortHelper(object_pair.second); 116 : 117 26310 : for (auto & object_pair : _neighbor_materials._all_block_objects[tid]) 118 8740 : sortHelper(object_pair.second); 119 17570 : for (auto & object_pair : _neighbor_materials._all_boundary_objects[tid]) 120 0 : sortHelper(object_pair.second); 121 : 122 26310 : for (auto & object_pair : _face_materials._all_block_objects[tid]) 123 8740 : sortHelper(object_pair.second); 124 17570 : for (auto & object_pair : _face_materials._all_boundary_objects[tid]) 125 0 : sortHelper(object_pair.second); 126 : 127 17570 : updateActive(tid); 128 17570 : }