MAST
MAST::KSStressStrainOutput Class Reference

This implements the computation of KS-constraint aggregation functional for the stress constraint. More...

#include <ks_stress_output.h>

Inheritance diagram for MAST::KSStressStrainOutput:
Collaboration diagram for MAST::KSStressStrainOutput:

Public Member Functions

 KSStressStrainOutput ()
 default constructor More...
 
virtual ~KSStressStrainOutput ()
 
virtual void functional_for_all_elems ()
 calculates and returns the von Mises p-norm functional for all the elements that this object currently stores data for. More...
 
virtual void functional_sensitivity_for_elem (const MAST::FunctionBase &f, const libMesh::dof_id_type e_id, Real &dsigma_vm_val_df) const
 calculates and returns the sensitivity of von Mises p-norm functional for the element e. More...
 
virtual void functional_boundary_sensitivity_for_elem (const MAST::FunctionBase &f, const libMesh::dof_id_type e_id, Real &dsigma_vm_val_df) const
 calculates and returns the boundary sensitivity of von Mises p-norm functional for the element e. More...
 
virtual void functional_state_derivartive_for_elem (const libMesh::dof_id_type e_id, RealVectorX &dq_dX) const
 calculates and returns the derivative of von Mises p-norm functional wrt state vector for the specified element. More...
 
- Public Member Functions inherited from MAST::StressStrainOutputBase
 StressStrainOutputBase ()
 default constructor More...
 
virtual ~StressStrainOutputBase ()
 
void set_aggregation_coefficients (Real p1, Real p2, Real rho, Real sigma0)
 sets the $p-$norm for calculation of stress functional More...
 
Real get_p_stress_val ()
 
void set_stress_plot_mode (bool f)
 tells the object that the calculation is for stress to be output for plotting. More...
 
virtual void set_elem_data (unsigned int dim, const libMesh::Elem &ref_elem, MAST::GeomElem &elem) const
 sets the structural element y-vector if 1D element is used. More...
 
virtual void init (const MAST::GeomElem &elem)
 initialize for the element. More...
 
virtual void zero_for_analysis ()
 zeroes the output quantity values stored inside this object so that assembly process can begin. More...
 
virtual void zero_for_sensitivity ()
 zeroes the output quantity values stored inside this object so that assembly process can begin. More...
 
virtual void evaluate ()
 this evaluates all relevant stress components on the element to evaluate the p-averaged quantity. More...
 
virtual void evaluate_sensitivity (const MAST::FunctionBase &f)
 this evaluates all relevant stress sensitivity components on the element to evaluate the p-averaged quantity sensitivity. More...
 
virtual void evaluate_shape_sensitivity (const MAST::FunctionBase &f)
 this evaluates all relevant shape sensitivity components on the element. More...
 
virtual void evaluate_topology_sensitivity (const MAST::FunctionBase &f, const MAST::FieldFunction< RealVectorX > &vel)
 This evaluates the contribution to the topology sensitivity on the boundary. More...
 
virtual Real output_for_elem ()
 should not get called for this output. More...
 
virtual Real output_total ()
 
virtual Real output_sensitivity_for_elem (const MAST::FunctionBase &p)
 
virtual Real output_sensitivity_total (const MAST::FunctionBase &p)
 
virtual void output_derivative_for_elem (RealVectorX &dq_dX)
 calculates the derivative of p-norm von Mises stress for the $p-$norm identified using set_p_val(). More...
 
bool stress_plot_mode () const
 
bool primal_data_initialized () const
 
void clear ()
 clears the data structure of any stored values so that it can be used for another element. More...
 
virtual void clear_sensitivity_data ()
 clears the data stored for sensitivity analysis. More...
 
MAST::BoundaryConditionBaseget_thermal_load_for_elem (const MAST::GeomElem &elem)
 
unsigned int n_stress_strain_data_for_elem (const MAST::GeomElem &e) const
 
unsigned int n_boundary_stress_strain_data_for_elem (const GeomElem &e) const
 
virtual MAST::StressStrainOutputBase::Dataadd_stress_strain_at_qp_location (const MAST::GeomElem &e, const unsigned int qp, const libMesh::Point &quadrature_pt, const libMesh::Point &physical_pt, const RealVectorX &stress, const RealVectorX &strain, Real JxW)
 add the stress tensor associated with the qp. More...
 
