www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
LevelSetBiMaterialRankTwo Class Reference

Compute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function. More...

#include <LevelSetBiMaterialRankTwo.h>

Inheritance diagram for LevelSetBiMaterialRankTwo:
[legend]

Public Member Functions

 LevelSetBiMaterialRankTwo (const InputParameters &parameters)
 

Protected Member Functions

virtual void assignQpPropertiesForLevelSetPositive () override
 assign the material properties for the positive level set region. More...
 
virtual void assignQpPropertiesForLevelSetNegative () override
 assign the material properties for the negative level set region. More...
 
virtual void computeProperties ()
 
virtual void computeQpProperties ()
 

Protected Attributes

std::vector< const MaterialProperty< RankTwoTensor > * > _bimaterial_material_prop
 RankTwoTensor Material properties for the two separate materials in the bi-material system. More...
 
MaterialProperty< RankTwoTensor > & _material_prop
 Global RankTwoTensor material property (switch bi-material diffusion coefficient based on level set values) More...
 
std::string _base_name
 global material properties More...
 
std::string _prop_name
 Property name. More...
 
std::shared_ptr< XFEM_xfem
 shared pointer to XFEM More...
 
const unsigned int _level_set_var_number
 The variable number of the level set variable we are operating on. More...
 
const System & _system
 system reference More...
 
const NumericVector< Number > * _solution
 the subproblem solution vector More...
 
bool _use_positive_property
 use the positive level set region's material properties More...
 

Detailed Description

Compute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.

Definition at line 24 of file LevelSetBiMaterialRankTwo.h.

Constructor & Destructor Documentation

◆ LevelSetBiMaterialRankTwo()

LevelSetBiMaterialRankTwo::LevelSetBiMaterialRankTwo ( const InputParameters &  parameters)

Definition at line 22 of file LevelSetBiMaterialRankTwo.C.

