https://mooseframework.inl.gov
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
13 #include "MooseObjectWarehouse.h"
14 
15 // Forward declarations
16 class MaterialBase;
17 
26 class MaterialWarehouse : public MooseObjectWarehouse<MaterialBase>
27 {
28 public:
30 
32 
36  virtual void initialSetup(THREAD_ID tid = 0) const;
37  virtual void timestepSetup(THREAD_ID tid = 0) const;
38  virtual void subdomainSetup(THREAD_ID tid = 0) const;
39  virtual void subdomainSetup(SubdomainID id, THREAD_ID tid = 0) const;
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;
43  virtual void residualSetup(THREAD_ID tid = 0) const;
44  virtual void updateActive(THREAD_ID tid = 0);
45  void sort(THREAD_ID tid = 0);
47 
51  void addObjects(std::shared_ptr<MaterialBase> block,
52  std::shared_ptr<MaterialBase> neighbor,
53  std::shared_ptr<MaterialBase> face,
54  THREAD_ID tid = 0);
55 
56 protected:
59 
62 };
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
MPI_Datatype data_type
virtual void neighborSubdomainSetup(THREAD_ID tid=0) const
A storage container for MooseObjects that inherit from SetupInterface.
MaterialDataType
MaterialData types.
Definition: MooseTypes.h:691
MooseObjectWarehouse< MaterialBase > _face_materials
Storage for face material objects (Block are stored in the base class)
virtual void timestepSetup(THREAD_ID tid=0) const
MaterialBase objects are special in that they have additional objects created automatically (see FEPr...
virtual void jacobianSetup(THREAD_ID tid=0) const
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)
Update the active status of Kernels.
virtual void initialSetup(THREAD_ID tid=0) const
Convenience methods for calling object setup methods that handle the extra neighbor and face objects...
void sort(THREAD_ID tid=0)
virtual void subdomainSetup(THREAD_ID tid=0) const
MaterialBases compute MaterialProperties.
Definition: MaterialBase.h:62
unsigned int THREAD_ID
Definition: MooseTypes.h:209
virtual void residualSetup(THREAD_ID tid=0) const