virtual MAST::StressStrainOutputBase::Dataadd_stress_strain_at_boundary_qp_location (const MAST::GeomElem &e, const unsigned int s, const unsigned int qp, const libMesh::Point &quadrature_pt, const libMesh::Point &physical_pt, const RealVectorX &stress, const RealVectorX &strain, Real JxW_Vn)
 add the stress tensor associated with the qp on side s of element e. More...
 
virtual const std::map< const libMesh::dof_id_type, std::vector< MAST::StressStrainOutputBase::Data * > > & get_stress_strain_data () const
 
Real get_maximum_von_mises_stress () const
 
virtual const std::vector< MAST::StressStrainOutputBase::Data * > & get_stress_strain_data_for_elem (const MAST::GeomElem &e) const
 
virtual MAST::StressStrainOutputBase::Dataget_stress_strain_data_for_elem_at_qp (const MAST::GeomElem &e, const unsigned int qp)
 
virtual void functional_sensitivity_for_all_elems (const MAST::FunctionBase &f, Real &dsigma_vm_val_df) const
 calculates and returns the sensitivity of von Mises p-norm functional for all the elements that this object currently stores data for. More...
 
virtual void functional_boundary_sensitivity_for_all_elems (const MAST::FunctionBase &f, Real &dsigma_vm_val_df) const
 calculates and returns the sensitivity of von Mises p-norm functional for all the elements that this object currently stores data for. More...
 
- Public Member Functions inherited from MAST::OutputAssemblyElemOperations
 OutputAssemblyElemOperations ()
 
virtual ~OutputAssemblyElemOperations ()
 virtual destructor More...
 
void set_participating_subdomains (const std::set< libMesh::subdomain_id_type > &sids)
 The output function can be a boundary integrated quantity, volume integrated quantity or a combination of these two. More...
 
void set_participating_elements (const std::set< const libMesh::Elem * > &elems)
 sets the elements for which this object will evaluate and store the output data. More...
 
void set_participating_elements_to_all ()
 This will allow volume contribution from all elements. More...
 
void set_participating_boundaries (const std::set< libMesh::boundary_id_type > &bids)
 The assembly will integration over boudnaries with ids specified in bids. More...
 
const std::set< const libMesh::Elem * > & get_participating_elements () const
 
const std::set< libMesh::subdomain_id_type > & get_participating_subdomains ()
 
const std::set< libMesh::boundary_id_type > & get_participating_boundaries ()
 
virtual bool if_evaluate_for_element (const MAST::GeomElem &elem) const
 checks to see if the object has been told about the subset of elements and if the specified element is in the subset. More...
 
virtual bool if_evaluate_for_boundary (const MAST::GeomElem &elem, const unsigned int s) const
 checks to see if the specified side of the element needs evaluation of the output contribution. More...
 
- Public Member Functions inherited from MAST::AssemblyElemOperations
 AssemblyElemOperations ()
 
virtual ~AssemblyElemOperations ()
 
MAST::SystemInitializationget_system_initialization ()
 
MAST::PhysicsDisciplineBaseget_discipline ()
 
virtual void set_discipline_and_system (MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system)
 attaches a system to this discipline More...
 
virtual void clear_discipline_and_system ()
 clears association with a system to this discipline More...
 
virtual void set_assembly (MAST::AssemblyBase &assembly)
 sets the assembly object More...
 
virtual MAST::AssemblyBaseget_assembly ()
 
virtual void clear_assembly ()
 clears the assembly object More...
 
virtual void clear_elem ()
 clears the element initialization More...
 
MAST::ElementBaseget_physics_elem ()
 
virtual void set_elem_solution (const RealVectorX &sol)
 sets the element solution More...
 
virtual void set_elem_solution_sensitivity (const RealVectorX &sol)
 sets the element solution sensitivity More...
 
virtual void set_elem_perturbed_solution (const RealVectorX &sol)
 sets the element perturbed solution More...
 
virtual void set_elem_velocity (const RealVectorX &vel)
 sets the element velocity More...
 
virtual void set_elem_velocity_sensitivity (const RealVectorX &vel)
 sets the element velocity sensitivity More...
 
virtual void set_elem_perturbed_velocity (const RealVectorX &vel)
 sets the element perturbed velocity More...
 
virtual void set_elem_acceleration (const RealVectorX &accel)
 sets the element acceleration More...
 
virtual void set_elem_acceleration_sensitivity (const RealVectorX &accel)
 sets the element acceleration More...
 
virtual void set_elem_perturbed_acceleration (const RealVectorX &accel)
 sets the element perturbed acceleration More...
 

Additional Inherited Members

