Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
MAST::LevelSetReinitializationTransientAssembly Class Reference

Detailed Description

#include <level_set_reinitialization_transient_assembly.h>

Inheritance diagram for MAST::LevelSetReinitializationTransientAssembly:
Collaboration diagram for MAST::LevelSetReinitializationTransientAssembly:

Public Member Functions

 LevelSetReinitializationTransientAssembly ()
virtual ~LevelSetReinitializationTransientAssembly ()
void clear_reference_solution (const libMesh::NumericVector< Real > &sol)
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 More...
void set_reference_solution (const libMesh::NumericVector< Real > &sol)
 For reinitialization to $ |\nabla(\phi)| = 1 $, the solution before initialization is used to calculate the source and velocity switching. More...
- Public Member Functions inherited from MAST::TransientAssembly
 TransientAssembly ()
 constructor associates this assembly object with the system More...
virtual ~TransientAssembly ()
 destructor resets the association of this assembly object with the system More...
virtual void linearized_jacobian_solution_product (const libMesh::NumericVector< Real > &X, const libMesh::NumericVector< Real > &dX, libMesh::NumericVector< Real > &JdX, libMesh::NonlinearImplicitSystem &S)
 calculates the product of the Jacobian and a perturbation in solution vector $ [J] \{\Delta X\} $. More...
virtual bool sensitivity_assemble (const MAST::FunctionBase &f, libMesh::NumericVector< Real > &sensitivity_rhs)
 Assembly function. More...
void set_post_assembly_operation (MAST::TransientAssembly::PostAssemblyOperation &post)
 sets the PostAssemblyOperation object for use after assembly. More...
- Public Member Functions inherited from MAST::AssemblyBase
 AssemblyBase ()
 constructor takes a reference to the discipline that provides the boundary conditions, volume loads, properties, etc. More...
virtual ~AssemblyBase ()
 virtual destructor More...
void attach_elem_parameter_dependence_object (MAST::AssemblyBase::ElemParameterDependence &dep)
 This object, if provided by user, will be used to reduce unnecessary computations in sensitivity analysis assembly operations. More...
void attach_solution_function (MAST::MeshFieldFunction &f)
 tells the assembly object that this function is will need to be initialized before each residual evaluation More...
std::unique_ptr< libMesh::NumericVector< Real > > build_localized_vector (const libMesh::System &sys, const libMesh::NumericVector< Real > &global) const
 localizes the parallel vector so that the local copy stores all values necessary for calculation of the element quantities More...
virtual void calculate_output (const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output)
 calculates the value of quantity $ q(X,p) $. More...
virtual Real calculate_output_adjoint_sensitivity (const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > &adj_sol, const MAST::FunctionBase &p, MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, const bool include_partial_sens=true)
 Evaluates the total sensitivity of output wrt p using the adjoint solution provided in adj_sol for a linearization about solution X. More...
virtual void calculate_output_adjoint_sensitivity_multiple_parameters_no_direct (const libMesh::NumericVector< Real > &X, bool if_localize_sol, const libMesh::NumericVector< Real > &adj_sol, const std::vector< const MAST::FunctionBase *> &p_vec, MAST::AssemblyElemOperations &elem_ops, MAST::OutputAssemblyElemOperations &output, std::vector< Real > &sens)
 Evaluates the dot product between adj_sol and sensitivity of residual about X for multiple parameter_vectors p_vec and returns the results in sens. More...
virtual void calculate_output_derivative (const libMesh::NumericVector< Real > &X, bool if_localize_sol, MAST::OutputAssemblyElemOperations &output, libMesh::NumericVector< Real > &dq_dX)
 calculates $ \frac{\partial q(X, p)}{\partial X} $ More...
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 params. More...
virtual void clear_discipline_and_system ()
 clears association with a system to this discipline More...
virtual void clear_elem_operation_object ()
 clears the association of this object with the assembly element operation object. More...
void clear_elem_parameter_dependence_object ()
void clear_solver_monitor ()
 clears the monitor object More...
void detach_solution_function ()
 removes the attachment of the solution function More...
const MAST::PhysicsDisciplineBasediscipline () const
MAST::PhysicsDisciplineBasediscipline ()
MAST::AssemblyElemOperationsget_elem_ops ()
MAST::AssemblyBase::SolverMonitorget_solver_monitor ()
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. More...
virtual void set_discipline_and_system (MAST::PhysicsDisciplineBase &discipline, MAST::SystemInitialization &system)
 attaches a system to this discipline More...
virtual void set_elem_operation_object (MAST::AssemblyElemOperations &elem_ops)
 attaches a element operation to this object, and associated this with the element operation object. More...
void set_solver_monitor (MAST::AssemblyBase::SolverMonitor &monitor)
 attaches the solver monitor, which is a user provided routine that is called each time More...
const MAST::NonlinearSystemsystem () const
MAST::NonlinearSystemsystem ()
MAST::SystemInitializationsystem_init ()

Protected Attributes

const libMesh::NumericVector< Real > * _ref_sol
- Protected Attributes inherited from MAST::TransientAssembly
 this object, if non-NULL is user-provided to perform actions after assembly and before returning to the solver More...
- Protected Attributes inherited from MAST::AssemblyBase
 PhysicsDisciplineBase object for which this class is assembling. More...
 provides assembly elem operations for use by this class More...
 If provided by user, this object is used by sensitiivty analysis to check for whether or the current design parameter influences an element. More...
 system solution that will be initialized before each solution More...
 User provided solver monitor is attached to the linear nonlinear solvers, if provided. More...
 System for which this assembly is performed. More...

Additional Inherited Members

- Public Attributes inherited from MAST::AssemblyBase
bool close_matrix
 flag to control the closing fo the Jacobian after assembly More...
std::set< unsigned int > diagonal_elem_subdomain_id
 subdomain ids for which residuakl and Jacobian contributions will not be computed. More...

Constructor & Destructor Documentation

◆ LevelSetReinitializationTransientAssembly()

MAST::LevelSetReinitializationTransientAssembly::LevelSetReinitializationTransientAssembly ( )

◆ ~LevelSetReinitializationTransientAssembly()

MAST::LevelSetReinitializationTransientAssembly::~LevelSetReinitializationTransientAssembly ( )

Member Function Documentation

◆ clear_reference_solution()

void MAST::LevelSetReinitializationTransientAssembly::clear_reference_solution ( const libMesh::NumericVector< Real > &  sol)

◆ residual_and_jacobian()

void MAST::LevelSetReinitializationTransientAssembly::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

Reimplemented from MAST::TransientAssembly.

Definition at line 68 of file level_set_reinitialization_transient_assembly.cpp.

◆ set_reference_solution()

void MAST::LevelSetReinitializationTransientAssembly::set_reference_solution ( const libMesh::NumericVector< Real > &  sol)

For reinitialization to $ |\nabla(\phi)| = 1 $, the solution before initialization is used to calculate the source and velocity switching.

This method sets that solution.

Definition at line 58 of file level_set_reinitialization_transient_assembly.cpp.

Member Data Documentation

◆ _ref_sol

const libMesh::NumericVector<Real>* MAST::LevelSetReinitializationTransientAssembly::_ref_sol

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