https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MaterialWarehouse.h
Go to the documentation of this file.
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#pragma once
11
12// MOOSE includes
14
15// Forward declarations
16class MaterialBase;
17
26class MaterialWarehouse : public MooseObjectWarehouse<MaterialBase>
27{
28public:
30
32
36 virtual void initialSetup(THREAD_ID tid = 0) const override;
37 virtual void timestepSetup(THREAD_ID tid = 0) const override;
38 virtual void subdomainSetup(THREAD_ID tid = 0) const override;
39 virtual void subdomainSetup(SubdomainID id, THREAD_ID tid = 0) const override;
40 virtual void neighborSubdomainSetup(THREAD_ID tid = 0) const;
41 virtual void neighborSubdomainSetup(SubdomainID id, THREAD_ID tid = 0) const;
42 virtual void jacobianSetup(THREAD_ID tid = 0) const override;
43 virtual void residualSetup(THREAD_ID tid = 0) const override;
44 virtual void updateActive(THREAD_ID tid = 0) override;
51 void sort(THREAD_ID tid = 0, bool sort_all_objects = false);
53
57 void addObjects(std::shared_ptr<MaterialBase> block,
58 std::shared_ptr<MaterialBase> neighbor,
59 std::shared_ptr<MaterialBase> face,
60 THREAD_ID tid = 0);
61
62protected:
65
68
72 virtual void
73 updateMatPropDependencyHelper(std::unordered_set<unsigned int> & needed_mat_props,
74 const std::vector<std::shared_ptr<MaterialBase>> & objects,
75 const bool producer_only) const override;
76};
unsigned int THREAD_ID
Definition MooseTypes.h:237
MaterialBases compute MaterialProperties.
MaterialBase objects are special in that they have additional objects created automatically (see FEPr...
virtual void updateMatPropDependencyHelper(std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< MaterialBase > > &objects, const bool producer_only) const override
Helper method for updating material property dependency vector.
virtual void jacobianSetup(THREAD_ID tid=0) const override
void addObjects(std::shared_ptr< MaterialBase > block, std::shared_ptr< MaterialBase > neighbor, std::shared_ptr< MaterialBase > face, THREAD_ID tid=0)
A special method unique to this class for adding Block, Neighbor, and Face material objects.
virtual void updateActive(THREAD_ID tid=0) override
Update the active status of Kernels.
void sort(THREAD_ID tid=0, bool sort_all_objects=false)
By default, this method only sorts block and boundary-wise object storages that are used by the MOOSE...
virtual void subdomainSetup(THREAD_ID tid=0) const override
virtual void neighborSubdomainSetup(THREAD_ID tid=0) const
MooseObjectWarehouse< MaterialBase > _neighbor_materials
Storage for neighbor material objects (Block are stored in the base class)
const MooseObjectWarehouse< MaterialBase > & operator[](Moose::MaterialDataType data_type) const
MooseObjectWarehouse< MaterialBase > _face_materials
Storage for face material objects (Block are stored in the base class)
virtual void residualSetup(THREAD_ID tid=0) const override
virtual void timestepSetup(THREAD_ID tid=0) const override
virtual void initialSetup(THREAD_ID tid=0) const override
Convenience methods for calling object setup methods that handle the extra neighbor and face objects.
A storage container for MooseObjects that inherit from SetupInterface.
MaterialDataType
MaterialData types.
Definition MooseTypes.h:746