- Protected Attributes inherited from MAST::StressStrainOutputBase
Real _p_norm_stress
 $ p-$norm to be used for calculation of output stress function. More...
 
Real _p_norm_weight
 
Real _rho
 exponent used in scaling volume based on stress value. More...
 
Real _sigma0
 reference stress value used in scaling volume. More...
 
Real _exp_arg_lim
 
bool _primal_data_initialized
 primal data, needed for sensitivity and adjoints More...
 
Real _JxW_val
 
Real _sigma_vm_int
 
Real _sigma_vm_p_norm
 
bool _if_stress_plot_mode
 identifies the mode in which evaluation is peformed. More...
 
std::map< const libMesh::dof_id_type, std::vector< MAST::StressStrainOutputBase::Data * > > _stress_data
 vector of stress with the associated location details More...
 
std::map< const libMesh::dof_id_type, std::vector< MAST::StressStrainOutputBase::Data * > > _boundary_stress_data
 vector of stress with the associated location details More...
 
- Protected Attributes inherited from MAST::OutputAssemblyElemOperations
bool _if_evaluate_on_all_elems
 if true, evaluates on all elements. More...
 
std::set< const libMesh::Elem * > _elem_subset
 set of elements for which the data will be stored. More...
 
std::set< libMesh::subdomain_id_type > _sub_domain_ids
 set of subdomain ids for which data will be processed. More...
 
std::set< libMesh::boundary_id_type > _bids
 set of bids for which data will be processed More...
 
- Protected Attributes inherited from MAST::AssemblyElemOperations
MAST::SystemInitialization_system
 
MAST::PhysicsDisciplineBase_discipline
 
MAST::AssemblyBase_assembly
 
MAST::ElementBase_physics_elem
 

Detailed Description

This implements the computation of KS-constraint aggregation functional for the stress constraint.

Definition at line 41 of file ks_stress_output.h.

Constructor & Destructor Documentation

MAST::KSStressStrainOutput::KSStressStrainOutput ( )

default constructor

Definition at line 36 of file ks_stress_output.cpp.

MAST::KSStressStrainOutput::~KSStressStrainOutput ( )
virtual

Definition at line 44 of file ks_stress_output.cpp.

Member Function Documentation

void MAST::KSStressStrainOutput::functional_boundary_sensitivity_for_elem ( const MAST::FunctionBase f,
const libMesh::dof_id_type  e_id,
Real dsigma_vm_val_df 
) const
virtual

calculates and returns the boundary sensitivity of von Mises p-norm functional for the element e.

Reimplemented from MAST::StressStrainOutputBase.

Definition at line 152 of file ks_stress_output.cpp.

Here is the caller graph for this function:

void MAST::KSStressStrainOutput::functional_for_all_elems ( )
virtual

calculates and returns the von Mises p-norm functional for all the elements that this object currently stores data for.

This is defined as

\[ \left( \frac{\int_\Omega (\sigma_{VM}(\Omega))^p ~ d\Omega}{\int_\Omega ~ d\Omega} \right)^{\frac{1}{p}} \]

Reimplemented from MAST::StressStrainOutputBase.

Definition at line 52 of file ks_stress_output.cpp.

Here is the call graph for this function:

void MAST::KSStressStrainOutput::functional_sensitivity_for_elem ( const MAST::FunctionBase f,
const libMesh::dof_id_type  e_id,
Real dsigma_vm_val_df 
) const
virtual

calculates and returns the sensitivity of von Mises p-norm functional for the element e.

Reimplemented from MAST::StressStrainOutputBase.

Definition at line 106 of file ks_stress_output.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void MAST::KSStressStrainOutput::functional_state_derivartive_for_elem ( const libMesh::dof_id_type  e_id,
RealVectorX dq_dX 
) const
virtual

calculates and returns the derivative of von Mises p-norm functional wrt state vector for the specified element.

This assumes that the von_Mises_p_norm_functional_for_all_elems() has been called to calculate the primal data. This is defined as

\[ \frac{ \frac{1}{p} \left( \int_\Omega (\sigma_{VM}(\Omega))^p ~ d\Omega \right)^{\frac{1}{p}-1}}{\left( \int_\Omega ~ d\Omega \right)^{\frac{1}{p}}} \int_\Omega p (\sigma_{VM}(\Omega))^{p-1} \frac{d \sigma_{VM}(\Omega)}{dX} ~ d\Omega \]

Reimplemented from MAST::StressStrainOutputBase.

Definition at line 197 of file ks_stress_output.cpp.


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