空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用_第1页
空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用_第2页
空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用_第3页
空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用_第4页
空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

空气动力学数值方法:有限体积法(FVM):FVM在复杂几何中的应用1空气动力学数值方法:有限体积法(FVM)在复杂几何中的应用1.1绪论1.1.1有限体积法的简介有限体积法(FiniteVolumeMethod,FVM)是一种广泛应用于流体力学数值模拟的离散化方法。它基于守恒定律,将计算域划分为一系列控制体积,然后在每个控制体积上应用积分形式的守恒方程。这种方法确保了质量、动量和能量的守恒,使其在处理复杂流体问题时特别有效。1.1.2FVM在空气动力学中的重要性在空气动力学中,FVM被用于求解Navier-Stokes方程,这些方程描述了流体的运动。FVM能够处理复杂的几何形状,如飞机翼型、发动机内部结构等,同时保持高精度和稳定性。这对于设计和优化飞行器、提高发动机效率等应用至关重要。1.1.3复杂几何对数值模拟的挑战复杂几何形状的处理是FVM应用中的一个主要挑战。不规则的边界和复杂的内部结构要求使用非结构化网格,这增加了计算的复杂性和难度。此外,网格质量、边界条件的正确应用以及数值格式的选择都直接影响到模拟的准确性和效率。1.2有限体积法在复杂几何中的应用1.2.1网格生成在处理复杂几何时,网格生成是关键的第一步。非结构化网格,如三角形或四面体网格,能够适应复杂的边界形状。下面是一个使用Python的meshpy库生成简单二维非结构化网格的例子:#导入meshpy库

importmeshpy.triangleastriangle

#定义几何边界

points=[

(0,0),

(1,0),

(1,1),

(0,1),

]

#创建边界信息

boundary=[

{"points":[0,1],"code":"line(0,1)"},

{"points":[1,2],"code":"line(1,2)"},

{"points":[2,3],"code":"line(2,3)"},

{"points":[3,0],"code":"line(3,0)"},

]

#生成网格

info=triangle.MeshInfo()

info.set_points(points)

info.set_facets(boundary)

mesh=triangle.build(info)

#输出网格信息

print(mesh.elements)1.2.2控制体积的离散化一旦网格生成,每个网格单元被视为一个控制体积。在每个控制体积上,守恒方程被离散化为代数方程。例如,考虑二维Navier-Stokes方程的离散化:#假设网格单元为三角形

#控制体积的离散化

defdiscrete_control_volume(mesh,u,v,p):

#遍历每个网格单元

forelementinmesh.elements:

#计算网格单元的面积

area=triangle.calculate_area(element)

#计算网格单元的中心点

center=triangle.calculate_center(element)

#应用Navier-Stokes方程的离散化形式

#这里简化为仅计算质量守恒

mass_conservation=sum(u[i]*mesh.vertices[i][0]+v[i]*mesh.vertices[i][1]foriinelement)*area

#更新压力或其他变量

p[center]+=mass_conservation1.2.3边界条件的处理在复杂几何中,边界条件的正确应用是确保模拟准确性的关键。边界条件可以是壁面、进气口、排气口等。下面是一个处理壁面边界条件的例子:#假设mesh为生成的网格,boundary_conditions为边界条件列表

defapply_boundary_conditions(mesh,boundary_conditions,u,v):

forboundaryinboundary_conditions:

ifboundary["type"]=="wall":

#应用无滑移边界条件

forpointinboundary["points"]:

u[point]=0

v[point]=0

#其他边界条件的处理

#...1.2.4数值格式的选择在FVM中,数值格式的选择影响着模拟的精度和稳定性。常见的格式包括中心差分格式、上风格式和二阶迎风格式。在复杂几何中,通常需要使用更高级的格式来提高精度。1.2.5求解器和迭代方法最后,选择合适的求解器和迭代方法对于解决离散化后的方程组至关重要。常用的求解器包括直接求解器和迭代求解器,如Jacobi迭代、Gauss-Seidel迭代和共轭梯度法。迭代方法的选择应基于问题的特性和计算资源的限制。#使用Gauss-Seidel迭代方法求解离散化方程

