PolyFEM
|
#include <LocalRelaxationData.hpp>
Public Member Functions | |
LocalRelaxationData (const State &state, LocalMesh< M > &local_mesh, const double current_time, const bool contact_enabled) | |
Eigen::MatrixXd | sol () const |
bool | is_volume () const |
int | dim () const |
int | n_bases () const |
int | ndof () const |
int | n_free_dof () const |
Public Attributes | |
solver::SolveData | solve_data |
LocalMesh< M > & | local_mesh |
Private Member Functions | |
void | init_mesh (const State &state) |
void | init_bases (const State &state) |
void | init_boundary_conditions (const State &state) |
void | init_assembler (const State &state) |
void | init_mass_matrix (const State &state) |
void | init_solve_data (const State &state, const double current_time, const bool contact_enabled) |
Private Attributes | |
std::unique_ptr< Mesh > | mesh |
int | m_n_bases |
std::vector< polyfem::basis::ElementBases > | bases |
std::shared_ptr< assembler::Assembler > | assembler |
Assembler data. | |
assembler::AssemblyValsCache | assembly_vals_cache |
std::shared_ptr< assembler::Mass > | mass_matrix_assembler |
assembler::AssemblyValsCache | mass_assembly_vals_cache |
Eigen::SparseMatrix< double > | mass |
std::shared_ptr< assembler::PressureAssembler > | pressure_assembler |
std::shared_ptr< assembler::Problem > | problem |
current problem, it contains rhs and bc | |
std::vector< int > | boundary_nodes |
list of boundary nodes | |
std::vector< mesh::LocalBoundary > | local_boundary |
mapping from elements to nodes for dirichlet boundary conditions | |
std::vector< mesh::LocalBoundary > | local_neumann_boundary |
mapping from elements to nodes for neumann boundary conditions | |
std::vector< mesh::LocalBoundary > | local_pressure_boundary |
mapping from elements to nodes for pressure boundary conditions | |
std::vector< int > | dirichlet_nodes |
per node dirichlet | |
std::vector< RowVectorNd > | dirichlet_nodes_position |
std::vector< int > | neumann_nodes |
per node neumann | |
std::vector< RowVectorNd > | neumann_nodes_position |
std::unordered_map< int, std::vector< LocalBoundary > > | local_pressure_cavity |
std::vector< int > | pressure_boundary_nodes |
Eigen::MatrixXd | rhs |
ipc::CollisionMesh | collision_mesh |
Definition at line 12 of file LocalRelaxationData.hpp.
polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData | ( | const State & | state, |
LocalMesh< M > & | local_mesh, | ||
const double | current_time, | ||
const bool | contact_enabled | ||
) |
Definition at line 16 of file LocalRelaxationData.cpp.
References polyfem::mesh::LocalRelaxationData< M >::init_assembler(), polyfem::mesh::LocalRelaxationData< M >::init_bases(), polyfem::mesh::LocalRelaxationData< M >::init_boundary_conditions(), polyfem::mesh::LocalRelaxationData< M >::init_mass_matrix(), polyfem::mesh::LocalRelaxationData< M >::init_mesh(), polyfem::mesh::LocalRelaxationData< M >::init_solve_data(), and polyfem::mesh::LocalRelaxationData< M >::problem.
|
inline |
Definition at line 27 of file LocalRelaxationData.hpp.
References polyfem::mesh::LocalRelaxationData< M >::mesh.
Referenced by polyfem::mesh::LocalRelaxationData< M >::ndof().
|
private |
Definition at line 148 of file LocalRelaxationData.cpp.
References polyfem::State::args, polyfem::State::formulation(), polyfem::utils::is_param_valid(), polyfem::assembler::AssemblerUtils::make_assembler(), POLYFEM_REMESHER_SCOPED_TIMER, and polyfem::State::units.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 71 of file LocalRelaxationData.cpp.
References polyfem::mesh::Remesher::build_bases(), polyfem::State::formulation(), and POLYFEM_REMESHER_SCOPED_TIMER.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 101 of file LocalRelaxationData.cpp.
References polyfem::log_and_throw_error(), polyfem::mesh::Obstacle::n_vertices(), polyfem::State::obstacle, POLYFEM_REMESHER_SCOPED_TIMER, and polyfem::State::problem.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 166 of file LocalRelaxationData.cpp.
References polyfem::State::avg_mass, and POLYFEM_REMESHER_SCOPED_TIMER.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 34 of file LocalRelaxationData.cpp.
References polyfem::mesh::Mesh::create(), and POLYFEM_REMESHER_SCOPED_TIMER.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 187 of file LocalRelaxationData.cpp.
References polyfem::State::args, polyfem::State::avg_mass, polyfem::time_integrator::ImplicitTimeIntegrator::construct_time_integrator(), polyfem::solver::SolveData::contact_form, polyfem::State::n_boundary_samples(), POLYFEM_REMESHER_SCOPED_TIMER, polyfem::State::problem, polyfem::State::solve_data, polyfem::mesh::Remesher::split_time_integrator_quantities(), and polyfem::State::units.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
inline |
Definition at line 26 of file LocalRelaxationData.hpp.
References polyfem::mesh::LocalRelaxationData< M >::mesh.
|
inline |
Definition at line 28 of file LocalRelaxationData.hpp.
References polyfem::mesh::LocalRelaxationData< M >::m_n_bases.
Referenced by polyfem::mesh::LocalRelaxationData< M >::ndof().
|
inline |
Definition at line 30 of file LocalRelaxationData.hpp.
References polyfem::mesh::LocalRelaxationData< M >::boundary_nodes, and polyfem::mesh::LocalRelaxationData< M >::ndof().
Referenced by polyfem::mesh::PhysicsRemesher< WMTKMesh >::local_relaxation().
|
inline |
Definition at line 29 of file LocalRelaxationData.hpp.
References polyfem::mesh::LocalRelaxationData< M >::dim(), and polyfem::mesh::LocalRelaxationData< M >::n_bases().
Referenced by polyfem::mesh::LocalRelaxationData< M >::n_free_dof().
|
inline |
Definition at line 21 of file LocalRelaxationData.hpp.
References polyfem::utils::flatten(), and polyfem::mesh::LocalRelaxationData< M >::local_mesh.
Referenced by polyfem::mesh::PhysicsRemesher< WMTKMesh >::local_mesh_energy(), and polyfem::mesh::PhysicsRemesher< WMTKMesh >::local_relaxation().
|
private |
Assembler data.
Definition at line 55 of file LocalRelaxationData.hpp.
|
private |
Definition at line 56 of file LocalRelaxationData.hpp.
|
private |
Definition at line 52 of file LocalRelaxationData.hpp.
|
private |
list of boundary nodes
Definition at line 68 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::LocalRelaxationData< M >::n_free_dof().
|
private |
Definition at line 87 of file LocalRelaxationData.hpp.
|
private |
per node dirichlet
Definition at line 76 of file LocalRelaxationData.hpp.
|
private |
Definition at line 77 of file LocalRelaxationData.hpp.
|
private |
mapping from elements to nodes for dirichlet boundary conditions
Definition at line 70 of file LocalRelaxationData.hpp.
LocalMesh<M>& polyfem::mesh::LocalRelaxationData< M >::local_mesh |
Definition at line 34 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::LocalRelaxationData< M >::sol().
|
private |
mapping from elements to nodes for neumann boundary conditions
Definition at line 72 of file LocalRelaxationData.hpp.
|
private |
mapping from elements to nodes for pressure boundary conditions
Definition at line 74 of file LocalRelaxationData.hpp.
|
private |
Definition at line 82 of file LocalRelaxationData.hpp.
|
private |
Definition at line 51 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::LocalRelaxationData< M >::n_bases().
|
private |
Definition at line 60 of file LocalRelaxationData.hpp.
|
private |
Definition at line 59 of file LocalRelaxationData.hpp.
|
private |
Definition at line 58 of file LocalRelaxationData.hpp.
|
private |
Definition at line 48 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::LocalRelaxationData< M >::dim(), and polyfem::mesh::LocalRelaxationData< M >::is_volume().
|
private |
per node neumann
Definition at line 79 of file LocalRelaxationData.hpp.
|
private |
Definition at line 80 of file LocalRelaxationData.hpp.
|
private |
Definition at line 62 of file LocalRelaxationData.hpp.
|
private |
Definition at line 83 of file LocalRelaxationData.hpp.
|
private |
current problem, it contains rhs and bc
Definition at line 65 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::LocalRelaxationData< M >::LocalRelaxationData().
|
private |
Definition at line 85 of file LocalRelaxationData.hpp.
solver::SolveData polyfem::mesh::LocalRelaxationData< M >::solve_data |
Definition at line 32 of file LocalRelaxationData.hpp.
Referenced by polyfem::mesh::PhysicsRemesher< WMTKMesh >::local_mesh_energy(), and polyfem::mesh::PhysicsRemesher< WMTKMesh >::local_relaxation().