20 #ifndef __mast__level_set_nonlinear_implicit_assembly_h__ 21 #define __mast__level_set_nonlinear_implicit_assembly_h__ 30 template <
typename ValType>
class FieldFunction;
31 class LevelSetIntersection;
32 class LevelSetInterfaceDofHandler;
33 class LevelSetVoidSolution;
119 libMesh::NumericVector<Real>* R,
120 libMesh::SparseMatrix<Real>* J,
121 libMesh::NonlinearImplicitSystem& S);
126 bool if_localize_sol,
128 libMesh::NumericVector<Real>& sensitivity_rhs,
129 bool close_vector =
true);
134 bool if_localize_sol,
136 libMesh::NumericVector<Real>& dq_dX);
139 #if MAST_ENABLE_PLPLOT == 1 140 void plot_sub_elems(
bool plot_reference_elem,
141 bool plot_low_phi_elem,
142 bool plot_high_phi_elem);
151 bool if_localize_sol,
168 bool if_localize_sol,
169 const libMesh::NumericVector<Real>* dXdp,
170 bool if_localize_sol_sens,
199 #endif //__mast__level_set_nonlinear_implicit_assembly_h__
bool _evaluate_output_on_negative_phi
MAST::LevelSetIntersection & get_intersection()
MAST::FieldFunction< RealVectorX > * _indicator
This provides the base class for definitin of element level contribution of output quantity in an ana...
LevelSetNonlinearImplicitAssembly(bool enable_dof_handler)
constructor associates this assembly object with the system
virtual void set_indicator_function(MAST::FieldFunction< RealVectorX > &indicator)
attaches indicator function to this.
virtual void calculate_output_direct_sensitivity(const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > *dXdp, bool if_localize_sol_sens, const MAST::FunctionBase &p, MAST::OutputAssemblyElemOperations &output)
evaluates the sensitivity of the outputs in the attached discipline with respect to the parametrs in ...
const MAST::FilterBase * _filter
virtual void calculate_output(const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output)
calculates the value of quantity .
MAST::LevelSetInterfaceDofHandler * _dof_handler
MAST::FieldFunction< RealVectorX > * _velocity
virtual void clear_level_set_function()
clears association with level set function
virtual void residual_and_jacobian(const libMesh::NumericVector< Real > &X, libMesh::NumericVector< Real > *R, libMesh::SparseMatrix< Real > *J, libMesh::NonlinearImplicitSystem &S)
function that assembles the matrices and vectors quantities for nonlinear solution ...
MAST::FieldFunction< Real > * _level_set
bool if_use_dof_handler() const
This will compute the solution at the interface under the assumption of zero surface normal flux...
Creates a geometric filter for the level-set design variables.
MAST::LevelSetInterfaceDofHandler & get_dof_handler()
virtual void set_level_set_function(MAST::FieldFunction< Real > &level_set, const MAST::FilterBase &filter)
attaches level set function to this
virtual bool sensitivity_assemble(const libMesh::NumericVector< Real > &X, bool if_localize_sol, const MAST::FunctionBase &f, libMesh::NumericVector< Real > &sensitivity_rhs, bool close_vector=true)
Assembly function.
virtual void clear_level_set_velocity_function()
clears the velocity function
MAST::LevelSetVoidSolution * _void_solution_monitor
virtual void calculate_output_derivative(const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output, libMesh::NumericVector< Real > &dq_dX)
calculates
MAST::LevelSetIntersection * _intersection
virtual ~LevelSetNonlinearImplicitAssembly()
destructor resets the association of this assembly object with the system
virtual void set_level_set_velocity_function(MAST::FieldFunction< RealVectorX > &velocity)
the velocity function used to calculate topology sensitivity
void set_evaluate_output_on_negative_phi(bool f)
sets the flag on whether or not to evaluate the output on negative level set function ...