28 virtual void execute()
override;
72 Real dens, Real sens, Real cost_sens, Real thermal_sens, Real cst, Real vol, Real filt_dens)
95 Real cost_sensitivity,
96 Real thermal_sensitivity,
Real computeUpdatedDensity(Real current_density, Real dc, Real cost_sensitivity, Real thermal_sensitivity, Real cost, Real lmid, Real cmid)
std::map< dof_id_type, ElementData > _elem_data_map
Data structure to hold old density, sensitivity, volume, current density.
const MooseWritableVariable * _cost_density_sensitivity
The filtered density sensitivity variable (cost)
std::vector< Real > _weight_values
Element user object that performs SIMP optimization using a bisection algorithm applying a volume con...
const VariableName _cost_density_sensitivity_name
const MooseWritableVariable * _density_sensitivity
The filtered density sensitivity variable (elasticity)
const Real _cost_fraction
The cost fraction to be enforced.
const Real _relative_tolerance
Real _total_allowable_volume
Total volume allowed for volume contraint.
static InputParameters validParams()
virtual void finalize() override
const VariableName _cost_name
const VariableName _design_density_name
The name of the pseudo-density variable.
const VariableName _density_sensitivity_name
The elasticity compliance sensitivity name.
const Real _bisection_move
Bisection algorithm move.
virtual void execute() override
VariableName _thermal_sensitivity_name
Thermal compliance sensitivity name.
void performOptimCritLoop()
Performs the optimality criterion loop (bisection)
const Real _upper_bound
Upper bound for bisection algorithm.
const Real _lower_bound
Lower bound for bisection algorithm.
Real _total_allowable_cost
Total volume allowed for cost contraint.
MooseVariable * _thermal_sensitivity
Thermal compliance variable.
const MooseVariable & _cost
The cost variable.
MooseWritableVariable * _design_density
The pseudo-density variable.
const MooseMesh & _mesh
The system mesh.
DensityUpdateTwoConstraints(const InputParameters ¶meters)
virtual void timestepSetup() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const bool _adaptive_move
Whether bisection moves are adaptive.
const InputParameters & parameters() const
virtual void threadJoin(const UserObject &) override
ElementData(Real dens, Real sens, Real cost_sens, Real thermal_sens, Real cst, Real vol, Real filt_dens)
virtual void initialize() override
const Real _volume_fraction
The volume fraction to be enforced.
void gatherElementData()
Gathers element date necessary to perform the bisection algorithm for optimization.