Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Solver] XMPM #8

Closed
wants to merge 99 commits into from
Closed
Show file tree
Hide file tree
Changes from 69 commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
90c00e1
:tada::sparkles:creat xmpm solver and ParticleXMPM class
yliang-sn Aug 1, 2020
06f4331
:construction: creat and initialise nodal properties for discontinuity
yliang-sn Aug 2, 2020
28c684f
:construction:update nodal properties function and update nodal enric…
yliang-sn Aug 2, 2020
8ba5a31
:construction:update:external force,internal force, compute strain rate
yliang-sn Aug 2, 2020
e5a61ed
:construction:apply velocity constraints discontinuity
yliang-sn Aug 2, 2020
07bd480
:construction:compute updated position
yliang-sn Aug 2, 2020
2beb5ac
:hammer:
yliang-sn Aug 3, 2020
2ddda95
:hammer::construction:self contact for XMPM and boundary condation
yliang-sn Aug 5, 2020
e4a1265
:hammer:move the node_xmpm function to a separate file
yliang-sn Aug 5, 2020
e185bb4
:bug:miss some functions for node_xmpm.tcc
yliang-sn Aug 5, 2020
c399266
:hammer:add const
yliang-sn Aug 5, 2020
cf3a06b
:construction:clang format
yliang-sn Aug 6, 2020
32b51bb
:constructor:discontinuity function
Aug 15, 2020
67ae1db
:hammer::construction:clean xmpmparticle class
Aug 16, 2020
6f9da8b
:hammer:change discontinuouty_point_line name
Aug 16, 2020
030993a
:hammer:separate the discontinuity functions into different files
Aug 16, 2020
f4792f4
:pencil::hammer::construction:clean up particleXMPM class
Aug 17, 2020
701cdd9
:pencil::hammer::construction:clean the discontinuity base class
Aug 17, 2020
7c58d82
:pencil:clean discontinuity3d class
Aug 17, 2020
c3ad208
:constructuin:assign friction coefficient for nodes
Aug 17, 2020
ce0c7b3
Update include/mesh.h
yliang-sn Aug 25, 2020
2d95f12
:tada::sparkles:creat xmpm solver and ParticleXMPM class
yliang-sn Aug 1, 2020
41a05a1
:construction: creat and initialise nodal properties for discontinuity
yliang-sn Aug 2, 2020
54e7b4d
:construction:update nodal properties function and update nodal enric…
yliang-sn Aug 2, 2020
332e940
:construction:update:external force,internal force, compute strain rate
yliang-sn Aug 2, 2020
c24c3f4
:construction:apply velocity constraints discontinuity
yliang-sn Aug 2, 2020
faec00b
:construction:compute updated position
yliang-sn Aug 2, 2020
d94e611
:hammer:
yliang-sn Aug 3, 2020
4a8deb6
:hammer::construction:self contact for XMPM and boundary condation
yliang-sn Aug 5, 2020
ab32ab3
:hammer:move the node_xmpm function to a separate file
yliang-sn Aug 5, 2020
d7a5c85
:bug:miss some functions for node_xmpm.tcc
yliang-sn Aug 5, 2020
3b9b316
:hammer:add const
yliang-sn Aug 5, 2020
fee31b7
:construction:clang format
yliang-sn Aug 6, 2020
835db0a
:constructor:discontinuity function
Aug 15, 2020
201f6cf
:hammer::construction:clean xmpmparticle class
Aug 16, 2020
c1850df
:hammer:change discontinuouty_point_line name
Aug 16, 2020
6494559
:hammer:separate the discontinuity functions into different files
Aug 16, 2020
8152840
:pencil::hammer::construction:clean up particleXMPM class
Aug 17, 2020
71179ea
:pencil::hammer::construction:clean the discontinuity base class
Aug 17, 2020
435dccd
:pencil:clean discontinuity3d class
Aug 17, 2020
a62c285
:constructuin:assign friction coefficient for nodes
Aug 17, 2020
684f192
Update include/mesh.h
yliang-sn Aug 25, 2020
f1f6af3
:pencil::construction:delete the compute_strain function in XMPM
Aug 28, 2020
7869f64
:hammer:modify the solver scheme
Aug 31, 2020
91ff382
:hammer:use assert instead of if
Aug 31, 2020
84158b6
:hammer:update some comments and fix some code
Sep 1, 2020
f8cb643
:hammer:
Sep 1, 2020
0c86c24
:construction:xmpm solver test functions for 3d
Sep 7, 2020
2734df6
:construction:particle_xmpm test functions
Sep 7, 2020
85a8d68
:construction:check discontinuity in mesh
Sep 7, 2020
66332b0
add width of the discontinuity
Oct 1, 2020
48755b6
:construction:assign the levelset width and coefficient
Oct 4, 2020
ff7ff15
:construction:node_xmpm test functions
Oct 4, 2020
3be07a8
:hammer:modify node default enriched type
Oct 4, 2020
c2d9142
:hammer:modify the level set computation
Oct 4, 2020
44afbe0
:construction:output level set values
Oct 4, 2020
0af8791
:hammer:fix the issue about friction coefficient
Oct 5, 2020
8decf2b
:construction:compute the principal stress and strain
Oct 5, 2020
77b115f
Merge remote-tracking branch 'origin/refactor/resume' into solver/xmpm
Oct 5, 2020
2d64ccd
:hammer:velocity update by the enriched nodes
Oct 6, 2020
2372c0a
Merge remote-tracking branch 'origin/refactor/resume' into solver/xmpm
Oct 6, 2020
026ca2a
xmpm solver
yliang-sn Sep 8, 2021
c4140ea
xmpm solver
yliang-sn Sep 8, 2021
edf16fc
merge develop
yliang-sn Sep 8, 2021
512a160
clean oso part
yliang-sn Oct 7, 2021
8ce7850
clean oso hardcode
yliang-sn Oct 7, 2021
a71f048
clean hard code
yliang-sn Oct 8, 2021
3f8f0b0
Update cell.h
yliang-sn Oct 8, 2021
8316654
apply the clang format
yliang-sn Oct 8, 2021
8b5f813
make a separate file mesh_xmpm
yliang-sn Oct 18, 2021
b9d6385
find the cells at nodes
yliang-sn Oct 20, 2021
26291c8
make a separate file cell_xmpm.tcc
yliang-sn Oct 20, 2021
9aa5404
tidy the mark points generation
yliang-sn Oct 20, 2021
91fe5d5
merge master into xmpm
yliang-sn Oct 21, 2021
0ba0c01
solve the conflicts about hdf5
yliang-sn Oct 21, 2021
2462fe8
tidy the code and comments
yliang-sn Nov 3, 2021
138dd64
merge master into solver/xmpm
yliang-sn Nov 3, 2021
98d5aa3
add P3DXMPM particle type
yliang-sn Nov 4, 2021
128ea5c
clang formating
bodhinandach Nov 4, 2021
50138ee
clean the unsed variables
yliang-sn Nov 5, 2021
4f7965d
Merge branch 'xmpm_crackbranch' into solver/xmpm
yliang-sn Nov 5, 2021
b178b13
clean the unsed variables
yliang-sn Nov 5, 2021
f27b51c
clean the unsed variables
yliang-sn Nov 5, 2021
5aa3fbd
fix particle cc
bodhinandach Nov 5, 2021
730b803
Merge branch 'solver/xmpm' of https://github.com/geomechanics/mpm int…
yliang-sn Nov 5, 2021
652dec6
remove hardcode in mohr_coulomb.tcc
yliang-sn Nov 5, 2021
7daa8d8
remove typo
yliang-sn Nov 5, 2021
170658c
update write_mesh_particles.cc
yliang-sn Nov 5, 2021
99179d8
update write_mesh_particles.cc
yliang-sn Nov 5, 2021
302708d
resolve bugs in test part
yliang-sn Nov 5, 2021
708682d
define XMPM group for XMPM functions and variables
yliang-sn Nov 6, 2021
93497aa
add comment "\ingroup XMPM" and initialise_xmpm function
yliang-sn Nov 6, 2021
76fbda1
delete discontinuity_enrich_ initialization in the node.tcc
yliang-sn Nov 7, 2021
1bb55d5
defgroup xmpm
yliang-sn Nov 7, 2021
3b72509
tidy the code
yliang-sn Nov 7, 2021
288371e
add the pod_particle_xmpm class
yliang-sn Nov 7, 2021
66da947
Merge branch 'master' of https://github.com/geomechanics/mpm into sol…
yliang-sn Nov 15, 2021
533f5f8
clang format
bodhinandach Nov 16, 2021
70112b5
xmpm modification after discussions
bodhinandach Nov 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ include_directories(BEFORE
${mpm_SOURCE_DIR}/include/solvers/mpm_scheme/
${mpm_SOURCE_DIR}/external/
${mpm_SOURCE_DIR}/tests/include/
${mpm_SOURCE_DIR}/include/xmpm/
bodhinandach marked this conversation as resolved.
Show resolved Hide resolved
)