defgauss_seidel_solver(A,b,x,iterations):

for_inrange(iterations):

foriinrange(len(x)):

x[i]=(b[i]-sum(A[i][j]*x[j]forjinrange(len(x))ifj!=i))/A[i][i]通过以上步骤,有限体积法能够在复杂几何中有效地模拟空气动力学问题,为飞行器设计、发动机优化等提供关键的数值分析工具。2有限体积法基础2.1网格生成与类型在空气动力学数值模拟中,网格生成是将复杂几何形状离散化为一系列小单元的过程,这些单元可以是结构化的(如矩形网格)或非结构化的(如三角形或四面体网格)。网格的类型和质量直接影响数值解的准确性和计算效率。2.1.1结构化网格结构化网格通常在规则几何中使用,如圆柱、矩形等。每个网格点的位置可以通过数学公式直接计算得出,网格单元通常是正方形或矩形(在二维情况下),或立方体、六面体(在三维情况下)。2.1.2非结构化网格非结构化网格适用于复杂几何,如飞机、汽车等。网格单元可以是任意形状,如三角形、四面体等。这种网格的生成通常依赖于算法,如Delaunay三角化或有限元方法。2.1.3网格生成示例以下是一个使用Python的matplotlib库生成简单二维结构化网格的示例:importnumpyasnp

importmatplotlib.pyplotasplt

#定义网格范围和步长

x_min,x_max=0,1

y_min,y_max=0,1

dx,dy=0.1,0.1

#生成网格点

x=np.arange(x_min,x_max+dx,dx)

y=np.arange(y_min,y_max+dy,dy)

X,Y=np.meshgrid(x,y)

#绘制网格

plt.figure()

plt.plot(X,Y,'k-',X.T,Y.T,'k-')

plt.scatter(X,Y)

plt.xlabel('x')

plt.ylabel('y')

plt.title('2DStructuredGrid')

plt.show()2.2控制体积积分方程有限体积法的核心是将连续的偏微分方程在控制体积上进行积分,从而得到离散的代数方程。控制体积是网格中的每个单元,积分方程描述了物理量在控制体积内的守恒。2.2.1控制体积积分方程示例考虑一维稳态对流方程:∂其中,u是流体速度,v是流体携带的物理量。在有限体积法中,我们对每个控制体积积分此方程,得到:V对于稳态问题,时间导数项为零,因此:∂2.2.2离散化离散化是将积分方程转换为代数方程的过程。在有限体积法中,我们通常使用中心差分或上风差分等方法来近似积分项。中心差分示例假设我们有三个控制体积,Vi−1,Vi,Vi+1∂其中,ui+1/2和ui−2.3离散化技术离散化技术是有限体积法中将连续方程转换为离散方程的关键步骤。常见的离散化技术包括中心差分、上风差分、二阶迎风差分等。2.3.1中心差分中心差分是一种二阶精度的离散化方法,它使用网格点两侧的值来近似导数。在对流方程中,中心差分可以表示为:∂2.3.2上风差分上风差分是一种一阶精度的离散化方法,它使用流体流动方向上的值来近似导数。在对流方程中,如果流体从左向右流动,上风差分可以表示为:∂2.3.3阶迎风差分二阶迎风差分是一种改进的上风差分方法,它提供了更高的精度。在对流方程中,如果流体从左向右流动,二阶迎风差分可以表示为:∂2.3.4离散化技术示例以下是一个使用Python和NumPy库对一维对流方程进行中心差分离散化的示例:importnumpyasnp

#定义网格参数

nx=100

dx=1.0/(nx-1)

nt=100

dt=0.025

#初始化速度和物理量

u=np.ones(nx)

v=np.ones(nx)

v[0.5/dx:1.0/dx+1]=2

#中心差分离散化

forninrange(nt):

v[1:nx-1]=v[1:nx-1]-u[1:nx-1]*dt/dx*(v[1:nx-1]-v[0:nx-2])

#输出结果

