28 virtual void execute()
override;
const Real _upper_bound
Upper bound for bisection algorithm.
Real computeUpdatedDensity(Real current_density, Real dc, Real lmid)
Real _total_allowable_volume
Total volume allowed for volume contraint.
const Real _volume_fraction
The volume fraction to be enforced.
virtual void threadJoin(const UserObject &) override
const VariableName _design_density_name
The name of the pseudo-density variable.
Element user object that performs SIMP optimization using a bisection algorithm using a volume constr...
const Real _lower_bound
Lower bound for bisection algorithm.
const VariableName _density_sensitivity_name
The elasticity compliance sensitivity name.
void gatherElementData()
Gathers element date necessary to perform the bisection algorithm for optimization.
virtual void initialize() override
MooseWritableVariable * _design_density
The pseudo-density variable.
virtual void execute() override
const MooseWritableVariable * _density_sensitivity
The filtered density sensitivity variable.
ElementData(Real dens, Real sens, Real vol, Real filt_dens)
static InputParameters validParams()
virtual void timestepSetup() override
void performOptimCritLoop()
Performs the optimality criterion loop (bisection)
virtual void finalize() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DensityUpdate(const InputParameters ¶meters)
const InputParameters & parameters() const
std::map< dof_id_type, ElementData > _elem_data_map
Data structure to hold old density, sensitivity, volume, current density.
const MooseMesh & _mesh
The system mesh.