# mpm executable
Expand All @@ -169,6 +170,7 @@ SET(mpm_src
${mpm_SOURCE_DIR}/src/node.cc
${mpm_SOURCE_DIR}/src/particle.cc
${mpm_SOURCE_DIR}/src/quadrature.cc
${mpm_SOURCE_DIR}/src/discontinuity.cc
)
add_executable(mpm ${mpm_SOURCE_DIR}/src/main.cc ${mpm_src} ${mpm_vtk})

Expand Down Expand Up @@ -222,14 +224,20 @@ if(MPM_BUILD_TESTING)
${mpm_SOURCE_DIR}/tests/solvers/mpm_explicit_usf_unitcell_test.cc
${mpm_SOURCE_DIR}/tests/solvers/mpm_explicit_usl_test.cc
${mpm_SOURCE_DIR}/tests/solvers/mpm_explicit_usl_unitcell_test.cc
${mpm_SOURCE_DIR}/tests/solvers/xmpm_explicit_usf_test.cc
# ${mpm_SOURCE_DIR}/tests/solvers/xmpm_explicit_usf_unitcell_test.cc
${mpm_SOURCE_DIR}/tests/solvers/xmpm_explicit_usl_test.cc
# ${mpm_SOURCE_DIR}/tests/solvers/xmpm_explicit_usl_unitcell_test.cc
${mpm_SOURCE_DIR}/tests/solvers/mpm_scheme_test.cc
${mpm_SOURCE_DIR}/tests/nodal_properties_test.cc
${mpm_SOURCE_DIR}/tests/node_map_test.cc
${mpm_SOURCE_DIR}/tests/node_test.cc
${mpm_SOURCE_DIR}/tests/node_xmpm_test.cc
${mpm_SOURCE_DIR}/tests/node_vector_test.cc
${mpm_SOURCE_DIR}/tests/particle_cell_crossing_test.cc
${mpm_SOURCE_DIR}/tests/particle_serialize_deserialize_test.cc
${mpm_SOURCE_DIR}/tests/particle_test.cc
${mpm_SOURCE_DIR}/tests/particle_xmpm_test.cc
${mpm_SOURCE_DIR}/tests/particle_traction_test.cc
${mpm_SOURCE_DIR}/tests/particle_vector_test.cc
${mpm_SOURCE_DIR}/tests/point_in_cell_test.cc
Expand Down
74 changes: 74 additions & 0 deletions include/cell.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "Eigen/LU"