print(v)在这个示例中,我们使用中心差分方法来离散化对流方程,并通过迭代求解来模拟物理量v随时间的变化。注意,为了保持数值稳定性,时间步长dt和空间步长d通过上述内容,我们了解了有限体积法在复杂几何中的应用所涉及的网格生成、控制体积积分方程以及离散化技术的基本原理和示例。这些技术是空气动力学数值模拟中不可或缺的工具,能够帮助我们准确地求解流体动力学问题。3空气动力学数值方法:有限体积法(FVM)在复杂几何中的应用3.1复杂几何处理3.1.1边界条件的设定在有限体积法中,边界条件的设定对于准确模拟流体在复杂几何形状中的行为至关重要。边界条件可以分为几种类型,包括Dirichlet边界条件、Neumann边界条件、周期性边界条件和混合边界条件。在复杂几何中,边界条件的设定需要考虑几何的特殊性,例如,对于飞机翼型的模拟,前缘可能需要设定为无滑移边界条件,而后缘则可能需要设定为压力出口边界条件。示例:设定无滑移边界条件假设我们正在使用Python和SciPy库来模拟一个二维流体流动问题,下面是一个如何在有限体积法中设定无滑移边界条件的示例代码:importnumpyasnp

fromscipy.sparseimportdiags

fromscipy.sparse.linalgimportspsolve

#定义网格大小

nx,ny=100,100

dx,dy=1.0/(nx-1),1.0/(ny-1)

#定义速度场

u=np.zeros((nx,ny))

v=np.zeros((nx,ny))

#定义边界条件

#无滑移边界条件:u和v在边界上为0

u[0,:]=0

u[-1,:]=0

u[:,0]=0

u[:,-1]=0

v[0,:]=0

v[-1,:]=0

v[:,0]=0

v[:,-1]=0

#定义内部点的离散方程

#以u为例,假设我们有简单的扩散方程

#du/dt=D*(d^2u/dx^2+d^2u/dy^2)

#使用有限体积法离散

D=1.0#扩散系数

dt=0.01#时间步长

#构建离散方程的矩阵

A=diags([-1,2,-1],[-1,0,1],shape=(nx-2,nx-2)).toarray()/dx**2

A+=diags([-1,2,-1],[-1,0,1],shape=(ny-2,ny-2)).toarray()/dy**2

#应用边界条件

#由于边界上u为0,我们只需要修改内部点的方程

#但是,对于边界点,我们需要确保它们的值保持为0

#这里我们假设A已经包含了边界点的0值

#求解内部点的速度更新

u[1:-1,1:-1]=spsolve(diags([1],[0],shape=(nx-2,nx-2))-dt*D*A,u[1:-1,1:-1])3.1.2非结构化网格的应用非结构化网格在处理复杂几何时提供了灵活性,因为它们可以适应不规则的边界形状。在有限体积法中,非结构化网格通常由三角形或四边形组成,这些网格可以自动生成,以确保在几何的复杂区域有足够的网格密度。示例:使用Gmsh生成非结构化网格Gmsh是一个开源的有限元网格生成器,可以生成适应复杂几何的非结构化网格。下面是一个使用Gmsh生成二维非结构化网格的示例:#Gmsh命令行示例

gmsh-2complex_geometry.geo-ocomplex_geometry.msh其中complex_geometry.geo是Gmsh的输入文件,描述了几何形状和网格参数,complex_geometry.msh是输出的网格文件。3.1.3几何适应性与网格细化几何适应性和网格细化是有限体积法在复杂几何中应用的关键技术。通过在流体流动的关键区域(如边界层、分离点等)增加网格密度,可以提高模拟的准确性。这通常通过自适应网格细化技术实现,该技术根据流场的局部特征动态调整网格密度。示例:使用OpenFOAM进行自适应网格细化OpenFOAM是一个开源的CFD(计算流体动力学)软件包,提供了自适应网格细化的功能。下面是一个如何在OpenFOAM中设置自适应网格细化的示例:#在OpenFOAM的控制字典中设置自适应网格细化

#controlDict文件示例

system/controlDict:

...

adaptationControls

{

typeadaptation;

activeyes;

nAdaptLevels3;

maxLevel5;

minLevel2;

adaptationFields(U);

adaptationCriteria

{

typegradient;

fieldNameU;

gradientThreshold0.1;

}

}