23  : LevelSetBiMaterialBase(parameters),
25  _material_prop(declareProperty<RankTwoTensor>(_base_name + _prop_name))
26 {
27  _bimaterial_material_prop[0] = &getMaterialProperty<RankTwoTensor>(
28  getParam<std::string>("levelset_positive_base") + "_" + _prop_name);
29  _bimaterial_material_prop[1] = &getMaterialProperty<RankTwoTensor>(
30  getParam<std::string>("levelset_negative_base") + "_" + _prop_name);
31 }
LevelSetBiMaterialBase(const InputParameters &parameters)
std::string _base_name
global material properties
std::string _prop_name
Property name.
MaterialProperty< RankTwoTensor > & _material_prop
Global RankTwoTensor material property (switch bi-material diffusion coefficient based on level set v...
std::vector< const MaterialProperty< RankTwoTensor > * > _bimaterial_material_prop
RankTwoTensor Material properties for the two separate materials in the bi-material system...

Member Function Documentation

◆ assignQpPropertiesForLevelSetNegative()

void LevelSetBiMaterialRankTwo::assignQpPropertiesForLevelSetNegative ( )
overrideprotectedvirtual

assign the material properties for the negative level set region.

Implements LevelSetBiMaterialBase.

Definition at line 40 of file LevelSetBiMaterialRankTwo.C.

41 {
42  _material_prop[_qp] = (*_bimaterial_material_prop[1])[_qp];
43 }
MaterialProperty< RankTwoTensor > & _material_prop
Global RankTwoTensor material property (switch bi-material diffusion coefficient based on level set v...
std::vector< const MaterialProperty< RankTwoTensor > * > _bimaterial_material_prop
RankTwoTensor Material properties for the two separate materials in the bi-material system...

◆ assignQpPropertiesForLevelSetPositive()

void LevelSetBiMaterialRankTwo::assignQpPropertiesForLevelSetPositive ( )
overrideprotectedvirtual

assign the material properties for the positive level set region.

Implements LevelSetBiMaterialBase.

Definition at line 34 of file LevelSetBiMaterialRankTwo.C.

35 {
36  _material_prop[_qp] = (*_bimaterial_material_prop[0])[_qp];
37 }
MaterialProperty< RankTwoTensor > & _material_prop
Global RankTwoTensor material property (switch bi-material diffusion coefficient based on level set v...
std::vector< const MaterialProperty< RankTwoTensor > * > _bimaterial_material_prop
RankTwoTensor Material properties for the two separate materials in the bi-material system...

◆ computeProperties()

void LevelSetBiMaterialBase::computeProperties ( )
protectedvirtualinherited

Definition at line 54 of file LevelSetBiMaterialBase.C.

55 {
56  const Node * node = _current_elem->node_ptr(0);
57 
58  dof_id_type ls_dof_id = node->dof_number(_system.number(), _level_set_var_number, 0);
59  Number ls_node_value = (*_solution)(ls_dof_id);
60 
61  _use_positive_property = false;
62 
63  if (_xfem->isPointInsidePhysicalDomain(_current_elem, *node))
64  {
65  if (ls_node_value > 0.0)
67  }
68  else
69  {
70  if (ls_node_value < 0.0)
72  }
73 
74  Material::computeProperties();
75 }
const System & _system
system reference
const unsigned int _level_set_var_number
The variable number of the level set variable we are operating on.
bool _use_positive_property
use the positive level set region&#39;s material properties
std::shared_ptr< XFEM > _xfem
shared pointer to XFEM

◆ computeQpProperties()

void LevelSetBiMaterialBase::computeQpProperties ( )
protectedvirtualinherited

Definition at line 78 of file LevelSetBiMaterialBase.C.

79 {
82  else
84 }
virtual void assignQpPropertiesForLevelSetPositive()=0
assign the material properties for the positive level set region.
bool _use_positive_property
use the positive level set region&#39;s material properties
virtual void assignQpPropertiesForLevelSetNegative()=0
assign the material properties for the negative level set region.

Member Data Documentation

◆ _base_name

std::string LevelSetBiMaterialBase::_base_name
protectedinherited

global material properties

Definition at line 43 of file LevelSetBiMaterialBase.h.

◆ _bimaterial_material_prop

std::vector<const MaterialProperty<RankTwoTensor> *> LevelSetBiMaterialRankTwo::_bimaterial_material_prop
protected

RankTwoTensor Material properties for the two separate materials in the bi-material system.

Definition at line 34 of file LevelSetBiMaterialRankTwo.h.

Referenced by assignQpPropertiesForLevelSetNegative(), assignQpPropertiesForLevelSetPositive(), and LevelSetBiMaterialRankTwo().

◆ _level_set_var_number

const unsigned int LevelSetBiMaterialBase::_level_set_var_number
protectedinherited

The variable number of the level set variable we are operating on.

Definition at line 52 of file LevelSetBiMaterialBase.h.

Referenced by LevelSetBiMaterialBase::computeProperties().

◆ _material_prop

MaterialProperty<RankTwoTensor>& LevelSetBiMaterialRankTwo::_material_prop
protected

Global RankTwoTensor material property (switch bi-material diffusion coefficient based on level set values)

Definition at line 37 of file LevelSetBiMaterialRankTwo.h.

Referenced by assignQpPropertiesForLevelSetNegative(), and assignQpPropertiesForLevelSetPositive().

◆ _prop_name

std::string LevelSetBiMaterialBase::_prop_name
protectedinherited

◆ _solution

const NumericVector<Number>* LevelSetBiMaterialBase::_solution
protectedinherited

the subproblem solution vector

Definition at line 58 of file LevelSetBiMaterialBase.h.

◆ _system

const System& LevelSetBiMaterialBase::_system
protectedinherited

system reference

Definition at line 55 of file LevelSetBiMaterialBase.h.

Referenced by LevelSetBiMaterialBase::computeProperties().

◆ _use_positive_property

bool LevelSetBiMaterialBase::_use_positive_property
protectedinherited

use the positive level set region's material properties

Definition at line 61 of file LevelSetBiMaterialBase.h.

Referenced by LevelSetBiMaterialBase::computeProperties(), and LevelSetBiMaterialBase::computeQpProperties().

◆ _xfem

std::shared_ptr<XFEM> LevelSetBiMaterialBase::_xfem
protectedinherited

The documentation for this class was generated from the following files: