pumapy.physicsmodels

pumapy.physicsmodels.anisotropic_conductivity_utils

pumapy.physicsmodels.anisotropic_conductivity_utils.add_nondiag()
pumapy.physicsmodels.anisotropic_conductivity_utils.divP()
pumapy.physicsmodels.anisotropic_conductivity_utils.fill_flux()
pumapy.physicsmodels.anisotropic_conductivity_utils.flatten_Kmat()
pumapy.physicsmodels.anisotropic_conductivity_utils.index_at_p()
pumapy.physicsmodels.anisotropic_conductivity_utils.index_at_s()
pumapy.physicsmodels.anisotropic_conductivity_utils.pad_domain()

pumapy.physicsmodels.anisotropic_conductivity_utils

pumapy.physicsmodels.anisotropic_conductivity_utils.add_nondiag()
pumapy.physicsmodels.anisotropic_conductivity_utils.divP()
pumapy.physicsmodels.anisotropic_conductivity_utils.fill_flux()
pumapy.physicsmodels.anisotropic_conductivity_utils.flatten_Kmat()
pumapy.physicsmodels.anisotropic_conductivity_utils.index_at_p()
pumapy.physicsmodels.anisotropic_conductivity_utils.index_at_s()
pumapy.physicsmodels.anisotropic_conductivity_utils.pad_domain()

pumapy.physicsmodels.boundary_conditions

class pumapy.physicsmodels.boundary_conditions.ConductivityBC(workspace)[source]

Bases: object

show_dirichlet()[source]
class pumapy.physicsmodels.boundary_conditions.ElasticityBC(workspace)[source]

Bases: object

show_dirichlet()[source]
class pumapy.physicsmodels.boundary_conditions.Isotropic_periodicBC(len_x, len_y, len_z)[source]

Bases: object

indexAt_3D(i, j, k)[source]
class pumapy.physicsmodels.boundary_conditions.Isotropic_symmetricBC(len_x, len_y, len_z)[source]

Bases: object

indexAt_3D(i, j, k)[source]

pumapy.physicsmodels.conductivity_parent

class pumapy.physicsmodels.conductivity_parent.Conductivity(workspace, cond_map, direction, side_bc, prescribed_bc, tolerance, maxiter, solver_type, display_iter)[source]

Bases: pumapy.physicsmodels.linear_solvers.PropertySolver

error_check()[source]
log_input()[source]
log_output()[source]

pumapy.physicsmodels.elasticity_utils

pumapy.physicsmodels.elasticity_utils.add_nondiag()
pumapy.physicsmodels.elasticity_utils.divP()
pumapy.physicsmodels.elasticity_utils.fill_stress_matrices()
pumapy.physicsmodels.elasticity_utils.flatten_Cmat()
pumapy.physicsmodels.elasticity_utils.index_at_p()
pumapy.physicsmodels.elasticity_utils.index_at_s()

pumapy.physicsmodels.elasticity_utils

pumapy.physicsmodels.elasticity_utils.add_nondiag()
pumapy.physicsmodels.elasticity_utils.divP()
pumapy.physicsmodels.elasticity_utils.fill_stress_matrices()
pumapy.physicsmodels.elasticity_utils.flatten_Cmat()
pumapy.physicsmodels.elasticity_utils.index_at_p()
pumapy.physicsmodels.elasticity_utils.index_at_s()

pumapy.physicsmodels.fe_permeability

The following FE numerical method and implementation are based on the following research paper:

Vianna, R.S., Cunha, A.M., Azeredo, R.B., Leiderman, R. and Pereira, A., 2020. Computing Effective Permeability of Porous Media with FEM and Micro-CT: An Educational Approach. Fluids, 5(1), p.16.

See https://www.mdpi.com/2311-5521/5/1/16 for the publication. See https://zenodo.org/record/3612168#.YUYlSWZKhTZ for 2D MATLAB implementation.

class pumapy.physicsmodels.fe_permeability.Permeability(workspace, solid_cutoff, tolerance, maxiter, solver_type, display_iter)[source]

Bases: pumapy.physicsmodels.linear_solvers.PropertySolver

assemble_Amatrix()[source]
assemble_bvector()[source]
calculate_element_matrices()[source]
compute()[source]
compute_effective_coefficient()[source]
error_check()[source]
initialize()[source]
log_input()[source]
log_output()[source]
solve()[source]

pumapy.physicsmodels.isotropic_conductivity

class pumapy.physicsmodels.isotropic_conductivity.IsotropicConductivity(workspace, cond_map, direction, side_bc, prescribed_bc, tolerance, maxiter, solver_type, display_iter)[source]

Bases: pumapy.physicsmodels.conductivity_parent.Conductivity

assemble_Amatrix()[source]
assemble_bvector()[source]
compute()[source]
compute_effective_coefficient()[source]
initialize()[source]

pumapy.physicsmodels.isotropic_conductivity_utils

pumapy.physicsmodels.isotropic_conductivity_utils.compute_flux()
pumapy.physicsmodels.isotropic_conductivity_utils.indexAt_3D()
pumapy.physicsmodels.isotropic_conductivity_utils.setup_matrices_cy()

pumapy.physicsmodels.isotropic_conductivity_utils

pumapy.physicsmodels.isotropic_conductivity_utils.compute_flux()
pumapy.physicsmodels.isotropic_conductivity_utils.indexAt_3D()
pumapy.physicsmodels.isotropic_conductivity_utils.setup_matrices_cy()

pumapy.physicsmodels.linear_solvers

class pumapy.physicsmodels.linear_solvers.MinResSolverDisplay[source]

Bases: object

class pumapy.physicsmodels.linear_solvers.PropertySolver(workspace, solver_type, allowed_solvers, tolerance, maxiter, display_iter)[source]

Bases: object

solve()[source]
class pumapy.physicsmodels.linear_solvers.SolverDisplay[source]

Bases: object

pumapy.physicsmodels.mpfa_conductivity

Further explained in publication: Semeraro, F., Ferguson, J.C., Acin, M., Panerai, F. and Mansour, N.N., 2021. Anisotropic analysis of fibrous and woven materials part 2: Computation of effective conductivity. Computational Materials Science, 186, p.109956. https://www.sciencedirect.com/science/article/abs/pii/S092702562030447X

Please cite using this BibTex: @article{semeraro2021anisotropic,

title={Anisotropic analysis of fibrous and woven materials part 2: Computation of effective conductivity}, author={Semeraro, Federico and Ferguson, Joseph C and Acin, Marcos and Panerai, Francesco and Mansour, Nagi N}, journal={Computational Materials Science}, volume={186}, pages={109956}, year={2021}, publisher={Elsevier}

}

class pumapy.physicsmodels.mpfa_conductivity.AnisotropicConductivity(workspace, cond_map, direction, side_bc, prescribed_bc, tolerance, maxiter, solver_type, display_iter, print_matrices)[source]

Bases: pumapy.physicsmodels.conductivity_parent.Conductivity

assemble_Amatrix()[source]
assemble_bvector()[source]
compute()[source]
compute_effective_coefficient()[source]
error_check()[source]
initialize()[source]
pumapy.physicsmodels.mpfa_conductivity.print_T(temperature, dec=4)[source]
pumapy.physicsmodels.mpfa_conductivity.print_flux(flux, dec=4)[source]

pumapy.physicsmodels.mpsa_elasticity

class pumapy.physicsmodels.mpsa_elasticity.Elasticity(workspace, elast_map, direction, side_bc, prescribed_bc, tolerance, maxiter, solver_type, display_iter, print_matrices)[source]

Bases: pumapy.physicsmodels.linear_solvers.PropertySolver

assemble_Amatrix()[source]
assemble_bvector()[source]
compute()[source]
compute_effective_coefficient()[source]
error_check()[source]
index_at(index, size)[source]
initialize()[source]
log_input()[source]
log_output()[source]
pumapy.physicsmodels.mpsa_elasticity.show_s(s, t, dec=4)[source]

Print s stress (fifth int in print_matrices)

pumapy.physicsmodels.mpsa_elasticity.show_u(u, dec=4)[source]

Print u displacement (fourth int in print_matrices)

pumapy.physicsmodels.mpxa_matrices

matrices used in MPFA and MPSA functions

pumapy.physicsmodels.mpxa_matrices.create_mpfa_indices()[source]
pumapy.physicsmodels.mpxa_matrices.create_mpsa_indices()[source]
pumapy.physicsmodels.mpxa_matrices.fill_Ampfa(k)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Ampsa(C)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Bmpfa(k, z)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Bmpsa(C)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Cmpfa(k)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Cmpsa(C)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Dmpfa(k)[source]
pumapy.physicsmodels.mpxa_matrices.fill_Dmpsa(C)[source]

pumapy.physicsmodels.property_maps

class pumapy.physicsmodels.property_maps.AnisotropicConductivityMap[source]

Bases: pumapy.physicsmodels.property_maps.MaterialPropertyMap

add_isotropic_material(cutoff, k)[source]
add_material(cutoff, kxx, kyy, kzz, kxy, kxz, kyz)[source]
add_material_to_orient(cutoff, k_axial, k_radial)[source]
add_orthotropic_material(cutoff, kxx, kyy, kzz)[source]
class pumapy.physicsmodels.property_maps.ElasticityMap[source]

Bases: pumapy.physicsmodels.property_maps.MaterialPropertyMap

add_isotropic_material(cutoff, E_youngmod, nu_poissrat)[source]
add_material(cutoff, C11, C12, C13, C14, C15, C16, C22, C23, C24, C25, C26, C33, C34, C35, C36, C44, C45, C46, C55, C56, C66)[source]
add_material_to_orient(cutoff, E_axial, E_radial, nu_poissrat_12, nu_poissrat_23, G12)[source]
show()[source]
class pumapy.physicsmodels.property_maps.IsotropicConductivityMap[source]

Bases: pumapy.physicsmodels.property_maps.MaterialPropertyMap

add_material(cutoff, conductivity)[source]
class pumapy.physicsmodels.property_maps.MaterialPropertyMap[source]

Bases: object

error_check(cutoff, conductivity)[source]
get_material(i)[source]
get_size()[source]
show()[source]

pumapy.physicsmodels.raycasting

class pumapy.physicsmodels.raycasting.RayCasting(workspace, degree_accuracy, source_locations, valid_phase, boundary_behavior=0, exportparticles_filepathname='')[source]

Bases: object

error_check()[source]
expand_sources()[source]
generate_spherical_walkers()[source]