...在这个示例中,我们设置了自适应网格细化的控制参数,包括激活自适应网格细化、最大和最小网格细化级别,以及基于速度场(U)的梯度进行网格细化的阈值。通过上述示例,我们可以看到在有限体积法中处理复杂几何的关键步骤,包括边界条件的设定、非结构化网格的应用以及几何适应性和网格细化的策略。这些技术的综合应用可以显著提高流体流动模拟的准确性和效率。4空气动力学数值方法:有限体积法(FVM)在复杂几何中的应用4.1绕流模拟案例分析4.1.1原理与内容在空气动力学中,绕流模拟是研究流体如何围绕物体流动的关键技术。对于复杂几何形状,如飞机机翼、汽车车身或风力涡轮机叶片,有限体积法(FVM)因其在处理不规则网格上的优势而成为首选的数值方法。FVM将计算域划分为一系列控制体积,每个控制体积内的守恒定律被离散化,从而形成一组代数方程,这些方程可以通过迭代求解器求解。4.1.2示例:二维NACA0012翼型绕流假设我们想要模拟二维NACA0012翼型在自由流中的绕流情况。我们将使用OpenFOAM,一个开源的CFD软件包,来演示如何设置和运行FVM模拟。数据样例网格文件:NACA0012.stl流体属性:空气,动力粘度为1.8e-5m^2/s边界条件:来流速度为10m/s,方向与x轴平行代码示例首先,我们需要创建一个system目录和一个constant目录,其中包含模拟所需的控制文件和物理属性文件。在system目录下,创建一个名为controlDict的文件,用于控制模拟的运行参数:#system/controlDict

applicationsimpleFoam;

startFromstartTime;

startTime0;

stopAtendTime;

endTime100;

deltaT0.01;

writeControltimeStep;

writeInterval10;

purgeWrite0;

writeFormatascii;

writePrecision6;

writeCompressionoff;

timeFormatgeneral;

timePrecision6;

runTimeModifiabletrue;接下来,在constant目录下,创建一个polyMesh目录,其中包含网格信息。然后,创建一个transportProperties文件,定义流体的动力粘度:#constant/transportProperties

nu1.8e-5;在0目录下,我们需要定义初始和边界条件。创建U和p文件,分别表示速度和压力:#0/U

dimensions[01-10000];

internalFielduniform(1000);

boundaryField

{

inlet

{

typefixedValue;

valueuniform(1000);

}

outlet

{

typezeroGradient;

}

wall

{

typenoSlip;

}

frontAndBack

{

typeempty;

}

}

#0/p

dimensions[1-1-20000];

internalFielduniform0;

boundaryField

{

inlet

{

typezeroGradient;

}

outlet

{

typefixedValue;

valueuniform0;

}

wall

{

typezeroGradient;

}

frontAndBack

{

typeempty;

}

}最后,运行模拟:simpleFoam-case<yourCaseDirectory>4.2高雷诺数流动的处理4.2.1原理与内容高雷诺数流动通常伴随着湍流现象,这增加了模拟的复杂性。在FVM中,处理高雷诺数流动通常需要引入湍流模型,如k-ε模型或大涡模拟(LES)。这些模型通过引入额外的方程来描述湍流的统计特性,从而提高模拟的准确性和可靠性。4.2.2示例:使用k-ε模型模拟高雷诺数流动假设我们正在模拟一个高雷诺数下的圆柱绕流。我们将使用k-ε湍流模型来处理湍流效应。数据样例网格文件:cylinder.stl流体属性:水,动力粘度为1e-6m^2/s,密度为1000kg/m^3边界条件:来流速度为10m/s,方向与x轴平行代码示例在constant目录下,创建一个turbulenceProperties文件,定义湍流模型:#constant/turbulenceProperties

simulationTypeRAS;

RAS

{

RASModelkEpsilon;

turbulenceon;

printCoeffson;

}同时,更新transportProperties文件,以包含流体的密度和湍流的动力粘度:#constant/transportProperties

nu1e-6;

rho1000;在0目录下,创建k和epsilon文件,定义湍流能量和耗散率的初始和边界条件:#0/k

dimensions[02-20000];