#include "affine_transform.h"
#include "discontinuity_element.h"
#include "element.h"
#include "geometry.h"
#include "logger.h"
Expand Down Expand Up @@ -217,6 +218,77 @@ class Cell {
//! Return previous mpi rank
unsigned previous_mpirank() const;

//! Assign discontinuity element type
yliang-sn marked this conversation as resolved.
Show resolved Hide resolved
void assign_type_discontinuity(mpm::EnrichType type);

//! Initialize discontinuity element properties
void initialise_element_properties_discontinuity();

//! assign the normal direction of the discontinuity in the cell
//! \param[in] the normal direction
void assign_normal_discontinuity(VectorDim normal);

//! assign the constant parameters of the discontinuity in the cell
//! \param[in] the constant parameters
void assign_d_discontinuity(double d) {
this->discontinuity_element_->assign_d(d);
};

//! assign the normal direction of the discontinuity in the cell
//! \param[in] the normal direction
//! \param[in] the plane constant
void assign_normal_discontinuity(VectorDim normal, double d);

//! return the normal direction of the discontinuity in the cell
VectorDim normal_discontinuity() {
return discontinuity_element_->normal_discontinuity();
};

//! Return discontinuity element type
unsigned element_type_discontinuity();

//! potential tip element
void potential_tip_element();

//! determine tip element
void tip_element();

//! compute normal vector of discontinuity by the nodal level set values
void compute_normal_vector_discontinuity();

//! compute gradient of the nodal level set values
VectorDim compute_gradient_levelset();

//! compute the discontinuity plane by the nodal level set values
//! \param[in] from the enriched nodes
void compute_plane_discontinuity(bool enrich);

//! update nodal nodal level set
void compute_discontinuity_point(std::vector<VectorDim>& coordinates);

// product of the nodal level set value
double product_levelset();

// Initialise the cells in node
void add_cell_in_node();

// return the constant value of the discontinuity plane
double d_discontinuity() {
return this->discontinuity_element_->d_discontinuity();
}
// determine the celltype by the nodal level set
void determine_crossed();

// compute the nodal level set values by plane equations
void compute_nodal_levelset_equation();

// compute the area of the crossed cell
void compute_area_discontinuity();

double discontinuity_area() { return this->discontinuity_element_->area(); }

void assign_cohesion_area();

private:
//! Approximately check if a point is in a cell
//! \param[in] point Coordinates of point
Expand Down Expand Up @@ -266,6 +338,8 @@ class Cell {
std::map<unsigned, Eigen::VectorXd> face_normals_;
//! Logger
std::unique_ptr<spdlog::logger> console_;
//! discontinuity element
std::shared_ptr<DiscontinuityElement<Tdim>> discontinuity_element_{nullptr};
}; // Cell class
} // namespace mpm

Expand Down
Loading