internalFielduniform0.01;

boundaryField

{

inlet

{

typefixedValue;

valueuniform0.01;

}

outlet

{

typezeroGradient;

}

wall

{

typekqRWallFunction;

}

frontAndBack

{

typeempty;

}

}

#0/epsilon

dimensions[02-30000];

internalFielduniform0.01;

boundaryField

{

inlet

{

typefixedValue;

valueuniform0.01;

}

outlet

{

typezeroGradient;

}

wall

{

typeepsilonWallFunction;

}

frontAndBack

{

typeempty;

}

}运行模拟:simpleFoam-case<yourCaseDirectory>4.3多面体网格的优势4.3.1原理与内容多面体网格在处理复杂几何时提供了更高的灵活性和准确性。与传统的四面体或六面体网格相比,多面体网格可以更好地适应物体的表面,减少网格数量,同时保持或提高模拟的精度。在FVM中,多面体网格的使用可以显著减少计算时间和资源需求。4.3.2示例:使用多面体网格模拟NACA0012翼型绕流假设我们使用多面体网格来模拟NACA0012翼型的绕流,以展示其相对于传统网格的优势。数据样例多面体网格文件:NACA0012_polyMesh代码示例在system目录下,创建一个blockMeshDict文件,但我们将使用snappyHexMesh来生成多面体网格,而不是直接使用blockMesh:#system/snappyHexMeshDict

castellatedMeshtrue;

refinementSurfaces

{

NACA0012.stl

{

level(6);

patches(wall);

}

}

refinementLevels

(

(01)

(12)

(23)

(34)

(45)

(56)

);

refinementZones

{

nearWing

{

levels(6);

patches(wall);

distance0.1;

}

}然后,运行snappyHexMesh来生成多面体网格:snappyHexMesh-case<yourCaseDirectory>最后,使用simpleFoam运行模拟:simpleFoam-case<yourCaseDirectory>通过比较使用多面体网格和传统网格的模拟结果,我们可以观察到多面体网格在减少网格数量的同时,保持了较高的模拟精度。5空气动力学数值方法:有限体积法(FVM):高级主题5.1湍流模型与复杂几何5.1.1湍流模型湍流模型在空气动力学中至关重要,尤其是在处理复杂几何形状时。有限体积法(FVM)能够有效地解决湍流问题,因为它基于守恒定律,能够准确地捕捉流体的物理特性。常见的湍流模型包括:k-ε模型:这是一种两方程模型,通过求解湍动能(k)和湍流耗散率(ε)的方程来预测湍流行为。k-ω模型:与k-ε模型类似,但使用涡旋生成率(ω)代替湍流耗散率(ε)。雷诺应力模型(RSM):这是一种更复杂的模型,能够解决由于流体旋转和非各向同性引起的湍流问题。5.1.2复杂几何中的应用在复杂几何中应用FVM和湍流模型时,需要特别注意网格生成和边界条件的设定。例如,对于一个具有复杂内部结构的飞机引擎,网格可能需要在某些区域进行细化,以捕捉到湍流的细节。边界条件则需要准确反映引擎的入口和出口条件。示例:k-ε模型在复杂几何中的应用假设我们正在模拟一个具有复杂内部结构的管道流动,使用k-ε模型。首先,我们需要生成一个适应复杂几何的网格。然后,设定边界条件,包括入口速度和湍流强度,以及出口压力。接下来,我们使用FVM求解N-S方程和k-ε方程。#导入必要的库

importnumpyasnp

fromscipy.sparseimportdiags

fromscipy.sparse.linalgimportspsolve

#定义网格参数

nx=100#网格点数

dx=1.0/(nx-1)#网格间距

#定义湍流模型参数

k=np.zeros(nx)#湍动能

epsilon=np.zeros(nx)#湍流耗散率

nu=1.0e-6#动力粘度

rho=1.225#密度

#定义湍流模型的方程

defk_equation(k,epsilon,u,nu,rho):

#这里简化了方程,实际应用中需要更复杂的方程

D_k=-u*(k[1:]-k[:-1])/dx

D_k=np.append(D_k,D_k[-1])

P_k=(nu+nu_t)*(np.gradient(k)/dx)**2

returnD_k+P_k

defepsilon_equation(k,epsilon,u,nu,rho):

#同样,这里简化了方程

D_epsilon=-u*(epsilon[1:]-epsilon[:-1])/dx

D_epsilon=np.append(D_epsilon,D_epsilon[-1])

P_epsilon=(nu+nu_t)*(np.gradient(epsilon)/dx)**2

returnD_epsilon+P_epsilon

#求解湍流模型方程

#这里使用了假定的湍流粘度nu_t,实际应用中需要根据k和epsilon计算

nu_t=np.zeros(nx)

foriinrange(100):#迭代求解

k[1:-1]=spsolve(diags([1,-2,1],[-1,0,1],shape=(nx-2,nx-2)),k_equation(k,epsilon,u,nu,rho)[1:-1])

epsilon[1:-1]=spsolve(diags([1,-2,1],[-1,0,1],shape=(nx-2,nx-2)),epsilon_equation(k,epsilon,u,nu,rho)[1:-1])

nu_t=0.09*k/epsilon#简化计算湍流粘度

#输出结果

print("湍动能k:",k)

print("湍流耗散率epsilon:",epsilon)5.2并行计算在FVM中的应用并行计算可以显著提高FVM在复杂几何中的计算效率。通过将计算任务分配到多个处理器上,可以同时处理网格的不同部分,从而减少总计算时间。5.2.1并行计算策略域分解:将计算域分割成多个子域,每个子域由一个处理器处理。消息传递接口(MPI):使用MPI在处理器之间传递数据,确保计算的一致性。示例:使用MPI进行并行计算假设我们有一个大型的计算网格,需要在多个处理器上并行计算。我们可以使用MPI来分割网格,并在每个处理器上独立计算,然后汇总结果。frommpi4pyimportMPI

importnumpyasnp

#初始化MPI

comm=MPI.COMM_WORLD

rank=comm.Get_rank()

size=comm.Get_size()

#定义网格参数

nx=1000#总网格点数

dx=1.0/(nx-1)#网格间距

#根据处理器数量分割网格

local_nx=nx//size

local_dx=dx

local_x=np.linspace(rank*local_nx*dx,(rank+1)*local_nx*dx,local_nx)

#定义并行计算的方程

defparallel_equation(x,dx):

#这里简化了方程,实际应用中需要更复杂的方程

return-np.sin(2*np.pi*x)/dx

#求解方程

local_result=parallel_equation(local_x,local_dx)

#汇总结果

global_result=np.zeros(nx)

comm.Gatherv(sendbuf=local_result,recvbuf=(global_result,local_nx))

#输出结果

ifrank==0:

print("全局结果:",global_result)5.3自适应网格重构技术自适应网格重构技术允许在计算过程中动态调整网格的分辨率,以提高计算效率和准确性。在复杂几何中,这种方法尤其有用,因为它可以在流体行为复杂或湍流强度高的区域自动细化网格。5.3.1自适应网格重构策略误差估计:基于解的误差估计来决定网格的细化或粗化。局部网格细化:在需要高分辨率的区域进行网格细化。示例:基于误差估计的自适应网格重构假设我们正在模拟一个具有复杂内部结构的流体流动,我们使用基于误差估计的自适应网格重构技术来优化计算。importnumpyasnp

fromerpolateimportinterp1d

#定义网格参数

nx=100#初始网格点数

dx=1.0/(nx-1)#初始网格间距

x=np.linspace(0,1,nx)

#定义流体速度分布

u=np.sin(2*np.pi*x)

#定义误差估计函数

deferror_estimate(u,dx):

#这里简化了误差估计,实际应用中需要更复杂的算法

returnnp.abs(np.gradient(u)/dx)

#自适应网格重构

whileTrue:

#计算误差

error=error_estimate(u,dx)

#找到误差最大的位置

max_error_index=np.argmax(error)

#如果误差小于阈值,停止重构

iferror[max_error_index]<1e-6:

break

#在误差最大的位置细化网格

x_fine=np.linspace(x[max_error_index-1],x[max_error_index+1],10)

u_fine=interp1d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论